diff --git a/src/plugins/help/remotehelpfilter.cpp b/src/plugins/help/remotehelpfilter.cpp
index faa810e67e8..43e32bd8473 100644
--- a/src/plugins/help/remotehelpfilter.cpp
+++ b/src/plugins/help/remotehelpfilter.cpp
@@ -53,9 +53,13 @@ RemoteFilterOptions::RemoteFilterOptions(RemoteHelpFilter *filter, QWidget *pare
this, &RemoteFilterOptions::addNewItem);
connect(m_ui.remove, &QPushButton::clicked,
this, &RemoteFilterOptions::removeItem);
+ connect(m_ui.moveUp, &QPushButton::clicked,
+ this, &RemoteFilterOptions::moveItemUp);
+ connect(m_ui.moveDown, &QPushButton::clicked,
+ this, &RemoteFilterOptions::moveItemDown);
connect(m_ui.listWidget, &QListWidget::currentItemChanged,
- this, &RemoteFilterOptions::updateRemoveButton);
- updateRemoveButton();
+ this, &RemoteFilterOptions::updateActionButtons);
+ updateActionButtons();
}
void RemoteFilterOptions::addNewItem()
@@ -76,9 +80,32 @@ void RemoteFilterOptions::removeItem()
}
}
-void RemoteFilterOptions::updateRemoveButton()
+void RemoteFilterOptions::moveItemUp()
+{
+ const int row = m_ui.listWidget->currentRow();
+ if (row > 0) {
+ QListWidgetItem *item = m_ui.listWidget->takeItem(row);
+ m_ui.listWidget->insertItem(row - 1, item);
+ m_ui.listWidget->setCurrentRow(row - 1);
+ }
+}
+
+void RemoteFilterOptions::moveItemDown()
+{
+ const int row = m_ui.listWidget->currentRow();
+ if (row >= 0 && row < m_ui.listWidget->count() - 1) {
+ QListWidgetItem *item = m_ui.listWidget->takeItem(row);
+ m_ui.listWidget->insertItem(row + 1, item);
+ m_ui.listWidget->setCurrentRow(row + 1);
+ }
+}
+
+void RemoteFilterOptions::updateActionButtons()
{
m_ui.remove->setEnabled(m_ui.listWidget->currentItem());
+ const int row = m_ui.listWidget->currentRow();
+ m_ui.moveUp->setEnabled(row > 0);
+ m_ui.moveDown->setEnabled(row >= 0 && row < m_ui.listWidget->count() - 1);
}
// -- RemoteHelpFilter
diff --git a/src/plugins/help/remotehelpfilter.h b/src/plugins/help/remotehelpfilter.h
index 9c8fa8fc0d7..23749a80a30 100644
--- a/src/plugins/help/remotehelpfilter.h
+++ b/src/plugins/help/remotehelpfilter.h
@@ -72,7 +72,9 @@ public:
private:
void addNewItem();
void removeItem();
- void updateRemoveButton();
+ void moveItemUp();
+ void moveItemDown();
+ void updateActionButtons();
RemoteHelpFilter *m_filter;
Ui::RemoteFilterOptions m_ui;
diff --git a/src/plugins/help/remotehelpfilter.ui b/src/plugins/help/remotehelpfilter.ui
index 55f1f4de38e..5c70d032a09 100644
--- a/src/plugins/help/remotehelpfilter.ui
+++ b/src/plugins/help/remotehelpfilter.ui
@@ -6,8 +6,8 @@
0
0
- 342
- 182
+ 600
+ 400
@@ -60,7 +60,11 @@
-
-
-
+
+
+ QAbstractItemView::InternalMove
+
+
-
@@ -90,6 +94,32 @@
+ -
+
+
+
+ 21
+ 21
+
+
+
+ Move Up
+
+
+
+ -
+
+
+
+ 21
+ 21
+
+
+
+ Move Down
+
+
+
-