diff options
Diffstat (limited to 'Swift/QtUI/QtHighlightEditor.cpp')
-rw-r--r-- | Swift/QtUI/QtHighlightEditor.cpp | 17 |
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); |