From 745345e347997f89f130e21bf7931fe8c6a38835 Mon Sep 17 00:00:00 2001 From: kh1 <qt-info@nokia.com> Date: Tue, 25 May 2010 13:43:16 +0200 Subject: [PATCH] There is no dependency, so make the runtime manager an real singelton. Reviewed-by: ck --- .../qt-maemo/maemomanager.cpp | 21 +++++++------------ .../qt4projectmanager/qt-maemo/maemomanager.h | 2 -- .../qt-maemo/qemuruntimemanager.cpp | 9 ++++---- .../qt-maemo/qemuruntimemanager.h | 8 +++---- .../qt4projectmanagerplugin.cpp | 3 +-- .../qt4projectmanagerplugin.h | 2 -- 6 files changed, 17 insertions(+), 28 deletions(-) diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemomanager.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemomanager.cpp index 18438e2c06e..60f6a80fb5f 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemomanager.cpp +++ b/src/plugins/qt4projectmanager/qt-maemo/maemomanager.cpp @@ -44,6 +44,9 @@ #include <QtCore/QFile> #include <QtCore/QTextStream> +using namespace ExtensionSystem; +using namespace ProjectExplorer; + namespace Qt4ProjectManager { namespace Internal { @@ -59,10 +62,10 @@ MaemoManager::MaemoManager() Q_ASSERT(!m_instance); m_instance = this; + QemuRuntimeManager::instance(this); MaemoDeviceConfigurations::instance(this); - ExtensionSystem::PluginManager *pluginManager - = ExtensionSystem::PluginManager::instance(); + PluginManager *pluginManager = PluginManager::instance(); pluginManager->addObject(m_runControlFactory); pluginManager->addObject(m_runConfigurationFactory); pluginManager->addObject(m_packageCreationFactory); @@ -71,8 +74,7 @@ MaemoManager::MaemoManager() MaemoManager::~MaemoManager() { - ExtensionSystem::PluginManager *pluginManager - = ExtensionSystem::PluginManager::instance(); + PluginManager *pluginManager = PluginManager::instance(); pluginManager->removeObject(m_runControlFactory); pluginManager->removeObject(m_runConfigurationFactory); pluginManager->removeObject(m_packageCreationFactory); @@ -87,13 +89,7 @@ MaemoManager &MaemoManager::instance() return *m_instance; } -void MaemoManager::init() -{ - m_qemuRuntimeManager = new QemuRuntimeManager(this); -} - -bool -MaemoManager::isValidMaemoQtVersion(const Qt4ProjectManager::QtVersion *version) const +bool MaemoManager::isValidMaemoQtVersion(const QtVersion *version) const { QString path = QDir::cleanPath(version->qmakeCommand()); path = path.remove(QLatin1String("/bin/qmake" EXEC_SUFFIX)); @@ -116,8 +112,7 @@ MaemoManager::isValidMaemoQtVersion(const Qt4ProjectManager::QtVersion *version) return false; } -ProjectExplorer::ToolChain* -MaemoManager::maemoToolChain(const QtVersion *version) const +ToolChain* MaemoManager::maemoToolChain(const QtVersion *version) const { QString targetRoot = QDir::cleanPath(version->qmakeCommand()); targetRoot.remove(QLatin1String("/bin/qmake" EXEC_SUFFIX)); diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemomanager.h b/src/plugins/qt4projectmanager/qt-maemo/maemomanager.h index 786ac125e26..689fbfa27ff 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemomanager.h +++ b/src/plugins/qt4projectmanager/qt-maemo/maemomanager.h @@ -56,8 +56,6 @@ public: ~MaemoManager(); static MaemoManager &instance(); - void init(); - bool isValidMaemoQtVersion(const Qt4ProjectManager::QtVersion *version) const; ToolChain *maemoToolChain(const Qt4ProjectManager::QtVersion *version) const; diff --git a/src/plugins/qt4projectmanager/qt-maemo/qemuruntimemanager.cpp b/src/plugins/qt4projectmanager/qt-maemo/qemuruntimemanager.cpp index 3d16648d76a..427e118e0b0 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/qemuruntimemanager.cpp +++ b/src/plugins/qt4projectmanager/qt-maemo/qemuruntimemanager.cpp @@ -69,9 +69,6 @@ QemuRuntimeManager::QemuRuntimeManager(QObject *parent) , m_needsSetup(true) , m_userTerminated(false) { - Q_ASSERT(!m_instance); - m_instance = this; - m_qemuStarterIcon.addFile(":/qt-maemo/images/qemu-run.png", iconSize); m_qemuStarterIcon.addFile(":/qt-maemo/images/qemu-stop.png", iconSize, QIcon::Normal, QIcon::On); @@ -117,11 +114,13 @@ QemuRuntimeManager::QemuRuntimeManager(QObject *parent) QemuRuntimeManager::~QemuRuntimeManager() { terminateRuntime(); + m_instance = 0; } -QemuRuntimeManager &QemuRuntimeManager::instance() +QemuRuntimeManager &QemuRuntimeManager::instance(QObject *parent) { - Q_ASSERT(m_instance); + if (m_instance == 0) + m_instance = new QemuRuntimeManager(parent); return *m_instance; } diff --git a/src/plugins/qt4projectmanager/qt-maemo/qemuruntimemanager.h b/src/plugins/qt4projectmanager/qt-maemo/qemuruntimemanager.h index 0054596b2e9..707745a8c9d 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/qemuruntimemanager.h +++ b/src/plugins/qt4projectmanager/qt-maemo/qemuruntimemanager.h @@ -71,10 +71,7 @@ class QemuRuntimeManager : public QObject Q_OBJECT public: - QemuRuntimeManager(QObject *parent = 0); - ~QemuRuntimeManager(); - - static QemuRuntimeManager& instance(); + static QemuRuntimeManager& instance(QObject *parent = 0); bool runtimeForQtVersion(int uniqueId, Runtime *rt) const; @@ -111,6 +108,9 @@ private slots: void qemuStatusChanged(QemuStatus status, const QString &error); private: + QemuRuntimeManager(QObject *parent); + ~QemuRuntimeManager(); + void setupRuntimes(); bool sessionHasMaemoTarget() const; diff --git a/src/plugins/qt4projectmanager/qt4projectmanagerplugin.cpp b/src/plugins/qt4projectmanager/qt4projectmanagerplugin.cpp index f79dec8c08c..6a1f08e01d9 100644 --- a/src/plugins/qt4projectmanager/qt4projectmanagerplugin.cpp +++ b/src/plugins/qt4projectmanager/qt4projectmanagerplugin.cpp @@ -153,7 +153,7 @@ bool Qt4ProjectManagerPlugin::initialize(const QStringList &arguments, QString * addAutoReleasedObject(new LinguistExternalEditor); addAutoReleasedObject(new S60Manager); - addAutoReleasedObject(m_maemoManager = new MaemoManager); + addAutoReleasedObject(new MaemoManager); new ProFileCacheManager(this); @@ -228,7 +228,6 @@ bool Qt4ProjectManagerPlugin::initialize(const QStringList &arguments, QString * void Qt4ProjectManagerPlugin::extensionsInitialized() { m_qt4ProjectManager->init(); - m_maemoManager->init(); // depends on the Qt4ProjectManager } void Qt4ProjectManagerPlugin::updateContextMenu(Project *project, diff --git a/src/plugins/qt4projectmanager/qt4projectmanagerplugin.h b/src/plugins/qt4projectmanager/qt4projectmanagerplugin.h index eec6477524e..b6697d6f177 100644 --- a/src/plugins/qt4projectmanager/qt4projectmanagerplugin.h +++ b/src/plugins/qt4projectmanager/qt4projectmanagerplugin.h @@ -56,7 +56,6 @@ class QMakeStepFactory; class MakeStepFactory; class EmbeddedPropertiesPage; class GettingStartedWelcomePage; -class MaemoManager; class Qt4ProjectManagerPlugin : public ExtensionSystem::IPlugin { @@ -86,7 +85,6 @@ private: ProjectExplorer::ProjectExplorerPlugin *m_projectExplorer; ProFileEditorFactory *m_proFileEditorFactory; Qt4Manager *m_qt4ProjectManager; - MaemoManager *m_maemoManager; int m_projectContext; -- GitLab