Skip to content

Commit b20fc12

Browse files
committed
Keep original selection order in scripts
`ItemSelection()` and `selectItems()` will avoid changing selected items order. Old behavior: > copyq 'selectItems(1,0); print(ItemSelection().current().rows())' 0,1 New behavior: > copyq 'selectItems(1,0); print(ItemSelection().current().rows())' 1,0 Fixes #3271
1 parent a68ce58 commit b20fc12

File tree

5 files changed

+7
-6
lines changed

5 files changed

+7
-6
lines changed

src/gui/selectiondata.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ void addSelectionData(
1919
selected.reserve(selectedIndexes.size());
2020
for (const auto &index : selectedIndexes)
2121
selected.append(index);
22-
std::sort(selected.begin(), selected.end());
2322
addSelectionData(result, selected);
2423
}
2524

src/scriptable/scriptableproxy.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2187,7 +2187,6 @@ QString ScriptableProxy::testSelected()
21872187
if ( !browser->isIndexHidden(index) )
21882188
selectedRows.append(index.row());
21892189
}
2190-
std::sort( selectedRows.begin(), selectedRows.end() );
21912190

21922191
for (int row : selectedRows)
21932192
result.append(QString::number(row));

src/tests/tests_classes.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -345,7 +345,7 @@ void Tests::classItemSelectionGetCurrent()
345345
RUN("keys" << "CTRL+F1", "");
346346
WAIT_ON_OUTPUT(args << "read(0)", "ItemSelection(tab=\"" + tab1 + "\", rows=[0])");
347347
RUN("keys" << "END" << "SHIFT+UP" << "CTRL+F1", "");
348-
WAIT_ON_OUTPUT(args << "read(0)", "ItemSelection(tab=\"" + tab1 + "\", rows=[2,3])");
348+
WAIT_ON_OUTPUT(args << "read(0)", "ItemSelection(tab=\"" + tab1 + "\", rows=[3,2])");
349349
}
350350

351351
void Tests::classItemSelectionByteArray()

src/tests/tests_items.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ void Tests::selectItems()
8484
RUN("testSelected", tab + " 2 2\n");
8585

8686
RUN("keys" << "SHIFT+UP", "");
87-
RUN("testSelected", tab + " 1 1 2\n");
87+
RUN("testSelected", tab + " 1 2 1\n");
8888

8989
RUN("keys" << "CTRL+A", "");
9090
RUN("testSelected", tab + " 1 0 1 2\n");
@@ -266,7 +266,7 @@ void Tests::selectAndCopyOrder()
266266
RUN("setCurrentTab" << tab, "");
267267

268268
RUN("keys" << "END" << "SHIFT+UP" << "SHIFT+UP" << "SHIFT+UP", "");
269-
RUN(args << "testSelected", tab + " 0 0 1 2 3\n");
269+
RUN(args << "testSelected", tab + " 0 3 2 1 0\n");
270270

271271
RUN("keys" << keyNameFor(QKeySequence::Copy), "");
272272
WAIT_ON_OUTPUT("clipboard", "D\nC\nB\nA");

src/tests/tests_scripts.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -766,11 +766,14 @@ void Tests::commandSelectItems()
766766
RUN("selectItems" << "0" << "2", "true\n");
767767
RUN("testSelected", QString(clipboardTabName) + " 2 0 2\n");
768768

769+
RUN("selectItems" << "2" << "0", "true\n");
770+
RUN("testSelected", QString(clipboardTabName) + " 0 2 0\n");
771+
769772
const auto tab = testTab(1);
770773
const auto args = Args("tab") << tab;
771774
RUN(args << "add" << "C" << "B" << "A", "");
772775
RUN(args << "selectItems" << "1" << "2", "true\n");
773-
RUN("testSelected", QString(clipboardTabName) + " 2 0 2\n");
776+
RUN("testSelected", QString(clipboardTabName) + " 0 2 0\n");
774777
RUN("setCurrentTab" << tab, "");
775778
RUN("testSelected", tab + " 2 1 2\n");
776779
}

0 commit comments

Comments
 (0)