diff options
Diffstat (limited to 'src/plugins/qmldesigner/components/bindingeditor/bindingeditordialog.cpp')
-rw-r--r-- | src/plugins/qmldesigner/components/bindingeditor/bindingeditordialog.cpp | 150 |
1 files changed, 18 insertions, 132 deletions
diff --git a/src/plugins/qmldesigner/components/bindingeditor/bindingeditordialog.cpp b/src/plugins/qmldesigner/components/bindingeditor/bindingeditordialog.cpp index 9d2b1cb9e0..b74d805f08 100644 --- a/src/plugins/qmldesigner/components/bindingeditor/bindingeditordialog.cpp +++ b/src/plugins/qmldesigner/components/bindingeditor/bindingeditordialog.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2019 The Qt Company Ltd. +** Copyright (C) 2020 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qt Creator. @@ -41,80 +41,19 @@ namespace QmlDesigner { -BindingEditorDialog::BindingEditorDialog(QWidget *parent, DialogType type) - : QDialog(parent) - , m_dialogType(type) +BindingEditorDialog::BindingEditorDialog(QWidget *parent) + : AbstractEditorDialog(parent, tr("Binding Editor")) { - setWindowFlag(Qt::Tool, true); - setWindowTitle(defaultTitle()); - setModal(false); - - setupJSEditor(); setupUIComponents(); - QObject::connect(m_buttonBox, &QDialogButtonBox::accepted, - this, &BindingEditorDialog::accepted); - QObject::connect(m_buttonBox, &QDialogButtonBox::rejected, - this, &BindingEditorDialog::rejected); - QObject::connect(m_editorWidget, &BindingEditorWidget::returnKeyClicked, - this, &BindingEditorDialog::accepted); - - if (m_dialogType == DialogType::BindingDialog) { - QObject::connect(m_comboBoxItem, QOverload<int>::of(&QComboBox::currentIndexChanged), - this, &BindingEditorDialog::itemIDChanged); - QObject::connect(m_comboBoxProperty, QOverload<int>::of(&QComboBox::currentIndexChanged), - this, &BindingEditorDialog::propertyIDChanged); - QObject::connect(m_editorWidget, &QPlainTextEdit::textChanged, - this, &BindingEditorDialog::textChanged); - } + QObject::connect(m_comboBoxItem, QOverload<int>::of(&QComboBox::currentIndexChanged), + this, &BindingEditorDialog::itemIDChanged); + QObject::connect(m_comboBoxProperty, QOverload<int>::of(&QComboBox::currentIndexChanged), + this, &BindingEditorDialog::propertyIDChanged); } BindingEditorDialog::~BindingEditorDialog() { - delete m_editor; //m_editorWidget is handled by basetexteditor destructor - delete m_buttonBox; - delete m_comboBoxItem; - delete m_comboBoxProperty; - delete m_comboBoxLayout; - delete m_verticalLayout; -} - -void BindingEditorDialog::showWidget() -{ - this->show(); - this->raise(); - m_editorWidget->setFocus(); -} - -void BindingEditorDialog::showWidget(int x, int y) -{ - showWidget(); - move(QPoint(x, y)); -} - -QString BindingEditorDialog::editorValue() const -{ - if (!m_editorWidget) - return {}; - - return m_editorWidget->document()->toPlainText(); -} - -void BindingEditorDialog::setEditorValue(const QString &text) -{ - if (m_editorWidget) - m_editorWidget->document()->setPlainText(text); -} - -void BindingEditorDialog::setAllBindings(QList<BindingEditorDialog::BindingOption> bindings) -{ - m_lock = true; - - m_bindings = bindings; - setupComboBoxes(); - adjustProperties(); - - m_lock = false; } void BindingEditorDialog::adjustProperties() @@ -155,69 +94,26 @@ void BindingEditorDialog::adjustProperties() m_comboBoxProperty->setCurrentText(property); } -void BindingEditorDialog::unregisterAutoCompletion() +void BindingEditorDialog::setAllBindings(QList<BindingOption> bindings) { - if (m_editorWidget) - m_editorWidget->unregisterAutoCompletion(); -} - -QString BindingEditorDialog::defaultTitle() const -{ - return titleString; -} - -void BindingEditorDialog::setupJSEditor() -{ - static BindingEditorFactory f; - m_editor = qobject_cast<TextEditor::BaseTextEditor*>(f.createEditor()); - m_editorWidget = qobject_cast<BindingEditorWidget*>(m_editor->editorWidget()); - - Core::Context context = m_editor->context(); - context.prepend(BINDINGEDITOR_CONTEXT_ID); - m_editorWidget->m_context->setContext(context); - - auto qmlDesignerEditor = QmlDesignerPlugin::instance()->currentDesignDocument()->textEditor(); - - m_editorWidget->qmljsdocument = qobject_cast<QmlJSEditor::QmlJSEditorWidget *>( - qmlDesignerEditor->widget())->qmlJsEditorDocument(); + m_lock = true; + m_bindings = bindings; + setupComboBoxes(); + adjustProperties(); - m_editorWidget->setLineNumbersVisible(false); - m_editorWidget->setMarksVisible(false); - m_editorWidget->setCodeFoldingSupported(false); - m_editorWidget->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded); - m_editorWidget->setHorizontalScrollBarPolicy(Qt::ScrollBarAsNeeded); - m_editorWidget->setTabChangesFocus(true); + m_lock = false; } void BindingEditorDialog::setupUIComponents() { - m_verticalLayout = new QVBoxLayout(this); - - if (m_dialogType == DialogType::BindingDialog) { - m_comboBoxLayout = new QHBoxLayout; - m_comboBoxItem = new QComboBox(this); - m_comboBoxProperty = new QComboBox(this); - } - - m_editorWidget->setParent(this); - m_editorWidget->setFrameStyle(QFrame::StyledPanel | QFrame::Raised); - m_editorWidget->show(); + m_comboBoxItem = new QComboBox(this); + m_comboBoxProperty = new QComboBox(this); - m_buttonBox = new QDialogButtonBox(this); - m_buttonBox->setOrientation(Qt::Horizontal); - m_buttonBox->setStandardButtons(QDialogButtonBox::Ok | QDialogButtonBox::Cancel); - m_buttonBox->button(QDialogButtonBox::Ok)->setDefault(true); + m_comboBoxLayout->addWidget(m_comboBoxItem); + m_comboBoxLayout->addWidget(m_comboBoxProperty); - if (m_dialogType == DialogType::BindingDialog) { - m_comboBoxLayout->addWidget(m_comboBoxItem); - m_comboBoxLayout->addWidget(m_comboBoxProperty); - m_verticalLayout->addLayout(m_comboBoxLayout); - } - m_verticalLayout->addWidget(m_editorWidget); - m_verticalLayout->addWidget(m_buttonBox); - - this->resize(660, 240); + //this->resize(660, 240); } void BindingEditorDialog::setupComboBoxes() @@ -260,14 +156,4 @@ void BindingEditorDialog::propertyIDChanged(int propertyID) m_comboBoxProperty->removeItem(undefinedProperty); } -void BindingEditorDialog::textChanged() -{ - if (m_lock) - return; - - m_lock = true; - adjustProperties(); - m_lock = false; -} - } // QmlDesigner namespace |