js8call/JS8_Widgets/CheckableItemComboBox.h
2026-01-18 19:19:15 -06:00

32 lines
726 B
C++

#ifndef CHECKABLE_ITEM_COMBO_BOX_HPP__
#define CHECKABLE_ITEM_COMBO_BOX_HPP__
#include "LazyFillComboBox.h"
#include <QScopedPointer>
class QStandardItemModel;
class QStandardItem;
class CheckableItemComboBox : public LazyFillComboBox {
Q_OBJECT
public:
explicit CheckableItemComboBox(QWidget *parent = nullptr);
QStandardItem *addCheckItem(QString const &label, QVariant const &data,
Qt::CheckState checkState);
protected:
bool eventFilter(QObject *, QEvent *) override;
private:
void update_text();
Q_SLOT void model_data_changed();
Q_SLOT void item_pressed(QModelIndex const &);
private:
QScopedPointer<QStandardItemModel> model_;
};
#endif