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;
}
Пример #2
0
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;
}
Пример #3
0
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;
}