62 lines
1.3 KiB
C++
62 lines
1.3 KiB
C++
#pragma once
|
|
|
|
#include <QtWidgets/QMainWindow>
|
|
#include <QListWidgetItem>
|
|
|
|
#include "../mischelpers_global.h"
|
|
|
|
class MISCHELPERS_EXPORT CItemChooser : public QDialog
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
CItemChooser(const QString& Prompt = QString(), QWidget *parent = Q_NULLPTR);
|
|
|
|
void SetPrompt(const QString& Text);
|
|
void AddWidgets(QList<QWidget*> Widgets);
|
|
void AddWidget(QWidget* pWidget);
|
|
|
|
void AddItem(const QString& Label, const QVariant& Data);
|
|
void ChooseItems(const QVariantList& ChoosenItems);
|
|
void ChooseItem(const QVariant& Data);
|
|
|
|
QVariantList GetChoosenItems();
|
|
|
|
private slots:
|
|
void OnAdd();
|
|
void OnRemove();
|
|
void OnUp();
|
|
void OnDown();
|
|
|
|
|
|
protected:
|
|
void closeEvent(QCloseEvent *e);
|
|
|
|
void AddItem(QListWidgetItem* pItem);
|
|
void RemoveItem(QListWidgetItem* pChoosenItem);
|
|
bool MoveItem(QListWidgetItem* pItem, int Pos);
|
|
|
|
private:
|
|
|
|
QVBoxLayout* m_pMainLayout;
|
|
QLabel* m_pLabel;
|
|
|
|
QHBoxLayout* m_pCenterLayout;
|
|
|
|
QListWidget* m_pListAll;
|
|
|
|
QVBoxLayout* m_pMidleLayout;
|
|
QPushButton* m_pBtnAdd;
|
|
QPushButton* m_pBtnRemove;
|
|
|
|
QListWidget* m_pListChoosen;
|
|
|
|
QVBoxLayout* m_pRightLayout;
|
|
QPushButton* m_pBtnUp;
|
|
QPushButton* m_pBtnDown;
|
|
|
|
QDialogButtonBox* m_pButtonBox;
|
|
|
|
int m_InsertIndex;
|
|
};
|