Refactoring: Move QtVersionManager instance() into the ProjectExplorer

And add a instance() method to it.
This commit is contained in:
dt
2009-04-22 16:51:38 +02:00
parent 8f738dfcc8
commit b6c05a334c
11 changed files with 52 additions and 45 deletions

View File

@@ -56,6 +56,7 @@
#include "session.h" #include "session.h"
#include "sessiondialog.h" #include "sessiondialog.h"
#include "buildparserfactory.h" #include "buildparserfactory.h"
#include "qtversionmanager.h"
#include <coreplugin/basemode.h> #include <coreplugin/basemode.h>
#include <coreplugin/coreconstants.h> #include <coreplugin/coreconstants.h>
@@ -194,6 +195,9 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er
connect(m_buildManager, SIGNAL(tasksChanged()), connect(m_buildManager, SIGNAL(tasksChanged()),
this, SLOT(updateTaskActions())); this, SLOT(updateTaskActions()));
m_versionManager = new QtVersionManager();
addAutoReleasedObject(m_versionManager);
addAutoReleasedObject(new CoreListenerCheckingForRunningBuild(m_buildManager)); addAutoReleasedObject(new CoreListenerCheckingForRunningBuild(m_buildManager));
m_outputPane = new OutputPane; m_outputPane = new OutputPane;
@@ -1905,4 +1909,9 @@ void ProjectExplorerPlugin::setSession(QAction *action)
m_session->loadSession(session); m_session->loadSession(session);
} }
QtVersionManager *ProjectExplorerPlugin::qtVersionManager() const
{
return m_versionManager;
}
Q_EXPORT_PLUGIN(ProjectExplorerPlugin) Q_EXPORT_PLUGIN(ProjectExplorerPlugin)

View File

