diff options
author | Richard Maudsley <richard.maudsley@isode.com> | 2014-07-16 13:47:27 (GMT) |
---|---|---|
committer | Swift Review <review@swift.im> | 2014-07-29 09:48:04 (GMT) |
commit | 4ab20a452e0af56c7ee210f863aeae31450954cc (patch) | |
tree | be0a3777eb7bd814e4c6b9660a77dbb8fafb90d3 /Swift | |
parent | 9c5c731845881996f45b32ea6de12e0647f4634d (diff) | |
download | swift-contrib-4ab20a452e0af56c7ee210f863aeae31450954cc.zip swift-contrib-4ab20a452e0af56c7ee210f863aeae31450954cc.tar.bz2 |
Add ability to reorder highlight rules list.
Test-Information:
Add several highlight rules. Verify that the up and down buttons reorder the items in the list.
Change-Id: I6272799e2b2767ddfa01068c2ffcd1fb4651e11d
Diffstat (limited to 'Swift')
-rw-r--r-- | Swift/Controllers/HighlightManager.cpp | 8 | ||||
-rw-r--r-- | Swift/Controllers/HighlightManager.h | 4 | ||||
-rw-r--r-- | Swift/QtUI/QtHighlightEditor.cpp | 22 | ||||
-rw-r--r-- | Swift/QtUI/QtHighlightEditor.h | 3 |
4 files changed, 33 insertions, 4 deletions
diff --git a/Swift/Controllers/HighlightManager.cpp b/Swift/Controllers/HighlightManager.cpp index eac562f..ca0567e 100644 --- a/Swift/Controllers/HighlightManager.cpp +++ b/Swift/Controllers/HighlightManager.cpp @@ -104,4 +104,12 @@ void HighlightManager::removeRule(int index) } +void HighlightManager::swapRules(const size_t first, const size_t second) { + assert(first < rules_->getSize()); + assert(second < rules_->getSize()); + const HighlightRule swap = rules_->getRule(first); + rules_->setRule(first, rules_->getRule(second)); + rules_->setRule(second, swap); +} + void HighlightManager::storeSettings() { diff --git a/Swift/Controllers/HighlightManager.h b/Swift/Controllers/HighlightManager.h index 3da72eb..07a3fe3 100644 --- a/Swift/Controllers/HighlightManager.h +++ b/Swift/Controllers/HighlightManager.h @@ -36,4 +36,7 @@ namespace Swift { list_.insert(list_.end(), rhs.list_.begin(), rhs.list_.end()); } + void setRule(const size_t index, const HighlightRule& rule) { + list_[index] = rule; + } private: std::vector<HighlightRule> list_; @@ -50,4 +53,5 @@ namespace Swift { void insertRule(int index, const HighlightRule& rule); void removeRule(int index); + void swapRules(const size_t first, const size_t second); void storeSettings(); void loadSettings(); diff --git a/Swift/QtUI/QtHighlightEditor.cpp b/Swift/QtUI/QtHighlightEditor.cpp index 8488d7d..134155c 100644 --- a/Swift/QtUI/QtHighlightEditor.cpp +++ b/Swift/QtUI/QtHighlightEditor.cpp @@ -76,7 +76,7 @@ QtHighlightEditor::QtHighlightEditor(QtSettingsProvider* settings, QWidget* pare connect(ui_.soundFileButton, SIGNAL(clicked()), SLOT(selectSoundFile())); - /* if these are not needed, then they should be removed */ - ui_.moveUpButton->setVisible(false); - ui_.moveDownButton->setVisible(false); + /* allowing reordering items */ + connect(ui_.moveUpButton, SIGNAL(clicked()), this, SLOT(onUpButtonClicked())); + connect(ui_.moveDownButton, SIGNAL(clicked()), this, SLOT(onDownButtonClicked())); setWindowTitle(tr("Highlight Rules")); @@ -196,4 +196,20 @@ void QtHighlightEditor::onDeleteButtonClicked() } +void QtHighlightEditor::onUpButtonClicked() { + const size_t moveFrom = ui_.listWidget->currentRow(); + const size_t moveTo = moveFrom - 1; + highlightManager_->swapRules(moveFrom, moveTo); + populateList(); + selectRow(moveTo); +} + +void QtHighlightEditor::onDownButtonClicked() { + const size_t moveFrom = ui_.listWidget->currentRow(); + const size_t moveTo = moveFrom + 1; + highlightManager_->swapRules(moveFrom, moveTo); + populateList(); + selectRow(moveTo); +} + void QtHighlightEditor::onCurrentRowChanged(int currentRow) { diff --git a/Swift/QtUI/QtHighlightEditor.h b/Swift/QtUI/QtHighlightEditor.h index c7db464..e0595ad 100644 --- a/Swift/QtUI/QtHighlightEditor.h +++ b/Swift/QtUI/QtHighlightEditor.h @@ -41,4 +41,6 @@ namespace Swift { void onNewButtonClicked(); void onDeleteButtonClicked(); + void onUpButtonClicked(); + void onDownButtonClicked(); void onCurrentRowChanged(int currentRow); void onApplyButtonClick(); @@ -54,5 +56,4 @@ namespace Swift { void handleOnUserSelected(const JID& jid); void populateList(); - void updateChatPreview(); void selectRow(int row); int getSelectedRow() const; |