@@ -1137,16 +1137,19 @@ void Scriptable::edit()
1137
1137
{
1138
1138
m_skipArguments = -1 ;
1139
1139
1140
- QJSValue value;
1141
1140
QByteArray content;
1142
1141
int row = -1 ;
1142
+ int editRow = -1 ;
1143
+ bool changeClipboard = true ;
1143
1144
1144
1145
const int len = argumentCount ();
1145
1146
for ( int i = 0 ; i < len; ++i ) {
1146
- value = argument (i);
1147
+ const QJSValue value = argument (i);
1147
1148
if (i > 0 )
1148
1149
content.append (m_inputSeparator.toUtf8 ());
1149
1150
if ( toInt (value, &row) ) {
1151
+ editRow = (i == 0 ) ? row : -1 ;
1152
+ changeClipboard = i == 0 && row < 0 ;
1150
1153
const QByteArray bytes = row >= 0 ? m_proxy->browserItemData (m_tabName, row, mimeText)
1151
1154
: getClipboardData (mimeText);
1152
1155
content.append (bytes);
@@ -1155,46 +1158,29 @@ void Scriptable::edit()
1155
1158
}
1156
1159
}
1157
1160
1158
- bool changeClipboard = row < 0 ;
1159
-
1160
- if ( !m_proxy->browserOpenEditor (m_tabName, row, mimeText, content, changeClipboard) ) {
1161
- m_proxy->showBrowser (m_tabName);
1162
- if (len == 1 && row >= 0 ) {
1163
- m_proxy->browserSetCurrent (m_tabName, row);
1164
- m_proxy->browserEditRow (m_tabName, row, mimeText);
1165
- } else {
1166
- m_proxy->browserEditNew (m_tabName, mimeText, content, changeClipboard);
1167
- }
1168
- }
1161
+ editContent (editRow, mimeText, content, changeClipboard);
1169
1162
}
1170
1163
1171
1164
QJSValue Scriptable::editItem ()
1172
1165
{
1173
1166
m_skipArguments = 3 ;
1174
1167
1175
- int row ;
1176
- if ( !toInt (argument (0 ), &row ) ) {
1168
+ int editRow ;
1169
+ if ( !toInt (argument (0 ), &editRow ) )
1177
1170
return throwError (argumentError ());
1178
- }
1179
1171
1180
1172
const auto format = arg (1 , mimeText);
1181
- const bool changeClipboard = row < 0 ;
1182
- const QByteArray content = argumentCount () > 2
1183
- ? makeByteArray ( argument (2 ) )
1184
- : ( row >= 0
1185
- ? m_proxy->browserItemData (m_tabName, row, format)
1186
- : getClipboardData (format));
1187
-
1188
- if ( !m_proxy->browserOpenEditor (m_tabName, row, format, content, changeClipboard) ) {
1189
- m_proxy->showBrowser (m_tabName);
1190
- if (row >= 0 ) {
1191
- m_proxy->browserSetCurrent (m_tabName, row);
1192
- m_proxy->browserEditRow (m_tabName, row, format);
1193
- } else {
1194
- m_proxy->browserEditNew (m_tabName, format, content, changeClipboard);
1195
- }
1196
- }
1173
+ const bool changeClipboard = editRow < 0 ;
1174
+
1175
+ QByteArray content;
1176
+ if ( argumentCount () > 2 )
1177
+ content = makeByteArray (argument (2 ));
1178
+ else if (editRow >= 0 )
1179
+ content = m_proxy->browserItemData (m_tabName, editRow, format);
1180
+ else
1181
+ content = getClipboardData (format);
1197
1182
1183
+ editContent (editRow, format, content, changeClipboard);
1198
1184
return {};
1199
1185
}
1200
1186
@@ -3076,6 +3062,21 @@ void Scriptable::nextToClipboard(int where)
3076
3062
#endif
3077
3063
}
3078
3064
3065
+ void Scriptable::editContent (
3066
+ int editRow, const QString &format, const QByteArray &content, bool changeClipboard)
3067
+ {
3068
+ if ( m_proxy->browserOpenEditor (m_tabName, editRow, format, content, changeClipboard) )
3069
+ return ;
3070
+
3071
+ m_proxy->showBrowser (m_tabName);
3072
+ if (editRow >= 0 ) {
3073
+ m_proxy->browserSetCurrent (m_tabName, editRow);
3074
+ m_proxy->browserEditRow (m_tabName, editRow, format);
3075
+ } else {
3076
+ m_proxy->browserEditNew (m_tabName, format, content, changeClipboard);
3077
+ }
3078
+ }
3079
+
3079
3080
QJSValue Scriptable::screenshot (bool select)
3080
3081
{
3081
3082
m_skipArguments = 2 ;
0 commit comments