@@ -64,6 +64,7 @@ class RunConfiguration;
class RunControl; class RunControl;
class SessionManager; class SessionManager;
class IRunConfigurationRunner; class IRunConfigurationRunner;
class QtVersionManager;
namespace Internal { namespace Internal {
class ApplicationOutput; class ApplicationOutput;
@@ -104,6 +105,8 @@ public:
void showContextMenu(const QPoint &globalPos, Node *node); void showContextMenu(const QPoint &globalPos, Node *node);
QtVersionManager *qtVersionManager() const;
//PluginInterface //PluginInterface
bool initialize(const QStringList &arguments, QString *error_message); bool initialize(const QStringList &arguments, QString *error_message);
void extensionsInitialized(); void extensionsInitialized();
@@ -246,6 +249,7 @@ private:
Node *m_currentNode; Node *m_currentNode;
BuildManager *m_buildManager; BuildManager *m_buildManager;
QtVersionManager *m_versionManager;
QList<Internal::ProjectFileFactory*> m_fileFactories; QList<Internal::ProjectFileFactory*> m_fileFactories;
QStringList m_profileMimeTypes; QStringList m_profileMimeTypes;

View File

@@ -32,12 +32,14 @@
#include "projectexplorerconstants.h" #include "projectexplorerconstants.h"
#include "ui_showbuildlog.h" #include "ui_showbuildlog.h"
#include "ui_qtversionmanager.h" #include "ui_qtversionmanager.h"
#include "cesdkhandler.h"
#include "toolchain.h"
#include "projectexplorer.h"
#include <coreplugin/icore.h> #include <coreplugin/icore.h>
#include <coreplugin/coreconstants.h> #include <coreplugin/coreconstants.h>
#include <extensionsystem/pluginmanager.h> #include <extensionsystem/pluginmanager.h>
#include <projectexplorer/cesdkhandler.h>
#include <projectexplorer/toolchain.h>
#include <help/helpplugin.h> #include <help/helpplugin.h>
#include <utils/qtcassert.h> #include <utils/qtcassert.h>
@@ -113,6 +115,11 @@ QtVersionManager::~QtVersionManager()
m_emptyVersion = 0; m_emptyVersion = 0;
} }
QtVersionManager::QtVersionManager *instance()
{
return ProjectExplorerPlugin::instance()->qtVersionManager();
}
void QtVersionManager::addVersion(QtVersion *version) void QtVersionManager::addVersion(QtVersion *version)
{ {
m_versions.append(version); m_versions.append(version);
@@ -162,8 +169,6 @@ QString QtVersionManager::trCategory() const
QWidget *QtVersionManager::createPage(QWidget *parent) QWidget *QtVersionManager::createPage(QWidget *parent)
{ {
if (m_widget)
delete m_widget;
m_widget = new QtDirWidget(parent, m_versions, m_defaultVersion); m_widget = new QtDirWidget(parent, m_versions, m_defaultVersion);
return m_widget; return m_widget;
} }
@@ -1354,8 +1359,7 @@ int QtVersion::uniqueId() const
int QtVersion::getUniqueId() int QtVersion::getUniqueId()
{ {
QtVersionManager *vm = ExtensionSystem::PluginManager::instance()->getObject<QtVersionManager>(); return QtVersionManager::instance()->getUniqueId();
return vm->getUniqueId();
} }
bool QtVersion::isValid() const bool QtVersion::isValid() const

View File

@@ -171,11 +171,12 @@ private slots:
class PROJECTEXPLORER_EXPORT QtVersionManager : public Core::IOptionsPage class PROJECTEXPLORER_EXPORT QtVersionManager : public Core::IOptionsPage
{ {
Q_OBJECT Q_OBJECT
public: public:
QtVersionManager(); QtVersionManager();
~QtVersionManager(); ~QtVersionManager();
static QtVersionManager *instance();
QString id() const; QString id() const;
QString trName() const; QString trName() const;
QString category() const; QString category() const;
@@ -210,7 +211,6 @@ signals:
void defaultQtVersionChanged(); void defaultQtVersionChanged();
void qtVersionsChanged(); void qtVersionsChanged();
private: private:
void addNewVersionsFromInstaller(); void addNewVersionsFromInstaller();
void updateSystemVersion(); void updateSystemVersion();
void updateDocumentation(); void updateDocumentation();
@@ -218,7 +218,7 @@ private:
static int indexOfVersionInList(const QtVersion * const version, const QList<QtVersion *> &list); static int indexOfVersionInList(const QtVersion * const version, const QList<QtVersion *> &list);
void updateUniqueIdToIndexMap(); void updateUniqueIdToIndexMap();
QPointer<QtDirWidget> m_widget; QtDirWidget *m_widget;
QtVersion *m_emptyVersion; QtVersion *m_emptyVersion;
int m_defaultVersion; int m_defaultVersion;

View File

@@ -34,6 +34,8 @@
#include "qmakestep.h" #include "qmakestep.h"
#include "makestep.h" #include "makestep.h"
#include <extensionsystem/pluginmanager.h>
#include <QtGui/QCheckBox> #include <QtGui/QCheckBox>
#include <QtGui/QHeaderView> #include <QtGui/QHeaderView>
#include <QtGui/QLabel> #include <QtGui/QLabel>
@@ -48,7 +50,7 @@ using ProjectExplorer::QtVersion;
ProjectLoadWizard::ProjectLoadWizard(Qt4Project *project, QWidget *parent, Qt::WindowFlags flags) ProjectLoadWizard::ProjectLoadWizard(Qt4Project *project, QWidget *parent, Qt::WindowFlags flags)
: QWizard(parent, flags), m_project(project), m_importVersion(0), m_temporaryVersion(false) : QWizard(parent, flags), m_project(project), m_importVersion(0), m_temporaryVersion(false)
{ {
ProjectExplorer::QtVersionManager * vm = project->qt4ProjectManager()->versionManager(); ProjectExplorer::QtVersionManager * vm = ProjectExplorer::QtVersionManager::instance();
QString directory = QFileInfo(project->file()->fileName()).absolutePath(); QString directory = QFileInfo(project->file()->fileName()).absolutePath();
QString importVersion = vm->findQtVersionFromMakefile(directory); QString importVersion = vm->findQtVersionFromMakefile(directory);
@@ -127,6 +129,7 @@ void ProjectLoadWizard::addBuildConfiguration(QString name, QtVersion *qtversion
void ProjectLoadWizard::done(int result) void ProjectLoadWizard::done(int result)
{ {
ProjectExplorer::QtVersionManager *vm = ProjectExplorer::QtVersionManager::instance();
QWizard::done(result); QWizard::done(result);
// This normally happens on showing the final page, but since we // This normally happens on showing the final page, but since we
// don't show it anymore, do it here // don't show it anymore, do it here
@@ -135,7 +138,7 @@ void ProjectLoadWizard::done(int result)
if (m_importVersion && importCheckbox->isChecked()) { if (m_importVersion && importCheckbox->isChecked()) {
// Importing // Importing
if (m_temporaryVersion) if (m_temporaryVersion)
m_project->qt4ProjectManager()->versionManager()->addVersion(m_importVersion); vm->addVersion(m_importVersion);
// Import the existing stuff // Import the existing stuff
// qDebug()<<"Creating m_buildconfiguration entry from imported stuff"; // qDebug()<<"Creating m_buildconfiguration entry from imported stuff";
// qDebug()<<((m_importBuildConfig& QtVersion::BuildAll)? "debug_and_release" : "")<<((m_importBuildConfig & QtVersion::DebugBuild)? "debug" : "release"); // qDebug()<<((m_importBuildConfig& QtVersion::BuildAll)? "debug_and_release" : "")<<((m_importBuildConfig & QtVersion::DebugBuild)? "debug" : "release");
@@ -158,7 +161,7 @@ void ProjectLoadWizard::done(int result)
delete m_importVersion; delete m_importVersion;
// Create default // Create default
bool buildAll = false; bool buildAll = false;
QtVersion *defaultVersion = m_project->qt4ProjectManager()->versionManager()->version(0); QtVersion *defaultVersion = vm->version(0);
if (defaultVersion && defaultVersion->isValid() && (defaultVersion->defaultBuildConfig() & QtVersion::BuildAll)) if (defaultVersion && defaultVersion->isValid() && (defaultVersion->defaultBuildConfig() & QtVersion::BuildAll))
buildAll = true; buildAll = true;
if (buildAll) { if (buildAll) {

View File

@@ -236,9 +236,11 @@ Qt4Project::Qt4Project(Qt4Manager *manager, const QString& fileName) :
{ {
m_manager->registerProject(this); m_manager->registerProject(this);
connect(qt4ProjectManager()->versionManager(), SIGNAL(defaultQtVersionChanged()), ProjectExplorer::QtVersionManager *vm = ProjectExplorer::QtVersionManager::instance();
connect(vm, SIGNAL(defaultQtVersionChanged()),
this, SLOT(defaultQtVersionChanged())); this, SLOT(defaultQtVersionChanged()));
connect(qt4ProjectManager()->versionManager(), SIGNAL(qtVersionsChanged()), connect(vm, SIGNAL(qtVersionsChanged()),
this, SLOT(qtVersionsChanged())); this, SLOT(qtVersionsChanged()));
m_updateCodeModelTimer.setSingleShot(true); m_updateCodeModelTimer.setSingleShot(true);
@@ -266,8 +268,9 @@ void Qt4Project::defaultQtVersionChanged()
void Qt4Project::qtVersionsChanged() void Qt4Project::qtVersionsChanged()
{ {
QtVersionManager *vm = QtVersionManager::instance();
foreach (QString bc, buildConfigurations()) { foreach (QString bc, buildConfigurations()) {
if (!qt4ProjectManager()->versionManager()->version(qtVersionId(bc))->isValid()) { if (!vm->version(qtVersionId(bc))->isValid()) {
setQtVersion(bc, 0); setQtVersion(bc, 0);
if (bc == activeBuildConfiguration()) if (bc == activeBuildConfiguration())
m_rootProjectNode->update(); m_rootProjectNode->update();
@@ -740,18 +743,19 @@ QString Qt4Project::qtDir(const QString &buildConfiguration) const
QtVersion *Qt4Project::qtVersion(const QString &buildConfiguration) const QtVersion *Qt4Project::qtVersion(const QString &buildConfiguration) const
{ {
return m_manager->versionManager()->version(qtVersionId(buildConfiguration)); return QtVersionManager::instance()->version(qtVersionId(buildConfiguration));
} }
int Qt4Project::qtVersionId(const QString &buildConfiguration) const int Qt4Project::qtVersionId(const QString &buildConfiguration) const
{ {
QtVersionManager *vm = QtVersionManager::instance();
if (debug) if (debug)
qDebug()<<"Looking for qtVersion ID of "<<buildConfiguration; qDebug()<<"Looking for qtVersion ID of "<<buildConfiguration;
int id = 0; int id = 0;
QVariant vid = value(buildConfiguration, "QtVersionId"); QVariant vid = value(buildConfiguration, "QtVersionId");
if (vid.isValid()) { if (vid.isValid()) {
id = vid.toInt(); id = vid.toInt();
if (m_manager->versionManager()->version(id)->isValid()) { if (vm->version(id)->isValid()) {
return id; return id;
} else { } else {
const_cast<Qt4Project *>(this)->setValue(buildConfiguration, "QtVersionId", 0); const_cast<Qt4Project *>(this)->setValue(buildConfiguration, "QtVersionId", 0);
@@ -763,7 +767,7 @@ int Qt4Project::qtVersionId(const QString &buildConfiguration) const
if (debug) if (debug)
qDebug()<<" Backward compatibility reading QtVersion"<<vname; qDebug()<<" Backward compatibility reading QtVersion"<<vname;
if (!vname.isEmpty()) { if (!vname.isEmpty()) {
const QList<QtVersion *> &versions = m_manager->versionManager()->versions(); const QList<QtVersion *> &versions = vm->versions();
foreach (const QtVersion * const version, versions) { foreach (const QtVersion * const version, versions) {
if (version->name() == vname) { if (version->name() == vname) {
if (debug) if (debug)

View File

@@ -39,6 +39,7 @@
#include <coreplugin/icore.h> #include <coreplugin/icore.h>
#include <coreplugin/mainwindow.h> #include <coreplugin/mainwindow.h>
#include <projectexplorer/projectexplorerconstants.h> #include <projectexplorer/projectexplorerconstants.h>
#include <extensionsystem/pluginmanager.h>
#include <QtGui/QFileDialog> #include <QtGui/QFileDialog>
@@ -83,7 +84,9 @@ Qt4ProjectConfigWidget::Qt4ProjectConfigWidget(Qt4Project *project)
connect(m_ui->manageQtVersionPushButtons, SIGNAL(clicked()), connect(m_ui->manageQtVersionPushButtons, SIGNAL(clicked()),
this, SLOT(manageQtVersions())); this, SLOT(manageQtVersions()));
connect(m_pro->qt4ProjectManager()->versionManager(), SIGNAL(qtVersionsChanged()), ProjectExplorer::QtVersionManager *vm = ProjectExplorer::QtVersionManager::instance();
connect(vm, SIGNAL(qtVersionsChanged()),
this, SLOT(setupQtVersionsComboBox())); this, SLOT(setupQtVersionsComboBox()));
} }
@@ -143,7 +146,7 @@ void Qt4ProjectConfigWidget::setupQtVersionsComboBox()
m_ui->invalidQtWarningLabel->setVisible(false); m_ui->invalidQtWarningLabel->setVisible(false);
} }
// Add Qt Versions to the combo box // Add Qt Versions to the combo box
QtVersionManager *vm = m_pro->qt4ProjectManager()->versionManager(); QtVersionManager *vm = QtVersionManager::instance();
const QList<QtVersion *> &versions = vm->versions(); const QList<QtVersion *> &versions = vm->versions();
for (int i = 0; i < versions.size(); ++i) { for (int i = 0; i < versions.size(); ++i) {
m_ui->qtVersionComboBox->addItem(versions.at(i)->name(), versions.at(i)->uniqueId()); m_ui->qtVersionComboBox->addItem(versions.at(i)->name(), versions.at(i)->uniqueId());
@@ -181,7 +184,8 @@ void Qt4ProjectConfigWidget::updateImportLabel()
{ {
m_ui->importLabel->setVisible(false); m_ui->importLabel->setVisible(false);
if (m_ui->shadowBuildCheckBox->isChecked()) { if (m_ui->shadowBuildCheckBox->isChecked()) {
QString qtPath = m_pro->qt4ProjectManager()->versionManager()->findQtVersionFromMakefile(m_ui->shadowBuildDirEdit->path()); ProjectExplorer::QtVersionManager *vm = ProjectExplorer::QtVersionManager::instance();
QString qtPath = vm->findQtVersionFromMakefile(m_ui->shadowBuildDirEdit->path());
if (!qtPath.isEmpty()) { if (!qtPath.isEmpty()) {
m_ui->importLabel->setVisible(true); m_ui->importLabel->setVisible(true);
} }
@@ -215,7 +219,7 @@ void Qt4ProjectConfigWidget::importLabelClicked()
if (m_ui->shadowBuildCheckBox->isChecked()) { if (m_ui->shadowBuildCheckBox->isChecked()) {
QString directory = m_ui->shadowBuildDirEdit->path(); QString directory = m_ui->shadowBuildDirEdit->path();
if (!directory.isEmpty()) { if (!directory.isEmpty()) {
QtVersionManager *vm = m_pro->qt4ProjectManager()->versionManager(); QtVersionManager *vm = QtVersionManager::instance();
QString qtPath = vm->findQtVersionFromMakefile(directory); QString qtPath = vm->findQtVersionFromMakefile(directory);
if (!qtPath.isEmpty()) { if (!qtPath.isEmpty()) {
QtVersion *version = vm->qtVersionForDirectory(qtPath); QtVersion *version = vm->qtVersionForDirectory(qtPath);
@@ -265,7 +269,8 @@ void Qt4ProjectConfigWidget::qtVersionComboBoxCurrentIndexChanged(const QString
} else { } else {
newQtVersion = m_ui->qtVersionComboBox->itemData(m_ui->qtVersionComboBox->currentIndex()).toInt(); newQtVersion = m_ui->qtVersionComboBox->itemData(m_ui->qtVersionComboBox->currentIndex()).toInt();
} }
bool isValid = m_pro->qt4ProjectManager()->versionManager()->version(newQtVersion)->isValid(); ProjectExplorer::QtVersionManager *vm = ProjectExplorer::QtVersionManager::instance();
bool isValid = vm->version(newQtVersion)->isValid();
m_ui->invalidQtWarningLabel->setVisible(!isValid); m_ui->invalidQtWarningLabel->setVisible(!isValid);
if (newQtVersion != m_pro->qtVersionId(m_buildConfiguration)) { if (newQtVersion != m_pro->qtVersionId(m_buildConfiguration)) {
m_pro->setQtVersion(m_buildConfiguration, newQtVersion); m_pro->setQtVersion(m_buildConfiguration, newQtVersion);

View File

@@ -189,11 +189,6 @@ ProjectExplorer::Project *Qt4Manager::contextProject() const
return m_contextProject; return m_contextProject;
} }
QtVersionManager *Qt4Manager::versionManager() const
{
return m_plugin->versionManager();
}
void Qt4Manager::runQMake() void Qt4Manager::runQMake()
{ {
runQMake(m_projectExplorer->currentProject()); runQMake(m_projectExplorer->currentProject());

View File

@@ -85,8 +85,6 @@ public:
void setContextProject(ProjectExplorer::Project *project); void setContextProject(ProjectExplorer::Project *project);
ProjectExplorer::Project *contextProject() const; ProjectExplorer::Project *contextProject() const;
ProjectExplorer::QtVersionManager *versionManager() const;
// Return the id string of a file // Return the id string of a file
static QString fileTypeId(ProjectExplorer::FileType type); static QString fileTypeId(ProjectExplorer::FileType type);

View File

@@ -71,9 +71,6 @@ Qt4ProjectManagerPlugin::~Qt4ProjectManagerPlugin()
//removeObject(m_embeddedPropertiesPage); //removeObject(m_embeddedPropertiesPage);
//delete m_embeddedPropertiesPage; //delete m_embeddedPropertiesPage;
removeObject(m_qtVersionManager);
delete m_qtVersionManager;
removeObject(m_proFileEditorFactory); removeObject(m_proFileEditorFactory);
delete m_proFileEditorFactory; delete m_proFileEditorFactory;
removeObject(m_qt4ProjectManager); removeObject(m_qt4ProjectManager);
@@ -125,9 +122,6 @@ bool Qt4ProjectManagerPlugin::initialize(const QStringList &arguments, QString *
addAutoReleasedObject(new QMakeStepFactory); addAutoReleasedObject(new QMakeStepFactory);
addAutoReleasedObject(new MakeStepFactory); addAutoReleasedObject(new MakeStepFactory);
m_qtVersionManager = new QtVersionManager;
addObject(m_qtVersionManager);
addAutoReleasedObject(new Qt4RunConfigurationFactory); addAutoReleasedObject(new Qt4RunConfigurationFactory);
addAutoReleasedObject(new Qt4RunConfigurationFactoryUser); addAutoReleasedObject(new Qt4RunConfigurationFactoryUser);
@@ -191,11 +185,6 @@ void Qt4ProjectManagerPlugin::updateContextMenu(Project *project,
} }
} }
QtVersionManager *Qt4ProjectManagerPlugin::versionManager() const
{
return m_qtVersionManager;
}
void Qt4ProjectManagerPlugin::currentProjectChanged() void Qt4ProjectManagerPlugin::currentProjectChanged()
{ {
m_runQMakeAction->setEnabled(!m_projectExplorer->buildManager()->isBuilding(m_projectExplorer->currentProject())); m_runQMakeAction->setEnabled(!m_projectExplorer->buildManager()->isBuilding(m_projectExplorer->currentProject()));

View File

@@ -62,8 +62,6 @@ public:
void extensionsInitialized(); void extensionsInitialized();
int projectContext() const { return m_projectContext; } int projectContext() const { return m_projectContext; }
ProjectExplorer::QtVersionManager *versionManager() const;
private slots: private slots:
void updateContextMenu(ProjectExplorer::Project *project, void updateContextMenu(ProjectExplorer::Project *project,
@@ -80,8 +78,6 @@ private:
ProjectExplorer::ProjectExplorerPlugin *m_projectExplorer; ProjectExplorer::ProjectExplorerPlugin *m_projectExplorer;
ProFileEditorFactory *m_proFileEditorFactory; ProFileEditorFactory *m_proFileEditorFactory;
Qt4Manager *m_qt4ProjectManager; Qt4Manager *m_qt4ProjectManager;
ProjectExplorer::QtVersionManager *m_qtVersionManager;
EmbeddedPropertiesPage *m_embeddedPropertiesPage;
int m_projectContext; int m_projectContext;