diff options
Diffstat (limited to 'desktop-widgets')
-rw-r--r-- | desktop-widgets/listfilter.ui | 10 | ||||
-rw-r--r-- | desktop-widgets/simplewidgets.cpp | 16 | ||||
-rw-r--r-- | desktop-widgets/simplewidgets.h | 1 |
3 files changed, 12 insertions, 15 deletions
diff --git a/desktop-widgets/listfilter.ui b/desktop-widgets/listfilter.ui index dcdcd932e..48d813d21 100644 --- a/desktop-widgets/listfilter.ui +++ b/desktop-widgets/listfilter.ui @@ -51,16 +51,6 @@ </property> </widget> </item> - <item> - <widget class="QToolButton" name="selectionButton"> - <property name="text"> - <string>...</string> - </property> - <property name="popupMode"> - <enum>QToolButton::InstantPopup</enum> - </property> - </widget> - </item> </layout> </item> <item> diff --git a/desktop-widgets/simplewidgets.cpp b/desktop-widgets/simplewidgets.cpp index 167d3db1a..b63349819 100644 --- a/desktop-widgets/simplewidgets.cpp +++ b/desktop-widgets/simplewidgets.cpp @@ -498,6 +498,13 @@ void DiveComponentSelection::buttonClicked(QAbstractButton *button) } } +void FilterBase::addContextMenuEntry(const QString &s, void (FilterModelBase::*fn)()) +{ + QAction *act = new QAction(s, this); + connect(act, &QAction::triggered, model, fn); + ui.filterList->addAction(act); +} + FilterBase::FilterBase(FilterModelBase *model_, QWidget *parent) : QWidget(parent), model(model_) { @@ -511,11 +518,10 @@ FilterBase::FilterBase(FilterModelBase *model_, QWidget *parent) : QWidget(paren connect(ui.filterInternalList, SIGNAL(textChanged(QString)), filter, SLOT(setFilterFixedString(QString))); ui.filterList->setModel(filter); - QMenu *menu = new QMenu(this); - menu->addAction(tr("Select All"), model, &FilterModelBase::selectAll); - menu->addAction(tr("Unselect All"), model, &FilterModelBase::clearFilter); - menu->addAction(tr("Invert Selection"), model, &FilterModelBase::invertSelection); - ui.selectionButton->setMenu(menu); + addContextMenuEntry(tr("Select All"), &FilterModelBase::selectAll); + addContextMenuEntry(tr("Unselect All"), &FilterModelBase::clearFilter); + addContextMenuEntry(tr("Invert Selection"), &FilterModelBase::invertSelection); + ui.filterList->setContextMenuPolicy(Qt::ActionsContextMenu); } void FilterBase::showEvent(QShowEvent *event) diff --git a/desktop-widgets/simplewidgets.h b/desktop-widgets/simplewidgets.h index 294fe26cf..fdaa4587e 100644 --- a/desktop-widgets/simplewidgets.h +++ b/desktop-widgets/simplewidgets.h @@ -167,6 +167,7 @@ public: }; class FilterBase : public QWidget { + void addContextMenuEntry(const QString &s, void (FilterModelBase::*)()); protected: FilterBase(FilterModelBase *model, QWidget *parent = 0); FilterModelBase *model; |