diff options
author | Tobias Hunger <tobias.hunger@nokia.com> | 2010-02-22 15:47:47 +0100 |
---|---|---|
committer | Tobias Hunger <tobias.hunger@nokia.com> | 2010-02-22 18:07:21 +0100 |
commit | d8016ef8aad0337069b2565cdf0b0004c19bce30 (patch) | |
tree | 9abcf9177e767f1e3813653e0898121b5d878615 | |
parent | b492c264faba030b1b234776cfbc5a1d844768c1 (diff) | |
download | qt-creator-d8016ef8aad0337069b2565cdf0b0004c19bce30.tar.gz |
Disable Project Mode if no projects are loaded
-rw-r--r-- | src/plugins/projectexplorer/projectexplorer.cpp | 26 | ||||
-rw-r--r-- | src/plugins/projectexplorer/projectwindow.cpp | 24 | ||||
-rw-r--r-- | src/plugins/projectexplorer/projectwindow.h | 1 |
3 files changed, 19 insertions, 32 deletions
diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp index 836f87e648..19589ac257 100644 --- a/src/plugins/projectexplorer/projectexplorer.cpp +++ b/src/plugins/projectexplorer/projectexplorer.cpp @@ -183,6 +183,8 @@ struct ProjectExplorerPluginPrivate { Internal::ProjectExplorerSettings m_projectExplorerSettings; Internal::ProjectWelcomePage *m_welcomePlugin; Internal::ProjectWelcomePageWidget *m_welcomePage; + + Core::BaseMode * m_projectsMode; }; ProjectExplorerPluginPrivate::ProjectExplorerPluginPrivate() : @@ -191,7 +193,8 @@ ProjectExplorerPluginPrivate::ProjectExplorerPluginPrivate() : m_currentProject(0), m_currentNode(0), m_delayedRunConfiguration(0), - m_debuggingRunControl(0) + m_debuggingRunControl(0), + m_projectsMode(0) { } @@ -263,14 +266,15 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er QList<int> pecontext; pecontext << core->uniqueIDManager()->uniqueIdentifier(Constants::C_PROJECTEXPLORER); - Core::BaseMode *mode = new Core::BaseMode; - mode->setDisplayName(tr("Projects")); - mode->setId(QLatin1String(Constants::MODE_SESSION)); - mode->setIcon(QIcon(QLatin1String(":/fancyactionbar/images/mode_Project.png"))); - mode->setPriority(Constants::P_MODE_SESSION); - mode->setWidget(d->m_proWindow); - mode->setContext(QList<int>() << pecontext); - addAutoReleasedObject(mode); + d->m_projectsMode = new Core::BaseMode; + d->m_projectsMode->setDisplayName(tr("Projects")); + d->m_projectsMode->setId(QLatin1String(Constants::MODE_SESSION)); + d->m_projectsMode->setIcon(QIcon(QLatin1String(":/fancyactionbar/images/mode_Project.png"))); + d->m_projectsMode->setPriority(Constants::P_MODE_SESSION); + d->m_projectsMode->setWidget(d->m_proWindow); + d->m_projectsMode->setContext(QList<int>() << pecontext); + d->m_projectsMode->setEnabled(session()->startupProject()); + addAutoReleasedObject(d->m_projectsMode); d->m_proWindow->layout()->addWidget(new Core::FindToolBarPlaceHolder(d->m_proWindow)); d->m_buildManager = new BuildManager(this); @@ -902,6 +906,7 @@ void ProjectExplorerPlugin::shutdown() { d->m_proWindow->shutdown(); // disconnect from session d->m_session->clear(); + d->m_projectsMode = 0; // d->m_proWindow->saveConfigChanges(); } @@ -1669,6 +1674,9 @@ void ProjectExplorerPlugin::startupProjectChanged() if (project == previousStartupProject) return; + if (d->m_projectsMode) + d->m_projectsMode->setEnabled(project); + if (previousStartupProject) { disconnect(previousStartupProject, SIGNAL(activeTargetChanged(ProjectExplorer::Target*)), this, SLOT(updateRunActions())); diff --git a/src/plugins/projectexplorer/projectwindow.cpp b/src/plugins/projectexplorer/projectwindow.cpp index e85d5a836c..d930acd531 100644 --- a/src/plugins/projectexplorer/projectwindow.cpp +++ b/src/plugins/projectexplorer/projectwindow.cpp @@ -232,24 +232,6 @@ ProjectWindow::ProjectWindow(QWidget *parent) m_centralWidget = new QStackedWidget(this); viewLayout->addWidget(m_centralWidget); - // no projects label: - m_noprojectLabel = new QWidget; - QVBoxLayout *noprojectLayout = new QVBoxLayout; - noprojectLayout->setMargin(0); - QLabel *label = new QLabel(m_noprojectLabel); - label->setText(tr("No project loaded.")); - { - QFont f = label->font(); - f.setPointSizeF(f.pointSizeF() * 1.4); - f.setBold(true); - label->setFont(f); - } - label->setMargin(10); - label->setAlignment(Qt::AlignTop); - noprojectLayout->addWidget(label); - noprojectLayout->addStretch(10); - m_centralWidget->addWidget(m_noprojectLabel); - // connects: connect(m_tabWidget, SIGNAL(currentIndexChanged(int,int)), this, SLOT(showProperties(int,int))); @@ -314,11 +296,9 @@ void ProjectWindow::saveStatus() void ProjectWindow::showProperties(int index, int subIndex) { - if (index < 0) { - m_centralWidget->setCurrentWidget(m_noprojectLabel); - removeCurrentWidget(); + if (index < 0 || index >= m_tabIndexToProject.count()) return; - } + Project *project = m_tabIndexToProject.at(index); // Set up custom panels again: diff --git a/src/plugins/projectexplorer/projectwindow.h b/src/plugins/projectexplorer/projectwindow.h index 73c9c0d357..b0bb52b185 100644 --- a/src/plugins/projectexplorer/projectwindow.h +++ b/src/plugins/projectexplorer/projectwindow.h @@ -97,7 +97,6 @@ private: void removeCurrentWidget(); DoubleTabWidget *m_tabWidget; - QWidget *m_noprojectLabel; QStackedWidget *m_centralWidget; QWidget *m_currentWidget; IPropertiesPanel *m_currentPanel; |