summaryrefslogtreecommitdiff
path: root/src/plugins/projectexplorer
diff options
context:
space:
mode:
authorTobias Hunger <tobias.hunger@nokia.com>2010-02-22 15:47:47 +0100
committerTobias Hunger <tobias.hunger@nokia.com>2010-02-22 18:07:21 +0100
commitd8016ef8aad0337069b2565cdf0b0004c19bce30 (patch)
tree9abcf9177e767f1e3813653e0898121b5d878615 /src/plugins/projectexplorer
parentb492c264faba030b1b234776cfbc5a1d844768c1 (diff)
downloadqt-creator-d8016ef8aad0337069b2565cdf0b0004c19bce30.tar.gz
Disable Project Mode if no projects are loaded
Diffstat (limited to 'src/plugins/projectexplorer')
-rw-r--r--src/plugins/projectexplorer/projectexplorer.cpp26
-rw-r--r--src/plugins/projectexplorer/projectwindow.cpp24
-rw-r--r--src/plugins/projectexplorer/projectwindow.h1
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;