summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swift/QtUI/QtHighlightEditor.cpp')
-rw-r--r--Swift/QtUI/QtHighlightEditor.cpp17
1 files changed, 11 insertions, 6 deletions
diff --git a/Swift/QtUI/QtHighlightEditor.cpp b/Swift/QtUI/QtHighlightEditor.cpp
index 7aea26b..50d1f78 100644
--- a/Swift/QtUI/QtHighlightEditor.cpp
+++ b/Swift/QtUI/QtHighlightEditor.cpp
@@ -14,12 +14,13 @@
#include <cassert>
#include <boost/lexical_cast.hpp>
#include <QFileDialog>
+#include <QScrollBar>
#include <QTreeWidgetItem>
#include <Swift/Controllers/HighlightManager.cpp>
#include <Swift/QtUI/QtSettingsProvider.h>
#include <Swift/QtUI/QtSwiftUtil.h>
@@ -200,26 +201,30 @@ void QtHighlightEditor::onDeleteButtonClicked()
} else {
selectRow(selectedRow);
}
}
}
+void QtHighlightEditor::moveRowFromTo(int fromRow, int toRow) {
+ int verticalScrollAreaPosition = ui_.scrollArea->verticalScrollBar()->value();
+ highlightManager_->swapRules(fromRow, toRow);
+ populateList();
+ selectRow(toRow);
+ ui_.scrollArea->verticalScrollBar()->setValue(verticalScrollAreaPosition);
+}
+
void QtHighlightEditor::onUpButtonClicked() {
const size_t moveFrom = ui_.listWidget->currentRow();
const size_t moveTo = moveFrom - 1;
- highlightManager_->swapRules(moveFrom, moveTo);
- populateList();
- selectRow(moveTo);
+ moveRowFromTo(moveFrom, moveTo);
}
void QtHighlightEditor::onDownButtonClicked() {
const size_t moveFrom = ui_.listWidget->currentRow();
const size_t moveTo = moveFrom + 1;
- highlightManager_->swapRules(moveFrom, moveTo);
- populateList();
- selectRow(moveTo);
+ moveRowFromTo(moveFrom, moveTo);
}
void QtHighlightEditor::onCurrentRowChanged(int currentRow)
{
ui_.deleteButton->setEnabled(currentRow != -1);
ui_.moveUpButton->setEnabled(currentRow != -1 && currentRow != 0);