Sort additional scripts by row-order, not selection-order (closes #2862)

This commit is contained in:
Alexander Bock
2023-08-21 13:26:26 +02:00
parent 31b04c1412
commit c18ab49965

View File

@@ -167,7 +167,18 @@ void ScriptlogDialog::updateScriptList() {
void ScriptlogDialog::saveChosenScripts() {
std::vector<std::string> chosenScripts;
QList<QListWidgetItem*> itemList = _scriptlogList->selectedItems();
for (QListWidgetItem* item : _scriptlogList->selectedItems()) {
// The selected items are returned in order of **selection** not in row-order, so we
// need to sort them first
std::sort(
itemList.begin(),
itemList.end(),
[this](QListWidgetItem* lhs, QListWidgetItem* rhs) {
return _scriptlogList->row(lhs) < _scriptlogList->row(rhs);
}
);
for (QListWidgetItem* item : itemList) {
chosenScripts.push_back(item->text().toStdString());
}
emit scriptsSelected(chosenScripts);