19 #include <QStandardItemModel>
20 #include <QVBoxLayout>
26 , m_getPropertiesCallback(
std::move(callback))
27 , m_box(new QComboBox)
28 , m_comboModel(new QStandardItemModel(this))
30 setAutoFillBackground(
true);
31 setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum);
33 auto layout =
new QVBoxLayout;
35 layout->setSpacing(0);
36 layout->addWidget(
m_box);
46 return m_box->sizeHint();
51 return m_box->minimumSizeHint();
59 if (index >= 0 && index <
static_cast<int>(mdata.size())) {
60 if (property != mdata[
static_cast<size_t>(index)])
61 setDataIntern(QVariant::fromValue(mdata[
static_cast<size_t>(index)]));
71 QStandardItem* parentItem =
m_comboModel->invisibleRootItem();
73 auto item =
new QStandardItem(QString::fromStdString(prop.text()));
74 parentItem->appendRow(item);
94 if (property.identifier() == prop.identifier())
104 connect(
m_box,
static_cast<void (QComboBox::*)(
int)
>(&QComboBox::currentIndexChanged),
this,
107 disconnect(
m_box,
static_cast<void (QComboBox::*)(
int)
>(&QComboBox::currentIndexChanged),
Base class for all custom variant editors.
void setDataIntern(const QVariant &data)
Saves the data as given by editor's internal components and notifies the model.
virtual void onIndexChanged(int index)
int internIndex()
Returns index for QComboBox.
QSize sizeHint() const override
ExternalPropertyComboEditor(callback_t callback, QWidget *parent=nullptr)
QSize minimumSizeHint() const override
QStandardItemModel * m_comboModel
void update_components() override
Should update widget components from m_data, if necessary.
std::function< std::vector< ModelView::ExternalProperty >()> callback_t
void setConnected(bool isConnected)
callback_t m_getPropertiesCallback
Property to carry text, color and identifier.
materialitems.h Collection of materials to populate MaterialModel.
QVariant DecorationRole(const SessionItem &item)
Returns tooltip for given item.