forked from qt-creator/qt-creator
Disable Project Mode if no projects are loaded
This commit is contained in:
@@ -183,6 +183,8 @@ struct ProjectExplorerPluginPrivate {
|
|||||||
Internal::ProjectExplorerSettings m_projectExplorerSettings;
|
Internal::ProjectExplorerSettings m_projectExplorerSettings;
|
||||||
Internal::ProjectWelcomePage *m_welcomePlugin;
|
Internal::ProjectWelcomePage *m_welcomePlugin;
|
||||||
Internal::ProjectWelcomePageWidget *m_welcomePage;
|
Internal::ProjectWelcomePageWidget *m_welcomePage;
|
||||||
|
|
||||||
|
Core::BaseMode * m_projectsMode;
|
||||||
};
|
};
|
||||||
|
|
||||||
ProjectExplorerPluginPrivate::ProjectExplorerPluginPrivate() :
|
ProjectExplorerPluginPrivate::ProjectExplorerPluginPrivate() :
|
||||||
@@ -191,7 +193,8 @@ ProjectExplorerPluginPrivate::ProjectExplorerPluginPrivate() :
|
|||||||
m_currentProject(0),
|
m_currentProject(0),
|
||||||
m_currentNode(0),
|
m_currentNode(0),
|
||||||
m_delayedRunConfiguration(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;
|
QList<int> pecontext;
|
||||||
pecontext << core->uniqueIDManager()->uniqueIdentifier(Constants::C_PROJECTEXPLORER);
|
pecontext << core->uniqueIDManager()->uniqueIdentifier(Constants::C_PROJECTEXPLORER);
|
||||||
|
|
||||||
Core::BaseMode *mode = new Core::BaseMode;
|
d->m_projectsMode = new Core::BaseMode;
|
||||||
mode->setDisplayName(tr("Projects"));
|
d->m_projectsMode->setDisplayName(tr("Projects"));
|
||||||
mode->setId(QLatin1String(Constants::MODE_SESSION));
|
d->m_projectsMode->setId(QLatin1String(Constants::MODE_SESSION));
|
||||||
mode->setIcon(QIcon(QLatin1String(":/fancyactionbar/images/mode_Project.png")));
|
d->m_projectsMode->setIcon(QIcon(QLatin1String(":/fancyactionbar/images/mode_Project.png")));
|
||||||
mode->setPriority(Constants::P_MODE_SESSION);
|
d->m_projectsMode->setPriority(Constants::P_MODE_SESSION);
|
||||||
mode->setWidget(d->m_proWindow);
|
d->m_projectsMode->setWidget(d->m_proWindow);
|
||||||
mode->setContext(QList<int>() << pecontext);
|
d->m_projectsMode->setContext(QList<int>() << pecontext);
|
||||||
addAutoReleasedObject(mode);
|
d->m_projectsMode->setEnabled(session()->startupProject());
|
||||||
|
addAutoReleasedObject(d->m_projectsMode);
|
||||||
d->m_proWindow->layout()->addWidget(new Core::FindToolBarPlaceHolder(d->m_proWindow));
|
d->m_proWindow->layout()->addWidget(new Core::FindToolBarPlaceHolder(d->m_proWindow));
|
||||||
|
|
||||||
d->m_buildManager = new BuildManager(this);
|
d->m_buildManager = new BuildManager(this);
|
||||||
@@ -902,6 +906,7 @@ void ProjectExplorerPlugin::shutdown()
|
|||||||
{
|
{
|
||||||
d->m_proWindow->shutdown(); // disconnect from session
|
d->m_proWindow->shutdown(); // disconnect from session
|
||||||
d->m_session->clear();
|
d->m_session->clear();
|
||||||
|
d->m_projectsMode = 0;
|
||||||
// d->m_proWindow->saveConfigChanges();
|
// d->m_proWindow->saveConfigChanges();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1669,6 +1674,9 @@ void ProjectExplorerPlugin::startupProjectChanged()
|
|||||||
if (project == previousStartupProject)
|
if (project == previousStartupProject)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if (d->m_projectsMode)
|
||||||
|
d->m_projectsMode->setEnabled(project);
|
||||||
|
|
||||||
if (previousStartupProject) {
|
if (previousStartupProject) {
|
||||||
disconnect(previousStartupProject, SIGNAL(activeTargetChanged(ProjectExplorer::Target*)),
|
disconnect(previousStartupProject, SIGNAL(activeTargetChanged(ProjectExplorer::Target*)),
|
||||||
this, SLOT(updateRunActions()));
|
this, SLOT(updateRunActions()));
|
||||||
|
|||||||
@@ -232,24 +232,6 @@ ProjectWindow::ProjectWindow(QWidget *parent)
|
|||||||
m_centralWidget = new QStackedWidget(this);
|
m_centralWidget = new QStackedWidget(this);
|
||||||
viewLayout->addWidget(m_centralWidget);
|
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:
|
// connects:
|
||||||
connect(m_tabWidget, SIGNAL(currentIndexChanged(int,int)),
|
connect(m_tabWidget, SIGNAL(currentIndexChanged(int,int)),
|
||||||
this, SLOT(showProperties(int,int)));
|
this, SLOT(showProperties(int,int)));
|
||||||
@@ -314,11 +296,9 @@ void ProjectWindow::saveStatus()
|
|||||||
|
|
||||||
void ProjectWindow::showProperties(int index, int subIndex)
|
void ProjectWindow::showProperties(int index, int subIndex)
|
||||||
{
|
{
|
||||||
if (index < 0) {
|
if (index < 0 || index >= m_tabIndexToProject.count())
|
||||||
m_centralWidget->setCurrentWidget(m_noprojectLabel);
|
|
||||||
removeCurrentWidget();
|
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
Project *project = m_tabIndexToProject.at(index);
|
Project *project = m_tabIndexToProject.at(index);
|
||||||
|
|
||||||
// Set up custom panels again:
|
// Set up custom panels again:
|
||||||
|
|||||||
@@ -97,7 +97,6 @@ private:
|
|||||||
void removeCurrentWidget();
|
void removeCurrentWidget();
|
||||||
|
|
||||||
DoubleTabWidget *m_tabWidget;
|
DoubleTabWidget *m_tabWidget;
|
||||||
QWidget *m_noprojectLabel;
|
|
||||||
QStackedWidget *m_centralWidget;
|
QStackedWidget *m_centralWidget;
|
||||||
QWidget *m_currentWidget;
|
QWidget *m_currentWidget;
|
||||||
IPropertiesPanel *m_currentPanel;
|
IPropertiesPanel *m_currentPanel;
|
||||||
|
|||||||
Reference in New Issue
Block a user