summaryrefslogtreecommitdiff
path: root/src/plugins/projectexplorer/projectwelcomepage.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/projectexplorer/projectwelcomepage.cpp')
-rw-r--r--src/plugins/projectexplorer/projectwelcomepage.cpp35
1 files changed, 25 insertions, 10 deletions
diff --git a/src/plugins/projectexplorer/projectwelcomepage.cpp b/src/plugins/projectexplorer/projectwelcomepage.cpp
index e24c7a22ca..30c08caedb 100644
--- a/src/plugins/projectexplorer/projectwelcomepage.cpp
+++ b/src/plugins/projectexplorer/projectwelcomepage.cpp
@@ -51,7 +51,8 @@ SessionModel::SessionModel(SessionManager *manager, QObject *parent)
QHash<int, QByteArray> roleNames;
roleNames[Qt::DisplayRole] = "sessionName";
roleNames[DefaultSessionRole] = "defaultSession";
- roleNames[CurrentSessionRole] = "currentSession";
+ roleNames[ActiveSessionRole] = "activeSession";
+ roleNames[LastSessionRole] = "lastSession";
setRoleNames(roleNames);
connect(manager, SIGNAL(sessionLoaded()), SLOT(resetSessions()));
}
@@ -63,18 +64,25 @@ int SessionModel::rowCount(const QModelIndex &) const
QVariant SessionModel::data(const QModelIndex &index, int role) const
{
- if (role == Qt::DisplayRole || role == DefaultSessionRole || role == CurrentSessionRole) {
+ if (role == Qt::DisplayRole || role == DefaultSessionRole ||
+ role == LastSessionRole || role == ActiveSessionRole) {
QString sessionName = m_manager->sessions().at(index.row());
if (role == Qt::DisplayRole)
return sessionName;
else if (role == DefaultSessionRole)
return m_manager->isDefaultSession(sessionName);
- else if (role == CurrentSessionRole)
- return sessionName == m_manager->currentSession();
+ else if (role == LastSessionRole)
+ return m_manager->lastSession() == sessionName;
+ else if (role == ActiveSessionRole)
+ return m_manager->activeSession() == sessionName;
}
return QVariant();
}
+bool SessionModel::isDefaultVirgin() const
+{
+ return m_manager->isDefaultVirgin();
+}
void SessionModel::resetSessions()
{
@@ -123,7 +131,8 @@ void ProjectModel::resetProjects()
///////////////////
-ProjectWelcomePage::ProjectWelcomePage()
+ProjectWelcomePage::ProjectWelcomePage() :
+ m_sessionModel(0), m_projectModel(0)
{
}
@@ -131,10 +140,13 @@ void ProjectWelcomePage::facilitateQml(QDeclarativeEngine *engine)
{
static const char feedGroupName[] = "Feeds";
- QDeclarativeContext *ctx = engine->rootContext();
ProjectExplorerPlugin *pePlugin = ProjectExplorer::ProjectExplorerPlugin::instance();
- ctx->setContextProperty("sessionList", new SessionModel(pePlugin->session(), this));
- ctx->setContextProperty("projectList", new ProjectModel(pePlugin, this));
+ m_sessionModel = new SessionModel(pePlugin->session(), this);
+ m_projectModel = new ProjectModel(pePlugin, this);
+
+ QDeclarativeContext *ctx = engine->rootContext();
+ ctx->setContextProperty("sessionList", m_sessionModel);
+ ctx->setContextProperty("projectList", m_projectModel);
Core::MultiFeedRssModel *rssModel = new Core::MultiFeedRssModel(this);
QSettings *settings = Core::ICore::instance()->settings();
if (settings->childGroups().contains(feedGroupName)) {
@@ -154,9 +166,12 @@ void ProjectWelcomePage::facilitateQml(QDeclarativeEngine *engine)
ctx->setContextProperty("projectWelcomePage", this);
}
-void ProjectWelcomePage::setWelcomePageData(const WelcomePageData &welcomePageData)
+void ProjectWelcomePage::reloadWelcomeScreenData()
{
- m_welcomePageData = welcomePageData;
+ if (m_sessionModel)
+ m_sessionModel->resetSessions();
+ if (m_projectModel)
+ m_projectModel->resetProjects();
}
} // namespace Internal