forked from qt-creator/qt-creator
Show a no project loaded on the project pane if no project is loaded
Could be even nicer, but this works for now.
This commit is contained in:
@@ -662,15 +662,26 @@ public:
|
|||||||
///
|
///
|
||||||
|
|
||||||
ProjectWindow::ProjectWindow(QWidget *parent)
|
ProjectWindow::ProjectWindow(QWidget *parent)
|
||||||
: QWidget(parent), m_currentItemChanged(false)
|
: QWidget(parent)
|
||||||
{
|
{
|
||||||
m_projectExplorer = ProjectExplorerPlugin::instance();
|
ProjectExplorer::SessionManager *session = ProjectExplorerPlugin::instance()->session();
|
||||||
m_session = m_projectExplorer->session();
|
|
||||||
|
|
||||||
m_panelsWidget = new PanelsWidget(this);
|
m_panelsWidget = new PanelsWidget(this);
|
||||||
|
|
||||||
m_activeConfigurationWidget = new ActiveConfigurationWidget(m_panelsWidget);
|
m_activeConfigurationWidget = new ActiveConfigurationWidget(m_panelsWidget);
|
||||||
|
|
||||||
|
m_panelsWidget->addWidget(tr("Active Build and Run Configurations"), m_activeConfigurationWidget);
|
||||||
|
|
||||||
|
m_spacerBetween = new QWidget(this);
|
||||||
|
QVBoxLayout *vbox = new QVBoxLayout(m_spacerBetween);
|
||||||
|
vbox->setMargin(0);
|
||||||
|
m_spacerBetween->setLayout(vbox);
|
||||||
|
vbox->addSpacerItem(new QSpacerItem(10, 15, QSizePolicy::Fixed, QSizePolicy::Fixed));
|
||||||
|
vbox->addWidget(new OnePixelBlackLine(m_spacerBetween));
|
||||||
|
vbox->addSpacerItem(new QSpacerItem(10, 15, QSizePolicy::Fixed, QSizePolicy::Fixed));
|
||||||
|
|
||||||
|
m_panelsWidget->addWidget(m_spacerBetween);
|
||||||
|
|
||||||
m_projectChooser = new QWidget(m_panelsWidget);
|
m_projectChooser = new QWidget(m_panelsWidget);
|
||||||
QHBoxLayout *hbox = new QHBoxLayout(m_projectChooser);
|
QHBoxLayout *hbox = new QHBoxLayout(m_projectChooser);
|
||||||
hbox->setMargin(0);
|
hbox->setMargin(0);
|
||||||
@@ -687,18 +698,6 @@ ProjectWindow::ProjectWindow(QWidget *parent)
|
|||||||
label, SLOT(setProject(ProjectExplorer::Project*)));
|
label, SLOT(setProject(ProjectExplorer::Project*)));
|
||||||
hbox->addWidget(changeProject);
|
hbox->addWidget(changeProject);
|
||||||
|
|
||||||
m_panelsWidget->addWidget(tr("Active Build and Run Configurations"), m_activeConfigurationWidget);
|
|
||||||
|
|
||||||
m_spacerBetween = new QWidget(this);
|
|
||||||
QVBoxLayout *vbox = new QVBoxLayout(m_spacerBetween);
|
|
||||||
vbox->setMargin(0);
|
|
||||||
m_spacerBetween->setLayout(vbox);
|
|
||||||
vbox->addSpacerItem(new QSpacerItem(10, 15, QSizePolicy::Fixed, QSizePolicy::Fixed));
|
|
||||||
vbox->addWidget(new OnePixelBlackLine(m_spacerBetween));
|
|
||||||
vbox->addSpacerItem(new QSpacerItem(10, 15, QSizePolicy::Fixed, QSizePolicy::Fixed));
|
|
||||||
|
|
||||||
m_panelsWidget->addWidget(m_spacerBetween);
|
|
||||||
|
|
||||||
m_panelsWidget->addWidget(m_projectChooser);
|
m_panelsWidget->addWidget(m_projectChooser);
|
||||||
|
|
||||||
QVBoxLayout *topLevelLayout = new QVBoxLayout(this);
|
QVBoxLayout *topLevelLayout = new QVBoxLayout(this);
|
||||||
@@ -708,17 +707,52 @@ ProjectWindow::ProjectWindow(QWidget *parent)
|
|||||||
|
|
||||||
topLevelLayout->addWidget(m_panelsWidget);
|
topLevelLayout->addWidget(m_panelsWidget);
|
||||||
|
|
||||||
|
m_noprojectLabel = new QLabel(this);
|
||||||
|
m_noprojectLabel->setText(tr("No project loaded."));
|
||||||
|
{
|
||||||
|
QFont f = m_noprojectLabel->font();
|
||||||
|
f.setPointSizeF(f.pointSizeF() * 1.4);
|
||||||
|
f.setBold(true);
|
||||||
|
m_noprojectLabel->setFont(f);
|
||||||
|
}
|
||||||
|
m_noprojectLabel->setMargin(10);
|
||||||
|
m_noprojectLabel->setAlignment(Qt::AlignTop);
|
||||||
|
topLevelLayout->addWidget(m_noprojectLabel);
|
||||||
|
|
||||||
|
bool noProjects = session->projects().isEmpty();
|
||||||
|
m_panelsWidget->setVisible(!noProjects);
|
||||||
|
m_noprojectLabel->setVisible(noProjects);
|
||||||
|
|
||||||
connect(changeProject, SIGNAL(projectChanged(ProjectExplorer::Project*)),
|
connect(changeProject, SIGNAL(projectChanged(ProjectExplorer::Project*)),
|
||||||
this, SLOT(showProperties(ProjectExplorer::Project*)));
|
this, SLOT(showProperties(ProjectExplorer::Project*)));
|
||||||
|
|
||||||
connect(m_session, SIGNAL(sessionLoaded()), this, SLOT(restoreStatus()));
|
connect(session, SIGNAL(sessionLoaded()), this, SLOT(restoreStatus()));
|
||||||
connect(m_session, SIGNAL(aboutToSaveSession()), this, SLOT(saveStatus()));
|
connect(session, SIGNAL(aboutToSaveSession()), this, SLOT(saveStatus()));
|
||||||
|
|
||||||
|
connect(session, SIGNAL(projectAdded(ProjectExplorer::Project*)),
|
||||||
|
this, SLOT(projectAdded()));
|
||||||
|
connect(session, SIGNAL(projectRemoved(ProjectExplorer::Project*)),
|
||||||
|
this, SLOT(projectRemoved()));
|
||||||
}
|
}
|
||||||
|
|
||||||
ProjectWindow::~ProjectWindow()
|
ProjectWindow::~ProjectWindow()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ProjectWindow::projectAdded()
|
||||||
|
{
|
||||||
|
m_panelsWidget->setVisible(true);
|
||||||
|
m_noprojectLabel->setVisible(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
void ProjectWindow::projectRemoved()
|
||||||
|
{
|
||||||
|
if (ProjectExplorerPlugin::instance()->session()->projects().isEmpty()) {
|
||||||
|
m_panelsWidget->setVisible(false);
|
||||||
|
m_noprojectLabel->setVisible(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void ProjectWindow::restoreStatus()
|
void ProjectWindow::restoreStatus()
|
||||||
{
|
{
|
||||||
// TODO
|
// TODO
|
||||||
@@ -758,12 +792,3 @@ void ProjectWindow::showProperties(Project *project)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Project *ProjectWindow::findProject(const QString &path) const
|
|
||||||
{
|
|
||||||
QList<Project*> projects = m_session->projects();
|
|
||||||
foreach (Project* project, projects)
|
|
||||||
if (QFileInfo(project->file()->fileName()).filePath() == path)
|
|
||||||
return project;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -180,19 +180,17 @@ private slots:
|
|||||||
void showProperties(ProjectExplorer::Project *project);
|
void showProperties(ProjectExplorer::Project *project);
|
||||||
void restoreStatus();
|
void restoreStatus();
|
||||||
void saveStatus();
|
void saveStatus();
|
||||||
|
void projectAdded();
|
||||||
|
void projectRemoved();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void updateRunConfigurationsComboBox();
|
void updateRunConfigurationsComboBox();
|
||||||
SessionManager *m_session;
|
|
||||||
ProjectExplorerPlugin *m_projectExplorer;
|
|
||||||
|
|
||||||
ActiveConfigurationWidget *m_activeConfigurationWidget;
|
ActiveConfigurationWidget *m_activeConfigurationWidget;
|
||||||
QWidget *m_spacerBetween;
|
QWidget *m_spacerBetween;
|
||||||
QWidget *m_projectChooser;
|
QWidget *m_projectChooser;
|
||||||
|
QLabel *m_noprojectLabel;
|
||||||
PanelsWidget *m_panelsWidget;
|
PanelsWidget *m_panelsWidget;
|
||||||
|
|
||||||
Project *findProject(const QString &path) const;
|
|
||||||
bool m_currentItemChanged;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user