There is no dependency, so make the runtime manager an real singelton.

Reviewed-by: ck
This commit is contained in:
kh1
2010-05-25 13:43:16 +02:00
parent 070f4df485
commit 745345e347
6 changed files with 17 additions and 28 deletions

View File

@@ -44,6 +44,9 @@
#include <QtCore/QFile> #include <QtCore/QFile>
#include <QtCore/QTextStream> #include <QtCore/QTextStream>
using namespace ExtensionSystem;
using namespace ProjectExplorer;
namespace Qt4ProjectManager { namespace Qt4ProjectManager {
namespace Internal { namespace Internal {
@@ -59,10 +62,10 @@ MaemoManager::MaemoManager()
Q_ASSERT(!m_instance); Q_ASSERT(!m_instance);
m_instance = this; m_instance = this;
QemuRuntimeManager::instance(this);
MaemoDeviceConfigurations::instance(this); MaemoDeviceConfigurations::instance(this);
ExtensionSystem::PluginManager *pluginManager PluginManager *pluginManager = PluginManager::instance();
= ExtensionSystem::PluginManager::instance();
pluginManager->addObject(m_runControlFactory); pluginManager->addObject(m_runControlFactory);
pluginManager->addObject(m_runConfigurationFactory); pluginManager->addObject(m_runConfigurationFactory);
pluginManager->addObject(m_packageCreationFactory); pluginManager->addObject(m_packageCreationFactory);
@@ -71,8 +74,7 @@ MaemoManager::MaemoManager()
MaemoManager::~MaemoManager() MaemoManager::~MaemoManager()
{ {
ExtensionSystem::PluginManager *pluginManager PluginManager *pluginManager = PluginManager::instance();
= ExtensionSystem::PluginManager::instance();
pluginManager->removeObject(m_runControlFactory); pluginManager->removeObject(m_runControlFactory);
pluginManager->removeObject(m_runConfigurationFactory); pluginManager->removeObject(m_runConfigurationFactory);
pluginManager->removeObject(m_packageCreationFactory); pluginManager->removeObject(m_packageCreationFactory);
@@ -87,13 +89,7 @@ MaemoManager &MaemoManager::instance()
return *m_instance; return *m_instance;
} }
void MaemoManager::init() bool MaemoManager::isValidMaemoQtVersion(const QtVersion *version) const
{
m_qemuRuntimeManager = new QemuRuntimeManager(this);
}
bool
MaemoManager::isValidMaemoQtVersion(const Qt4ProjectManager::QtVersion *version) const
{ {
QString path = QDir::cleanPath(version->qmakeCommand()); QString path = QDir::cleanPath(version->qmakeCommand());
path = path.remove(QLatin1String("/bin/qmake" EXEC_SUFFIX)); path = path.remove(QLatin1String("/bin/qmake" EXEC_SUFFIX));
@@ -116,8 +112,7 @@ MaemoManager::isValidMaemoQtVersion(const Qt4ProjectManager::QtVersion *version)
return false; return false;
} }
ProjectExplorer::ToolChain* ToolChain* MaemoManager::maemoToolChain(const QtVersion *version) const
MaemoManager::maemoToolChain(const QtVersion *version) const
{ {
QString targetRoot = QDir::cleanPath(version->qmakeCommand()); QString targetRoot = QDir::cleanPath(version->qmakeCommand());
targetRoot.remove(QLatin1String("/bin/qmake" EXEC_SUFFIX)); targetRoot.remove(QLatin1String("/bin/qmake" EXEC_SUFFIX));

View File

@@ -56,8 +56,6 @@ public:
~MaemoManager(); ~MaemoManager();
static MaemoManager &instance(); static MaemoManager &instance();
void init();
bool isValidMaemoQtVersion(const Qt4ProjectManager::QtVersion *version) const; bool isValidMaemoQtVersion(const Qt4ProjectManager::QtVersion *version) const;
ToolChain *maemoToolChain(const Qt4ProjectManager::QtVersion *version) const; ToolChain *maemoToolChain(const Qt4ProjectManager::QtVersion *version) const;

View File

@@ -69,9 +69,6 @@ QemuRuntimeManager::QemuRuntimeManager(QObject *parent)
, m_needsSetup(true) , m_needsSetup(true)
, m_userTerminated(false) , 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-run.png", iconSize);
m_qemuStarterIcon.addFile(":/qt-maemo/images/qemu-stop.png", iconSize, m_qemuStarterIcon.addFile(":/qt-maemo/images/qemu-stop.png", iconSize,
QIcon::Normal, QIcon::On); QIcon::Normal, QIcon::On);
@@ -117,11 +114,13 @@ QemuRuntimeManager::QemuRuntimeManager(QObject *parent)
QemuRuntimeManager::~QemuRuntimeManager() QemuRuntimeManager::~QemuRuntimeManager()
{ {
terminateRuntime(); 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; return *m_instance;
} }

View File

@@ -71,10 +71,7 @@ class QemuRuntimeManager : public QObject
Q_OBJECT Q_OBJECT
public: public:
QemuRuntimeManager(QObject *parent = 0); static QemuRuntimeManager& instance(QObject *parent = 0);
~QemuRuntimeManager();
static QemuRuntimeManager& instance();
bool runtimeForQtVersion(int uniqueId, Runtime *rt) const; bool runtimeForQtVersion(int uniqueId, Runtime *rt) const;
@@ -111,6 +108,9 @@ private slots:
void qemuStatusChanged(QemuStatus status, const QString &error); void qemuStatusChanged(QemuStatus status, const QString &error);
private: private:
QemuRuntimeManager(QObject *parent);
~QemuRuntimeManager();
void setupRuntimes(); void setupRuntimes();
bool sessionHasMaemoTarget() const; bool sessionHasMaemoTarget() const;

View File

@@ -153,7 +153,7 @@ bool Qt4ProjectManagerPlugin::initialize(const QStringList &arguments, QString *
addAutoReleasedObject(new LinguistExternalEditor); addAutoReleasedObject(new LinguistExternalEditor);
addAutoReleasedObject(new S60Manager); addAutoReleasedObject(new S60Manager);
addAutoReleasedObject(m_maemoManager = new MaemoManager); addAutoReleasedObject(new MaemoManager);
new ProFileCacheManager(this); new ProFileCacheManager(this);
@@ -228,7 +228,6 @@ bool Qt4ProjectManagerPlugin::initialize(const QStringList &arguments, QString *
void Qt4ProjectManagerPlugin::extensionsInitialized() void Qt4ProjectManagerPlugin::extensionsInitialized()
{ {
m_qt4ProjectManager->init(); m_qt4ProjectManager->init();
m_maemoManager->init(); // depends on the Qt4ProjectManager
} }
void Qt4ProjectManagerPlugin::updateContextMenu(Project *project, void Qt4ProjectManagerPlugin::updateContextMenu(Project *project,

View File

@@ -56,7 +56,6 @@ class QMakeStepFactory;
class MakeStepFactory; class MakeStepFactory;
class EmbeddedPropertiesPage; class EmbeddedPropertiesPage;
class GettingStartedWelcomePage; class GettingStartedWelcomePage;
class MaemoManager;
class Qt4ProjectManagerPlugin : public ExtensionSystem::IPlugin class Qt4ProjectManagerPlugin : public ExtensionSystem::IPlugin
{ {
@@ -86,7 +85,6 @@ private:
ProjectExplorer::ProjectExplorerPlugin *m_projectExplorer; ProjectExplorer::ProjectExplorerPlugin *m_projectExplorer;
ProFileEditorFactory *m_proFileEditorFactory; ProFileEditorFactory *m_proFileEditorFactory;
Qt4Manager *m_qt4ProjectManager; Qt4Manager *m_qt4ProjectManager;
MaemoManager *m_maemoManager;
int m_projectContext; int m_projectContext;