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 @@ -17,6 +17,7 @@ #include <boost/lexical_cast.hpp> #include <QFileDialog> +#include <QScrollBar> #include <QTreeWidgetItem> #include <Swift/Controllers/HighlightManager.cpp> @@ -203,20 +204,24 @@ void QtHighlightEditor::onDeleteButtonClicked() } } +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) |