summaryrefslogtreecommitdiff
path: root/src/plugins/qmldesigner
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2018-02-06 16:51:28 +0100
committerhjk <hjk@qt.io>2018-02-07 16:22:02 +0000
commite30c872e61af822caf7b019a65de57559daac6f1 (patch)
treea7897f631ac4fd7ba7f60d4561efcd0d3d38b020 /src/plugins/qmldesigner
parent487aad1ed59dd992f1ebb34f53aedb83f5362800 (diff)
downloadqt-creator-e30c872e61af822caf7b019a65de57559daac6f1.tar.gz
QmlDesigner: Avoid use of global object pool
Plus some code cosmetics. Change-Id: I6fde62da5a99e750131d20336d35565280ac7bef Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Diffstat (limited to 'src/plugins/qmldesigner')
-rw-r--r--src/plugins/qmldesigner/designmodewidget.cpp5
-rw-r--r--src/plugins/qmldesigner/designmodewidget.h5
-rw-r--r--src/plugins/qmldesigner/qmldesignerplugin.cpp34
-rw-r--r--src/plugins/qmldesigner/qmldesignerplugin.h16
4 files changed, 25 insertions, 35 deletions
diff --git a/src/plugins/qmldesigner/designmodewidget.cpp b/src/plugins/qmldesigner/designmodewidget.cpp
index acbcd19bab..31f782b7d6 100644
--- a/src/plugins/qmldesigner/designmodewidget.cpp
+++ b/src/plugins/qmldesigner/designmodewidget.cpp
@@ -134,9 +134,8 @@ QList<QToolButton *> DesignerSideBarItem::createToolBarWidgets()
}
// ---------- DesignModeWidget
-DesignModeWidget::DesignModeWidget(QWidget *parent)
- : QWidget(parent)
- , m_toolBar(new Core::EditorToolBar(this))
+DesignModeWidget::DesignModeWidget()
+ : m_toolBar(new Core::EditorToolBar(this))
, m_crumbleBar(new CrumbleBar(this))
{
}
diff --git a/src/plugins/qmldesigner/designmodewidget.h b/src/plugins/qmldesigner/designmodewidget.h
index f392058b76..e9600ef5ee 100644
--- a/src/plugins/qmldesigner/designmodewidget.h
+++ b/src/plugins/qmldesigner/designmodewidget.h
@@ -52,16 +52,15 @@ namespace Internal {
class DesignMode;
class DocumentWidget;
-class DesignModeWidget;
class DesignModeWidget : public QWidget
{
Q_OBJECT
public:
- explicit DesignModeWidget(QWidget *parent = 0);
-
+ DesignModeWidget();
~DesignModeWidget();
+
void contextHelpId(const Core::IContext::HelpIdCallback &callback) const;
void initialize();
diff --git a/src/plugins/qmldesigner/qmldesignerplugin.cpp b/src/plugins/qmldesigner/qmldesignerplugin.cpp
index 3d89f35784..1b81f80b28 100644
--- a/src/plugins/qmldesigner/qmldesignerplugin.cpp
+++ b/src/plugins/qmldesigner/qmldesignerplugin.cpp
@@ -72,18 +72,20 @@
Q_LOGGING_CATEGORY(qmldesignerLog, "qtc.qmldesigner")
+using namespace QmlDesigner::Internal;
+
namespace QmlDesigner {
-class QmlDesignerPluginPrivate {
+class QmlDesignerPluginPrivate
+{
public:
ViewManager viewManager;
DocumentManager documentManager;
ShortCutManager shortCutManager;
-
- Internal::DesignModeWidget *mainWidget = nullptr;
-
+ SettingsPage settingsPage;
+ DesignModeWidget mainWidget;
DesignerSettings settings;
- Internal::DesignModeContext *context = nullptr;
+ DesignModeContext *context = nullptr;
bool blockEditorChange = false;
};
@@ -158,7 +160,7 @@ QmlDesignerPlugin::QmlDesignerPlugin()
QmlDesignerPlugin::~QmlDesignerPlugin()
{
if (d) {
- Core::DesignMode::unregisterDesignWidget(d->mainWidget);
+ Core::DesignMode::unregisterDesignWidget(&d->mainWidget);
Core::ICore::removeContextObject(d->context);
d->context = nullptr;
}
@@ -177,7 +179,6 @@ bool QmlDesignerPlugin::initialize(const QStringList & /*arguments*/, QString *e
if (!Utils::HostOsInfo::canCreateOpenGLContext(errorMessage))
return false;
d = new QmlDesignerPluginPrivate;
- d->mainWidget = new Internal::DesignModeWidget;
return true;
}
@@ -190,7 +191,6 @@ bool QmlDesignerPlugin::delayedInitialize()
+ QLatin1String(IDE_LIBRARY_BASENAME) + "/qtcreator/plugins/qmldesigner");
MetaInfo::setPluginPaths(QStringList(pluginPath));
- addAutoReleasedObject(new Internal::SettingsPage);
d->settings.fromSettings(Core::ICore::settings());
d->viewManager.registerViewTakingOwnership(new QmlDesigner::Internal::ConnectionView());
@@ -207,7 +207,7 @@ bool QmlDesignerPlugin::delayedInitialize()
void QmlDesignerPlugin::extensionsInitialized()
{
- integrateIntoQtCreator(d->mainWidget);
+ integrateIntoQtCreator(&d->mainWidget);
}
static QStringList allUiQmlFilesforCurrentProject(const Utils::FileName &fileName)
@@ -292,12 +292,12 @@ void QmlDesignerPlugin::showDesigner()
{
QTC_ASSERT(!d->documentManager.hasCurrentDesignDocument(), return);
- d->mainWidget->initialize();
+ d->mainWidget.initialize();
const Utils::FileName fileName = Core::EditorManager::currentEditor()->document()->filePath();
const QStringList allUiQmlFiles = allUiQmlFilesforCurrentProject(fileName);
if (warningsForQmlFilesInsteadOfUiQmlEnabled() && !fileName.endsWith(".ui.qml") && !allUiQmlFiles.isEmpty()) {
- OpenUiQmlFileDialog dialog(d->mainWidget);
+ OpenUiQmlFileDialog dialog(&d->mainWidget);
dialog.setUiQmlFiles(projectPath(fileName), allUiQmlFiles);
dialog.exec();
if (dialog.uiFileOpened()) {
@@ -324,7 +324,7 @@ void QmlDesignerPlugin::hideDesigner()
{
if (d->documentManager.hasCurrentDesignDocument()) {
deactivateAutoSynchronization();
- d->mainWidget->saveSettings();
+ d->mainWidget.saveSettings();
}
d->shortCutManager.disconnectUndoActions(currentDesignDocument());
@@ -339,12 +339,12 @@ void QmlDesignerPlugin::changeEditor()
if (d->documentManager.hasCurrentDesignDocument()) {
deactivateAutoSynchronization();
- d->mainWidget->saveSettings();
+ d->mainWidget.saveSettings();
}
d->shortCutManager.disconnectUndoActions(currentDesignDocument());
d->documentManager.setCurrentDesignDocument(Core::EditorManager::currentEditor());
- d->mainWidget->initialize();
+ d->mainWidget.initialize();
d->shortCutManager.connectUndoActions(currentDesignDocument());
if (d->documentManager.hasCurrentDesignDocument()) {
@@ -393,7 +393,7 @@ void QmlDesignerPlugin::activateAutoSynchronization()
currentDesignDocument()->updateActiveQtVersion();
currentDesignDocument()->updateCurrentProject();
- d->mainWidget->enableWidgets();
+ d->mainWidget.enableWidgets();
currentDesignDocument()->attachRewriterToModel();
resetModelSelection();
@@ -403,7 +403,7 @@ void QmlDesignerPlugin::activateAutoSynchronization()
selectModelNodeUnderTextCursor();
- d->mainWidget->setupNavigatorHistory(currentDesignDocument()->textEditor());
+ d->mainWidget.setupNavigatorHistory(currentDesignDocument()->textEditor());
currentDesignDocument()->updateSubcomponentManager();
}
@@ -450,7 +450,7 @@ DesignDocument *QmlDesignerPlugin::currentDesignDocument() const
Internal::DesignModeWidget *QmlDesignerPlugin::mainWidget() const
{
if (d)
- return d->mainWidget;
+ return &d->mainWidget;
return nullptr;
}
diff --git a/src/plugins/qmldesigner/qmldesignerplugin.h b/src/plugins/qmldesigner/qmldesignerplugin.h
index cf4a212fea..9ad1cef9b8 100644
--- a/src/plugins/qmldesigner/qmldesignerplugin.h
+++ b/src/plugins/qmldesigner/qmldesignerplugin.h
@@ -35,12 +35,6 @@
#include "shortcutmanager.h"
#include <designeractionmanager.h>
-#include <QStringList>
-
-QT_BEGIN_NAMESPACE
-class QAction;
-QT_END_NAMESPACE
-
namespace Core {
class IEditor;
}
@@ -58,12 +52,11 @@ class QMLDESIGNERCORE_EXPORT QmlDesignerPlugin : public ExtensionSystem::IPlugin
public:
QmlDesignerPlugin();
- virtual ~QmlDesignerPlugin();
+ ~QmlDesignerPlugin() final;
- //Plugin
- bool initialize(const QStringList &arguments, QString *errorMessage = 0) override;
- bool delayedInitialize() override;
- void extensionsInitialized() override;
+ bool initialize(const QStringList &arguments, QString *errorMessage) final;
+ bool delayedInitialize() final;
+ void extensionsInitialized() final;
static QmlDesignerPlugin *instance();
@@ -105,7 +98,6 @@ private: // functions
private: // variables
QmlDesignerPluginPrivate *d = nullptr;
static QmlDesignerPlugin *m_instance;
-
};
} // namespace QmlDesigner