diff --git a/src/lib_gui/qt/element/QtListBox.cpp b/src/lib_gui/qt/element/QtListBox.cpp index 7ec3d093..45fe97c5 100644 --- a/src/lib_gui/qt/element/QtListBox.cpp +++ b/src/lib_gui/qt/element/QtListBox.cpp @@ -1,16 +1,14 @@ #include "QtListBox.h" #include -#include #include -#include #include #include "QtIconButton.h" #include "QtStringListBoxItem.h" -#include "utilityQt.h" #include "QtTextEditDialog.h" #include "ResourcePaths.h" +#include "utilityQt.h" #include "utilityString.h" QtListBox::QtListBox(QWidget *parent, const QString& listName) @@ -22,9 +20,10 @@ QtListBox::QtListBox(QWidget *parent, const QString& listName) layout->setContentsMargins(0, 6, 0, 0); layout->setAlignment(Qt::AlignTop); - m_list = new QListWidget(this); + m_list = new QtListWidget(this); m_list->setObjectName("list"); m_list->setAttribute(Qt::WA_MacShowFocusRect, 0); + connect(m_list, &QListWidget::doubleClicked, this, &QtListBox::doubleClicked); setStyleSheet(utility::getStyleSheet(ResourcePaths::getGuiPath().concatenate(L"window/listbox.css")).c_str()); layout->addWidget(m_list, 5); @@ -244,3 +243,11 @@ void QtListBox::savedEditDialog() canceledEditDialog(); } + +void QtListBox::doubleClicked(const QModelIndex& index) +{ + if (!index.isValid()) + { + addListBoxItem(); + } +} diff --git a/src/lib_gui/qt/element/QtListBox.h b/src/lib_gui/qt/element/QtListBox.h index 98b1cdc7..0384137b 100644 --- a/src/lib_gui/qt/element/QtListBox.h +++ b/src/lib_gui/qt/element/QtListBox.h @@ -2,18 +2,37 @@ #define QT_LIST_BOX_H #include +#include #include "FilePath.h" class QEvent; class QHBoxLayout; -class QListWidget; class QListWidgetItem; class QPushButton; class QtTextEditDialog; class QtListBoxItem; +class QtListWidget + : public QListWidget +{ + Q_OBJECT + +public: + QtListWidget(QWidget* parent = nullptr) + : QListWidget(parent) + { + } + +protected: + void mouseDoubleClickEvent(QMouseEvent* event) override + { + QModelIndex index; + emit doubleClicked(index); + } +}; + class QtListBox : public QFrame { @@ -33,7 +52,7 @@ protected: void addWidgetToBar(QWidget* widget); bool event(QEvent* event) override; - QListWidget* m_list; + QtListWidget* m_list; protected slots: QtListBoxItem* addListBoxItem(); @@ -43,6 +62,9 @@ protected slots: void canceledEditDialog(); void savedEditDialog(); +private slots: + void doubleClicked(const QModelIndex& index); + private: virtual QtListBoxItem* createListBoxItem(QListWidgetItem* item) = 0;