QWidget* QtnPropertyDelegateQStringList::createValueEditorImpl(QWidget* parent, const QRect& rect, QtnInplaceInfo* inplaceInfo) { if (!owner().isEditableByUser()) { QLineEdit *lineEdit = new QLineEdit(parent); lineEdit->setReadOnly(true); lineEdit->setText(owner().value()); lineEdit->setGeometry(rect); return lineEdit; } QComboBox* editor = new QComboBox(parent); editor->setGeometry(rect); editor->addItems(m_items); new QtnPropertyQStringListComboBoxHandler(owner(), *editor); if (inplaceInfo) { editor->showPopup(); } return editor; }
QWidget* ChannelRoutingDelegate::createEditor ( QWidget *pParent, const QStyleOptionViewItem & option, const QModelIndex& index ) const { if (!index.isValid()) return NULL; if (index.column() != 0) return NULL; ChannelRoutingItem item = index.model()->data(index, Qt::DisplayRole).value<ChannelRoutingItem>(); QComboBox* pComboBox = new QComboBox(pParent); pComboBox->addItems(item.options); pComboBox->setCurrentIndex(item.selection); pComboBox->setEnabled(true); pComboBox->setGeometry(option.rect); return pComboBox; }
QWidget* QtnPropertyDelegateEnum::createValueEditorImpl(QWidget* parent, const QRect& rect, QtnInplaceInfo* inplaceInfo) { const QtnEnumInfo* info = owner().enumInfo(); if (!info) return 0; if (owner().isEditableByUser()) { QComboBox* combo = new QComboBox(parent); info->forEachEnumValue([combo](const QtnEnumValueInfo &value)->bool { combo->addItem(value.name(), QVariant(value.value())); return true; }); combo->setGeometry(rect); new QtnPropertyEnumComboBoxHandler(owner(), *combo); if (inplaceInfo) combo->showPopup(); return combo; } else { const QtnEnumValueInfo* valueInfo = info->findByValue(owner()); if (!valueInfo) return 0; QLineEdit* lineEdit = new QLineEdit(parent); lineEdit->setReadOnly(true); lineEdit->setText(valueInfo->name()); lineEdit->setGeometry(rect); return lineEdit; } }
QWidget* QtnPropertyDelegateQBrushStyle::createValueEditorImpl(QWidget* parent, const QRect& rect, QtnInplaceInfo* inplaceInfo) { if (owner().isEditableByUser()) { QComboBox* combo = new QtnPropertyBrushStyleComboBox(parent); combo->setLineEdit(nullptr); combo->setItemDelegate(new QtnPropertyBrushStyleItemDelegate()); if (m_showAll) { for (auto bs = Qt::NoBrush; bs <= Qt::ConicalGradientPattern; bs = Qt::BrushStyle(bs + 1)) { combo->addItem("", QVariant::fromValue(bs)); } combo->addItem("", QVariant::fromValue(Qt::TexturePattern)); } else { combo->addItem("", QVariant::fromValue(Qt::NoBrush)); combo->addItem("", QVariant::fromValue(Qt::SolidPattern)); combo->addItem("", QVariant::fromValue(Qt::HorPattern)); combo->addItem("", QVariant::fromValue(Qt::VerPattern)); combo->addItem("", QVariant::fromValue(Qt::CrossPattern)); combo->addItem("", QVariant::fromValue(Qt::BDiagPattern)); combo->addItem("", QVariant::fromValue(Qt::FDiagPattern)); combo->addItem("", QVariant::fromValue(Qt::DiagCrossPattern)); } combo->setGeometry(rect); new QtnPropertyBrushStyleComboBoxHandler(owner(), *combo); if (inplaceInfo) combo->showPopup(); return combo; } return nullptr; }