aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/qmlprojectmanager/qmlprojectplugin.cpp
diff options
context:
space:
mode:
authorhjk <[email protected]>2024-01-16 12:56:24 +0100
committerhjk <[email protected]>2024-01-16 13:44:46 +0000
commit2f987932c137914cd3601e82052e77d37a84b206 (patch)
tree6e35a5cd5443f1f4966791e877c8e3307f1586c7 /src/plugins/qmlprojectmanager/qmlprojectplugin.cpp
parent0d14a4e010849acf51f7b7734ea6f77421857e4b (diff)
QmlProjectManager: Hide plugin class in .cpp
Change-Id: If9ed1c00c53f127ba328f5011772431b5e5b25f9 Reviewed-by: Jarek Kobus <[email protected]>
Diffstat (limited to 'src/plugins/qmlprojectmanager/qmlprojectplugin.cpp')
-rw-r--r--src/plugins/qmlprojectmanager/qmlprojectplugin.cpp51
1 files changed, 37 insertions, 14 deletions
diff --git a/src/plugins/qmlprojectmanager/qmlprojectplugin.cpp b/src/plugins/qmlprojectmanager/qmlprojectplugin.cpp
index bbf0a5b5032..abb366bd73d 100644
--- a/src/plugins/qmlprojectmanager/qmlprojectplugin.cpp
+++ b/src/plugins/qmlprojectmanager/qmlprojectplugin.cpp
@@ -1,8 +1,9 @@
// Copyright (C) 2016 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
-#include "qdslandingpage.h"
#include "qmlprojectplugin.h"
+
+#include "qdslandingpage.h"
#include "qmlproject.h"
#include "qmlprojectconstants.h"
#include "qmlprojectmanagertr.h"
@@ -20,6 +21,8 @@
#include <coreplugin/messagebox.h>
#include <coreplugin/modemanager.h>
+#include <extensionsystem/iplugin.h>
+
#include <projectexplorer/projectexplorerconstants.h>
#include <projectexplorer/projectmanager.h>
#include <projectexplorer/projectnodes.h>
@@ -99,19 +102,6 @@ public:
QdsLandingPageWidget *landingPageWidget = nullptr;
};
-QmlProjectPlugin::~QmlProjectPlugin()
-{
- QTC_ASSERT(d, return);
-
- if (d->lastMessageBox)
- d->lastMessageBox->deleteLater();
- if (d->landingPage)
- d->landingPage->deleteLater();
- if (d->landingPageWidget)
- d->landingPageWidget->deleteLater();
- delete d;
-}
-
void openQDS(const FilePath &fileName)
{
const FilePath qdsPath = qdsInstallationEntry();
@@ -236,6 +226,37 @@ static QmlBuildSystem *qmlBuildSystemforFileNode(const FileNode *fileNode)
return nullptr;
}
+class QmlProjectPlugin final : public ExtensionSystem::IPlugin
+{
+ Q_OBJECT
+ Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "QmlProjectManager.json")
+
+public:
+ ~QmlProjectPlugin()
+ {
+ if (d->lastMessageBox)
+ d->lastMessageBox->deleteLater();
+ if (d->landingPage)
+ d->landingPage->deleteLater();
+ if (d->landingPageWidget)
+ d->landingPageWidget->deleteLater();
+ delete d;
+ }
+
+public slots:
+ void editorModeChanged(Utils::Id newMode, Utils::Id oldMode);
+ void openQtc(bool permanent = false);
+ void openQds(bool permanent = false);
+
+private:
+ void initialize() final;
+ void displayQmlLandingPage();
+ void hideQmlLandingPage();
+ void updateQmlLandingPageProjectInfo(const Utils::FilePath &projectFile);
+
+ class QmlProjectPluginPrivate *d = nullptr;
+};
+
void QmlProjectPlugin::initialize()
{
d = new QmlProjectPluginPrivate;
@@ -451,3 +472,5 @@ FilePath projectFilePath()
}
} // QmlProjectManager::Internal
+
+#include "qmlprojectplugin.moc"