ui: double click in project setup list box to add new item

This commit is contained in:
Eberhard Graether
2019-01-14 16:37:44 +01:00
parent 2d2f8f4f31
commit 21ac50c204
2 changed files with 35 additions and 6 deletions
+11 -4
View File
@@ -1,16 +1,14 @@
#include "QtListBox.h"
#include <QBoxLayout>
#include <QListWidget>
#include <QLabel>
#include <QListWidget>
#include <QScrollBar>
#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();
}
}
+24 -2
View File
@@ -2,18 +2,37 @@
#define QT_LIST_BOX_H
#include <QFrame>
#include <QListWidget>
#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;