diff options
author | Tim Jenssen <[email protected]> | 2023-05-22 19:48:42 +0200 |
---|---|---|
committer | Tim Jenssen <[email protected]> | 2023-05-22 21:13:40 +0200 |
commit | 1b6c0ff56c8d48c5b5bb8044b113cd580f6d5ee3 (patch) | |
tree | 25878f9091506fd282a338a2c5f98b357d47134e /src/plugins/qmldesigner/qmldesignerplugin.cpp | |
parent | 3dcdbe9069c452e2f0eacb925aa7412e63dc4762 (diff) | |
parent | df7398e2c5f3c1595f32c7484ac1e804d83a01ca (diff) |
Merge remote-tracking branch 'origin/qds/dev'
Conflicts:
coin/instructions/build.yaml
doc/qtcreator/src/projects/creator-only/creator-projects-creating.qdoc
share/qtcreator/qmldesigner/studio_templates/projects/common/CMakeLists.main.txt.tpl
src/libs/CMakeLists.txt
src/libs/advanceddockingsystem/dockmanager.cpp
src/libs/advanceddockingsystem/workspacedialog.cpp
src/plugins/coreplugin/manhattanstyle.cpp
src/plugins/qmldesigner/CMakeLists.txt
src/plugins/qmldesigner/components/formeditor/toolbox.cpp
src/plugins/qmldesigner/components/itemlibrary/itemlibraryassetimporter.cpp
src/plugins/qmldesigner/components/toolbar/toolbarbackend.cpp
src/plugins/qmldesigner/designercore/projectstorage/qmltypesparser.h
src/plugins/qmldesigner/qmldesignerexternaldependencies.cpp
src/plugins/qmldesignerbase/qmldesignerbaseplugin.cpp
src/plugins/qmldesignerbase/qmldesignerbaseplugin.h
src/plugins/qmlprojectmanager/qmlproject.cpp
src/tools/qml2puppet/CMakeLists.txt
tests/unit/unittest/CMakeLists.txt
Change-Id: I2c5f18c4fca49471d02713ce5859032232cf7756
Diffstat (limited to 'src/plugins/qmldesigner/qmldesignerplugin.cpp')
-rw-r--r-- | src/plugins/qmldesigner/qmldesignerplugin.cpp | 53 |
1 files changed, 29 insertions, 24 deletions
diff --git a/src/plugins/qmldesigner/qmldesignerplugin.cpp b/src/plugins/qmldesigner/qmldesignerplugin.cpp index 039528475a5..a25bbb832b8 100644 --- a/src/plugins/qmldesigner/qmldesignerplugin.cpp +++ b/src/plugins/qmldesigner/qmldesignerplugin.cpp @@ -31,7 +31,6 @@ #include <texttool/texttool.h> #include <timelineeditor/timelineview.h> #include <transitioneditor/transitioneditorview.h> - #include <qmljseditor/qmljseditor.h> #include <qmljseditor/qmljseditorconstants.h> #include <qmljseditor/qmljseditordocument.h> @@ -66,6 +65,7 @@ #include <utils/algorithm.h> #include <utils/hostosinfo.h> #include <utils/qtcassert.h> +#include <utils/uniqueobjectptr.h> #include <QAction> #include <QApplication> @@ -144,6 +144,8 @@ public: DesignModeWidget mainWidget; QtQuickDesignerFactory m_qtQuickDesignerFactory; bool blockEditorChange = false; + Utils::UniqueObjectPtr<QToolBar> toolBar; + Utils::UniqueObjectPtr<QWidget> statusBar; }; QmlDesignerPlugin *QmlDesignerPlugin::m_instance = nullptr; @@ -184,8 +186,9 @@ static bool isDesignerMode(Utils::Id mode) static bool documentIsAlreadyOpen(DesignDocument *designDocument, Core::IEditor *editor, Utils::Id newMode) { return designDocument - && editor == designDocument->editor() - && isDesignerMode(newMode); + && editor == designDocument->editor() + && isDesignerMode(newMode) + && designDocument->fileName() == editor->document()->filePath(); } static bool shouldAssertInException() @@ -241,7 +244,7 @@ bool QmlDesignerPlugin::initialize(const QStringList & /*arguments*/, QString *e ->addAction(cmd, Core::Constants::G_HELP_SUPPORT); connect(action, &QAction::triggered, this, [this] { - lauchFeedbackPopup(Core::Constants::IDE_DISPLAY_NAME); + lauchFeedbackPopupInternal(Core::Constants::IDE_DISPLAY_NAME); }); if (!Utils::HostOsInfo::canCreateOpenGLContext(errorMessage)) @@ -273,8 +276,8 @@ bool QmlDesignerPlugin::initialize(const QStringList & /*arguments*/, QString *e }); if (QmlProjectManager::QmlProject::isQtDesignStudio()) { - ToolBar::create(); - ToolBar::createStatusBar(); + d->toolBar = ToolBar::create(); + d->statusBar = ToolBar::createStatusBar(); } return true; @@ -289,10 +292,10 @@ bool QmlDesignerPlugin::delayedInitialize() Utils::transform(ExtensionSystem::PluginManager::pluginPaths(), [postfix](const QString &p) { return QString(p + postfix); }); - MetaInfo::setPluginPaths(pluginPaths); - d->viewManager.registerView( - std::make_unique<ConnectionView>(d->externalDependencies)); + MetaInfo::initializeGlobal(pluginPaths, d->externalDependencies); + + d->viewManager.registerView(std::make_unique<ConnectionView>(d->externalDependencies)); auto timelineView = d->viewManager.registerView( std::make_unique<TimelineView>(d->externalDependencies)); @@ -334,8 +337,6 @@ bool QmlDesignerPlugin::delayedInitialize() Core::ICore::appendAboutInformation(tr("Licensee: %1").arg(licensee())); } - MetaInfo::global(); - return true; } @@ -438,14 +439,12 @@ void QmlDesignerPlugin::integrateIntoQtCreator(QWidget *modeWidget) &Core::ModeManager::currentModeChanged, [this](Utils::Id newMode, Utils::Id oldMode) { Core::IEditor *currentEditor = Core::EditorManager::currentEditor(); - if (d && currentEditor && checkIfEditorIsQtQuick(currentEditor) + if (isDesignerMode(newMode) && checkIfEditorIsQtQuick(currentEditor) && !documentIsAlreadyOpen(currentDesignDocument(), currentEditor, newMode)) { - if (isDesignerMode(newMode)) { - showDesigner(); - } else if (currentDesignDocument() - || (!isDesignerMode(newMode) && isDesignerMode(oldMode))) { - hideDesigner(); - } + showDesigner(); + } else if (currentDesignDocument() + || (!isDesignerMode(newMode) && isDesignerMode(oldMode))) { + hideDesigner(); } }); } @@ -731,6 +730,18 @@ void QmlDesignerPlugin::trackWidgetFocusTime(QWidget *widget, const QString &ide void QmlDesignerPlugin::lauchFeedbackPopup(const QString &identifier) { + if (Core::ModeManager::currentModeId() == Core::Constants::MODE_DESIGN) + lauchFeedbackPopupInternal(identifier); +} + +void QmlDesignerPlugin::handleFeedback(const QString &feedback, int rating) +{ + const QString identifier = sender()->property("identifier").toString(); + emit usageStatisticsInsertFeedback(identifier, feedback, rating); +} + +void QmlDesignerPlugin::lauchFeedbackPopupInternal(const QString &identifier) +{ m_feedbackWidget = new QQuickWidget(Core::ICore::dialogParent()); m_feedbackWidget->setObjectName(Constants::OBJECT_NAME_TOP_FEEDBACK); @@ -767,12 +778,6 @@ void QmlDesignerPlugin::lauchFeedbackPopup(const QString &identifier) m_feedbackWidget->show(); } -void QmlDesignerPlugin::handleFeedback(const QString &feedback, int rating) -{ - const QString identifier = sender()->property("identifier").toString(); - emit usageStatisticsInsertFeedback(identifier, feedback, rating); -} - void QmlDesignerPlugin::closeFeedbackPopup() { if (m_feedbackWidget) { |