aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/qmldesigner/qmldesignerplugin.cpp
diff options
context:
space:
mode:
authorTim Jenssen <[email protected]>2023-05-22 19:48:42 +0200
committerTim Jenssen <[email protected]>2023-05-22 21:13:40 +0200
commit1b6c0ff56c8d48c5b5bb8044b113cd580f6d5ee3 (patch)
tree25878f9091506fd282a338a2c5f98b357d47134e /src/plugins/qmldesigner/qmldesignerplugin.cpp
parent3dcdbe9069c452e2f0eacb925aa7412e63dc4762 (diff)
parentdf7398e2c5f3c1595f32c7484ac1e804d83a01ca (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.cpp53
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) {