From 1738d08ffc593687da6c9722486c01cb01c90867 Mon Sep 17 00:00:00 2001 From: hjk Date: Tue, 12 Apr 2011 12:17:19 +0200 Subject: projectexplorer: move project{Context,Language} from IProjectManager to Project Reviewed-by: dt --- src/plugins/cmakeprojectmanager/cmakeproject.cpp | 3 +++ .../cmakeprojectmanager/cmakeprojectmanager.cpp | 19 ++++------------ .../cmakeprojectmanager/cmakeprojectmanager.h | 5 ----- .../genericprojectmanager/genericproject.cpp | 4 ++++ .../genericprojectmanager.cpp | 15 +------------ .../genericprojectmanager/genericprojectmanager.h | 6 ----- src/plugins/projectexplorer/iprojectmanager.h | 3 --- src/plugins/projectexplorer/project.cpp | 26 +++++++++++++++++++++- src/plugins/projectexplorer/project.h | 8 ++++++- src/plugins/projectexplorer/projectexplorer.cpp | 8 +++---- src/plugins/qmlprojectmanager/qmlproject.cpp | 4 ++++ .../qmlprojectmanager/qmlprojectmanager.cpp | 11 --------- src/plugins/qmlprojectmanager/qmlprojectmanager.h | 6 ----- src/plugins/qt4projectmanager/qt4project.cpp | 5 +++++ .../qt4projectmanager/qt4projectmanager.cpp | 10 --------- src/plugins/qt4projectmanager/qt4projectmanager.h | 4 ---- .../qt4projectmanager/qt4projectmanagerplugin.cpp | 12 +++++----- .../qt4projectmanager/qt4projectmanagerplugin.h | 2 -- 18 files changed, 63 insertions(+), 88 deletions(-) diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.cpp b/src/plugins/cmakeprojectmanager/cmakeproject.cpp index a882e5ebf9..a59b8d06ba 100644 --- a/src/plugins/cmakeprojectmanager/cmakeproject.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeproject.cpp @@ -99,6 +99,9 @@ CMakeProject::CMakeProject(CMakeManager *manager, const QString &fileName) m_rootNode(new CMakeProjectNode(m_fileName)), m_lastEditor(0) { + setProjectContext(Core::Context(CMakeProjectManager::Constants::PROJECTCONTEXT)); + setProjectLanguage(Core::Context(ProjectExplorer::Constants::LANG_CXX)); + m_file = new CMakeFile(this, fileName); connect(this, SIGNAL(addedTarget(ProjectExplorer::Target*)), diff --git a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp index 46946be0e4..8b6f0d28ee 100644 --- a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp @@ -63,9 +63,6 @@ using namespace CMakeProjectManager::Internal; CMakeManager::CMakeManager(CMakeSettingsPage *cmakeSettingsPage) : m_settingsPage(cmakeSettingsPage) { - m_projectContext = Core::Context(CMakeProjectManager::Constants::PROJECTCONTEXT); - m_projectLanguage = Core::Context(ProjectExplorer::Constants::LANG_CXX); - ProjectExplorer::ProjectExplorerPlugin *projectExplorer = ProjectExplorer::ProjectExplorerPlugin::instance(); connect(projectExplorer, SIGNAL(aboutToShowContextMenu(ProjectExplorer::Project*, ProjectExplorer::Node*)), this, SLOT(updateContextMenu(ProjectExplorer::Project*, ProjectExplorer::Node*))); @@ -79,14 +76,16 @@ CMakeManager::CMakeManager(CMakeSettingsPage *cmakeSettingsPage) Core::ActionContainer *msubproject = am->actionContainer(ProjectExplorer::Constants::M_SUBPROJECTCONTEXT); + const Core::Context projectContext(CMakeProjectManager::Constants::PROJECTCONTEXT); + m_runCMakeAction = new QAction(QIcon(), tr("Run CMake"), this); - Core::Command *command = am->registerAction(m_runCMakeAction, Constants::RUNCMAKE, m_projectContext); + Core::Command *command = am->registerAction(m_runCMakeAction, Constants::RUNCMAKE, projectContext); command->setAttribute(Core::Command::CA_Hide); mbuild->addAction(command, ProjectExplorer::Constants::G_BUILD_PROJECT); connect(m_runCMakeAction, SIGNAL(triggered()), this, SLOT(runCMake())); m_runCMakeActionContextMenu = new QAction(QIcon(), tr("Run CMake"), this); - command = am->registerAction(m_runCMakeActionContextMenu, Constants::RUNCMAKECONTEXTMENU, m_projectContext); + command = am->registerAction(m_runCMakeActionContextMenu, Constants::RUNCMAKECONTEXTMENU, projectContext); command->setAttribute(Core::Command::CA_Hide); mproject->addAction(command, ProjectExplorer::Constants::G_PROJECT_BUILD); msubproject->addAction(command, ProjectExplorer::Constants::G_PROJECT_BUILD); @@ -133,16 +132,6 @@ void CMakeManager::runCMake(ProjectExplorer::Project *project) } } -Core::Context CMakeManager::projectContext() const -{ - return m_projectContext; -} - -Core::Context CMakeManager::projectLanguage() const -{ - return m_projectLanguage; -} - ProjectExplorer::Project *CMakeManager::openProject(const QString &fileName) { // TODO check whether this project is already opened diff --git a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.h b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.h index 9b1919491d..1f83d6782d 100644 --- a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.h +++ b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.h @@ -66,9 +66,6 @@ class CMakeManager : public ProjectExplorer::IProjectManager public: CMakeManager(CMakeSettingsPage *cmakeSettingsPage); - virtual Core::Context projectContext() const; - virtual Core::Context projectLanguage() const; - virtual ProjectExplorer::Project *openProject(const QString &fileName); virtual QString mimeType() const; @@ -95,8 +92,6 @@ private: void runCMake(ProjectExplorer::Project *project); static QString qtVersionForQMake(const QString &qmakePath); static QPair findQtDir(const Utils::Environment &env); - Core::Context m_projectContext; - Core::Context m_projectLanguage; CMakeSettingsPage *m_settingsPage; QAction *m_runCMakeAction; QAction *m_runCMakeActionContextMenu; diff --git a/src/plugins/genericprojectmanager/genericproject.cpp b/src/plugins/genericprojectmanager/genericproject.cpp index fc7d516aad..b4e5b758e5 100644 --- a/src/plugins/genericprojectmanager/genericproject.cpp +++ b/src/plugins/genericprojectmanager/genericproject.cpp @@ -47,6 +47,7 @@ #include #include #include +#include #include #include @@ -72,6 +73,9 @@ GenericProject::GenericProject(Manager *manager, const QString &fileName) m_fileName(fileName), m_toolChain(0) { + setProjectContext(Core::Context(GenericProjectManager::Constants::PROJECTCONTEXT)); + setProjectLanguage(Core::Context(ProjectExplorer::Constants::LANG_CXX)); + QFileInfo fileInfo(m_fileName); QDir dir = fileInfo.dir(); diff --git a/src/plugins/genericprojectmanager/genericprojectmanager.cpp b/src/plugins/genericprojectmanager/genericprojectmanager.cpp index bf4d03f0bf..b043e26a39 100644 --- a/src/plugins/genericprojectmanager/genericprojectmanager.cpp +++ b/src/plugins/genericprojectmanager/genericprojectmanager.cpp @@ -46,20 +46,7 @@ using namespace GenericProjectManager::Internal; Manager::Manager() -{ - m_projectContext = Core::Context(GenericProjectManager::Constants::PROJECTCONTEXT); - m_projectLanguage = Core::Context(ProjectExplorer::Constants::LANG_CXX); -} - -Core::Context Manager::projectContext() const -{ - return m_projectContext; -} - -Core::Context Manager::projectLanguage() const -{ - return m_projectLanguage; -} +{ } QString Manager::mimeType() const { diff --git a/src/plugins/genericprojectmanager/genericprojectmanager.h b/src/plugins/genericprojectmanager/genericprojectmanager.h index 729aa6b49a..1379ad4113 100644 --- a/src/plugins/genericprojectmanager/genericprojectmanager.h +++ b/src/plugins/genericprojectmanager/genericprojectmanager.h @@ -35,7 +35,6 @@ #define GENERICPROJECTMANAGER_H #include -#include namespace GenericProjectManager { namespace Internal { @@ -49,9 +48,6 @@ class Manager : public ProjectExplorer::IProjectManager public: Manager(); - virtual Core::Context projectContext() const; - virtual Core::Context projectLanguage() const; - virtual QString mimeType() const; virtual ProjectExplorer::Project *openProject(const QString &fileName); @@ -61,8 +57,6 @@ public: void unregisterProject(GenericProject *project); private: - Core::Context m_projectContext; - Core::Context m_projectLanguage; QList m_projects; }; diff --git a/src/plugins/projectexplorer/iprojectmanager.h b/src/plugins/projectexplorer/iprojectmanager.h index b4f720de5b..b3f480e770 100644 --- a/src/plugins/projectexplorer/iprojectmanager.h +++ b/src/plugins/projectexplorer/iprojectmanager.h @@ -53,9 +53,6 @@ class PROJECTEXPLORER_EXPORT IProjectManager public: IProjectManager() {} - virtual Core::Context projectContext() const = 0; //TODO move into project - virtual Core::Context projectLanguage() const = 0; //TODO move into project - virtual QString mimeType() const = 0; virtual Project *openProject(const QString &fileName) = 0; }; diff --git a/src/plugins/projectexplorer/project.cpp b/src/plugins/projectexplorer/project.cpp index f3a9e2a84e..e15b67e313 100644 --- a/src/plugins/projectexplorer/project.cpp +++ b/src/plugins/projectexplorer/project.cpp @@ -42,6 +42,7 @@ #include "userfileaccessor.h" #include +#include #include #include #include @@ -60,12 +61,15 @@ namespace ProjectExplorer { // Project // ------------------------------------------------------------------------- -class ProjectPrivate { +class ProjectPrivate +{ public: ProjectPrivate(); QList m_targets; Target *m_activeTarget; EditorConfiguration *m_editorConfiguration; + Core::Context m_projectContext; + Core::Context m_projectLanguage; }; ProjectPrivate::ProjectPrivate() : @@ -301,4 +305,24 @@ QString Project::generatedUiHeader(const QString & /* formFile */) const return QString(); } +void Project::setProjectContext(Core::Context context) +{ + d->m_projectContext = context; +} + +void Project::setProjectLanguage(Core::Context language) +{ + d->m_projectLanguage = language; +} + +Core::Context Project::projectContext() const +{ + return d->m_projectContext; +} + +Core::Context Project::projectLanguage() const +{ + return d->m_projectLanguage; +} + } // namespace ProjectExplorer diff --git a/src/plugins/projectexplorer/project.h b/src/plugins/projectexplorer/project.h index 9823e2e3e5..fc3b3c8502 100644 --- a/src/plugins/projectexplorer/project.h +++ b/src/plugins/projectexplorer/project.h @@ -42,6 +42,7 @@ namespace Core { class IFile; +class Context; } namespace ProjectExplorer { @@ -51,7 +52,6 @@ class IProjectManager; class EditorConfiguration; class ProjectNode; class Target; -class ITargetFactory; class ProjectPrivate; class PROJECTEXPLORER_EXPORT Project @@ -119,6 +119,9 @@ public: QString projectDirectory() const; static QString projectDirectory(const QString &proFile); + virtual Core::Context projectContext() const; + virtual Core::Context projectLanguage() const; + signals: void fileListChanged(); @@ -145,6 +148,9 @@ protected: // Note: Do not forget to call your base class' fromMap method! virtual bool fromMap(const QVariantMap &map); + virtual void setProjectContext(Core::Context context); + virtual void setProjectLanguage(Core::Context language); + private slots: void changeEnvironment(); void changeBuildConfigurationEnabled(); diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp index 20c269128e..6c923a2cef 100644 --- a/src/plugins/projectexplorer/projectexplorer.cpp +++ b/src/plugins/projectexplorer/projectexplorer.cpp @@ -1502,12 +1502,12 @@ void ProjectExplorerPlugin::setCurrent(Project *project, QString filePath, Node Core::Context newContext; if (d->m_currentProject) { - oldContext.add(d->m_currentProject->projectManager()->projectContext()); - oldContext.add(d->m_currentProject->projectManager()->projectLanguage()); + oldContext.add(d->m_currentProject->projectContext()); + oldContext.add(d->m_currentProject->projectLanguage()); } if (project) { - newContext.add(project->projectManager()->projectContext()); - newContext.add(project->projectManager()->projectLanguage()); + newContext.add(project->projectContext()); + newContext.add(project->projectLanguage()); } core->updateAdditionalContexts(oldContext, newContext); diff --git a/src/plugins/qmlprojectmanager/qmlproject.cpp b/src/plugins/qmlprojectmanager/qmlproject.cpp index ac49825e60..264ff05e9c 100644 --- a/src/plugins/qmlprojectmanager/qmlproject.cpp +++ b/src/plugins/qmlprojectmanager/qmlproject.cpp @@ -37,6 +37,7 @@ #include "fileformat/qmlprojectitem.h" #include "qmlprojectrunconfiguration.h" #include "qmlprojecttarget.h" +#include "qmlprojectconstants.h" #include #include @@ -58,6 +59,9 @@ QmlProject::QmlProject(Internal::Manager *manager, const QString &fileName) m_modelManager(ExtensionSystem::PluginManager::instance()->getObject()), m_fileWatcher(new ProjectExplorer::FileWatcher(this)) { + setProjectContext(Core::Context(QmlProjectManager::Constants::PROJECTCONTEXT)); + setProjectLanguage(Core::Context(QmlProjectManager::Constants::LANG_QML)); + QFileInfo fileInfo(m_fileName); m_projectName = fileInfo.completeBaseName(); diff --git a/src/plugins/qmlprojectmanager/qmlprojectmanager.cpp b/src/plugins/qmlprojectmanager/qmlprojectmanager.cpp index 38d35629cb..775a052ec9 100644 --- a/src/plugins/qmlprojectmanager/qmlprojectmanager.cpp +++ b/src/plugins/qmlprojectmanager/qmlprojectmanager.cpp @@ -49,19 +49,8 @@ namespace Internal { Manager::Manager() { - m_projectContext = Core::Context(QmlProjectManager::Constants::PROJECTCONTEXT); - m_projectLanguage = Core::Context(QmlProjectManager::Constants::LANG_QML); } -Manager::~Manager() -{ } - -Core::Context Manager::projectContext() const -{ return m_projectContext; } - -Core::Context Manager::projectLanguage() const -{ return m_projectLanguage; } - QString Manager::mimeType() const { return QLatin1String(Constants::QMLMIMETYPE); } diff --git a/src/plugins/qmlprojectmanager/qmlprojectmanager.h b/src/plugins/qmlprojectmanager/qmlprojectmanager.h index 45891f8ffc..a5fd26b9ce 100644 --- a/src/plugins/qmlprojectmanager/qmlprojectmanager.h +++ b/src/plugins/qmlprojectmanager/qmlprojectmanager.h @@ -49,10 +49,6 @@ class Manager: public ProjectExplorer::IProjectManager public: Manager(); - virtual ~Manager(); - - virtual Core::Context projectContext() const; - virtual Core::Context projectLanguage() const; virtual QString mimeType() const; virtual ProjectExplorer::Project *openProject(const QString &fileName); @@ -63,8 +59,6 @@ public: void unregisterProject(QmlProject *project); private: - Core::Context m_projectContext; - Core::Context m_projectLanguage; QList m_projects; }; diff --git a/src/plugins/qt4projectmanager/qt4project.cpp b/src/plugins/qt4projectmanager/qt4project.cpp index a11dde4902..0dc8d390ad 100644 --- a/src/plugins/qt4projectmanager/qt4project.cpp +++ b/src/plugins/qt4projectmanager/qt4project.cpp @@ -46,6 +46,7 @@ #include "qmldumptool.h" #include +#include #include #include #include @@ -57,6 +58,7 @@ #include #include #include +#include #include #include @@ -261,6 +263,9 @@ Qt4Project::Qt4Project(Qt4Manager *manager, const QString& fileName) : m_asyncUpdateState(NoState), m_cancelEvaluate(false) { + setProjectContext(Core::Context(Qt4ProjectManager::Constants::PROJECT_ID)); + setProjectLanguage(Core::Context(ProjectExplorer::Constants::LANG_CXX)); + m_asyncUpdateTimer.setSingleShot(true); m_asyncUpdateTimer.setInterval(3000); connect(&m_asyncUpdateTimer, SIGNAL(timeout()), this, SLOT(asyncUpdate())); diff --git a/src/plugins/qt4projectmanager/qt4projectmanager.cpp b/src/plugins/qt4projectmanager/qt4projectmanager.cpp index af50c07f71..88b108e2f7 100644 --- a/src/plugins/qt4projectmanager/qt4projectmanager.cpp +++ b/src/plugins/qt4projectmanager/qt4projectmanager.cpp @@ -203,16 +203,6 @@ void Qt4Manager::uiEditorContentsChanged() m_dirty = true; } -Core::Context Qt4Manager::projectContext() const -{ - return m_plugin->projectContext(); -} - -Core::Context Qt4Manager::projectLanguage() const -{ - return Core::Context(ProjectExplorer::Constants::LANG_CXX); -} - QString Qt4Manager::mimeType() const { return QLatin1String(Qt4ProjectManager::Constants::PROFILE_MIMETYPE); diff --git a/src/plugins/qt4projectmanager/qt4projectmanager.h b/src/plugins/qt4projectmanager/qt4projectmanager.h index 28a99547e8..d77b44f321 100644 --- a/src/plugins/qt4projectmanager/qt4projectmanager.h +++ b/src/plugins/qt4projectmanager/qt4projectmanager.h @@ -78,10 +78,6 @@ public: ProjectExplorer::ProjectExplorerPlugin *projectExplorer() const; - // ProjectExplorer::IProjectManager - Core::Context projectContext() const; - Core::Context projectLanguage() const; - virtual QString mimeType() const; ProjectExplorer::Project *openProject(const QString &fileName); diff --git a/src/plugins/qt4projectmanager/qt4projectmanagerplugin.cpp b/src/plugins/qt4projectmanager/qt4projectmanagerplugin.cpp index a4913f82d4..90ab088463 100644 --- a/src/plugins/qt4projectmanager/qt4projectmanagerplugin.cpp +++ b/src/plugins/qt4projectmanager/qt4projectmanagerplugin.cpp @@ -108,7 +108,7 @@ Qt4ProjectManagerPlugin::~Qt4ProjectManagerPlugin() bool Qt4ProjectManagerPlugin::initialize(const QStringList &arguments, QString *errorMessage) { Q_UNUSED(arguments) - m_projectContext = Core::Context(Qt4ProjectManager::Constants::PROJECT_ID); + const Core::Context projectContext(Qt4ProjectManager::Constants::PROJECT_ID); ProFileParser::initialize(); ProFileEvaluator::initialize(); @@ -199,13 +199,13 @@ bool Qt4ProjectManagerPlugin::initialize(const QStringList &arguments, QString * QIcon qmakeIcon(QLatin1String(":/qt4projectmanager/images/run_qmake.png")); qmakeIcon.addFile(QLatin1String(":/qt4projectmanager/images/run_qmake_small.png")); m_runQMakeAction = new QAction(qmakeIcon, tr("Run qmake"), this); - command = am->registerAction(m_runQMakeAction, Constants::RUNQMAKE, m_projectContext); + command = am->registerAction(m_runQMakeAction, Constants::RUNQMAKE, projectContext); command->setAttribute(Core::Command::CA_Hide); mbuild->addAction(command, ProjectExplorer::Constants::G_BUILD_PROJECT); connect(m_runQMakeAction, SIGNAL(triggered()), m_qt4ProjectManager, SLOT(runQMake())); m_runQMakeActionContextMenu = new QAction(qmakeIcon, tr("Run qmake"), this); - command = am->registerAction(m_runQMakeActionContextMenu, Constants::RUNQMAKECONTEXTMENU, m_projectContext); + command = am->registerAction(m_runQMakeActionContextMenu, Constants::RUNQMAKECONTEXTMENU, projectContext); command->setAttribute(Core::Command::CA_Hide); mproject->addAction(command, ProjectExplorer::Constants::G_PROJECT_BUILD); msubproject->addAction(command, ProjectExplorer::Constants::G_PROJECT_BUILD); @@ -214,7 +214,7 @@ bool Qt4ProjectManagerPlugin::initialize(const QStringList &arguments, QString * QIcon buildIcon(ProjectExplorer::Constants::ICON_BUILD); buildIcon.addFile(ProjectExplorer::Constants::ICON_BUILD_SMALL); m_buildSubProjectContextMenu = new QAction(buildIcon, tr("Build"), this); - command = am->registerAction(m_buildSubProjectContextMenu, Constants::BUILDSUBDIR, m_projectContext); + command = am->registerAction(m_buildSubProjectContextMenu, Constants::BUILDSUBDIR, projectContext); command->setAttribute(Core::Command::CA_Hide); msubproject->addAction(command, ProjectExplorer::Constants::G_PROJECT_BUILD); connect(m_buildSubProjectContextMenu, SIGNAL(triggered()), m_qt4ProjectManager, SLOT(buildSubDirContextMenu())); @@ -222,7 +222,7 @@ bool Qt4ProjectManagerPlugin::initialize(const QStringList &arguments, QString * QIcon rebuildIcon(ProjectExplorer::Constants::ICON_REBUILD); rebuildIcon.addFile(ProjectExplorer::Constants::ICON_REBUILD_SMALL); m_rebuildSubProjectContextMenu = new QAction(rebuildIcon, tr("Rebuild"), this); - command = am->registerAction(m_rebuildSubProjectContextMenu, Constants::REBUILDSUBDIR, m_projectContext); + command = am->registerAction(m_rebuildSubProjectContextMenu, Constants::REBUILDSUBDIR, projectContext); command->setAttribute(Core::Command::CA_Hide); msubproject->addAction(command, ProjectExplorer::Constants::G_PROJECT_BUILD); connect(m_rebuildSubProjectContextMenu, SIGNAL(triggered()), m_qt4ProjectManager, SLOT(rebuildSubDirContextMenu())); @@ -230,7 +230,7 @@ bool Qt4ProjectManagerPlugin::initialize(const QStringList &arguments, QString * QIcon cleanIcon(ProjectExplorer::Constants::ICON_CLEAN); cleanIcon.addFile(ProjectExplorer::Constants::ICON_CLEAN_SMALL); m_cleanSubProjectContextMenu = new QAction(cleanIcon, tr("Clean"), this); - command = am->registerAction(m_cleanSubProjectContextMenu, Constants::CLEANSUBDIR, m_projectContext); + command = am->registerAction(m_cleanSubProjectContextMenu, Constants::CLEANSUBDIR, projectContext); command->setAttribute(Core::Command::CA_Hide); msubproject->addAction(command, ProjectExplorer::Constants::G_PROJECT_BUILD); connect(m_cleanSubProjectContextMenu, SIGNAL(triggered()), m_qt4ProjectManager, SLOT(cleanSubDirContextMenu())); diff --git a/src/plugins/qt4projectmanager/qt4projectmanagerplugin.h b/src/plugins/qt4projectmanager/qt4projectmanagerplugin.h index e45cc356a8..40d4252142 100644 --- a/src/plugins/qt4projectmanager/qt4projectmanagerplugin.h +++ b/src/plugins/qt4projectmanager/qt4projectmanagerplugin.h @@ -65,8 +65,6 @@ public: bool initialize(const QStringList &arguments, QString *error_message); void extensionsInitialized(); - Core::Context projectContext() const { return m_projectContext; } - private slots: void updateContextMenu(ProjectExplorer::Project *project, ProjectExplorer::Node *node); -- cgit v1.2.1