forked from qt-creator/qt-creator
Update Project's displayName in GUI if it changes after initial load.
Change-Id: I94386102609772897c93a26ce97acb21d155bdf6 Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
This commit is contained in:
committed by
Daniel Teske
parent
60ecbc3443
commit
06010713e2
@@ -213,6 +213,8 @@ ProjectListWidget::ProjectListWidget(SessionManager *sessionManager, QWidget *pa
|
|||||||
this, SLOT(removeProject(ProjectExplorer::Project*)));
|
this, SLOT(removeProject(ProjectExplorer::Project*)));
|
||||||
connect(m_sessionManager, SIGNAL(startupProjectChanged(ProjectExplorer::Project*)),
|
connect(m_sessionManager, SIGNAL(startupProjectChanged(ProjectExplorer::Project*)),
|
||||||
this, SLOT(changeStartupProject(ProjectExplorer::Project*)));
|
this, SLOT(changeStartupProject(ProjectExplorer::Project*)));
|
||||||
|
connect(m_sessionManager, SIGNAL(projectDisplayNameChanged(ProjectExplorer::Project*)),
|
||||||
|
this, SLOT(projectDisplayNameChanged(ProjectExplorer::Project*)));
|
||||||
connect(this, SIGNAL(currentRowChanged(int)),
|
connect(this, SIGNAL(currentRowChanged(int)),
|
||||||
this, SLOT(setProject(int)));
|
this, SLOT(setProject(int)));
|
||||||
}
|
}
|
||||||
@@ -294,6 +296,45 @@ void ProjectListWidget::removeProject(Project *project)
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ProjectListWidget::projectDisplayNameChanged(Project *project)
|
||||||
|
{
|
||||||
|
m_ignoreIndexChange = true;
|
||||||
|
|
||||||
|
int oldPos = 0;
|
||||||
|
bool useFullName = false;
|
||||||
|
for (int i = 0; i < count(); ++i) {
|
||||||
|
Project *p = item(i)->data(Qt::UserRole).value<Project*>();
|
||||||
|
if (p == project) {
|
||||||
|
oldPos = i;
|
||||||
|
} else if (p->displayName() == project->displayName()) {
|
||||||
|
useFullName = true;
|
||||||
|
item(i)->setText(fullName(p));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool isCurrentItem = (oldPos == currentRow());
|
||||||
|
QListWidgetItem *projectItem = takeItem(oldPos);
|
||||||
|
|
||||||
|
QString sortName = fullName(project);
|
||||||
|
int pos = count();
|
||||||
|
for (int i = 0; i < count(); ++i) {
|
||||||
|
Project *p = item(i)->data(Qt::UserRole).value<Project*>();
|
||||||
|
QString itemSortName = fullName(p);
|
||||||
|
if (itemSortName > sortName) {
|
||||||
|
pos = i;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
QString displayName = useFullName ? fullName(project) : project->displayName();
|
||||||
|
projectItem->setText(displayName);
|
||||||
|
insertItem(pos, projectItem);
|
||||||
|
if (isCurrentItem)
|
||||||
|
setCurrentRow(pos);
|
||||||
|
|
||||||
|
m_ignoreIndexChange = false;
|
||||||
|
}
|
||||||
|
|
||||||
void ProjectListWidget::setProject(int index)
|
void ProjectListWidget::setProject(int index)
|
||||||
{
|
{
|
||||||
if (m_ignoreIndexChange)
|
if (m_ignoreIndexChange)
|
||||||
@@ -538,6 +579,8 @@ MiniProjectTargetSelector::MiniProjectTargetSelector(QAction *targetSelectorActi
|
|||||||
this, SLOT(projectAdded(ProjectExplorer::Project*)));
|
this, SLOT(projectAdded(ProjectExplorer::Project*)));
|
||||||
connect(m_sessionManager, SIGNAL(projectRemoved(ProjectExplorer::Project*)),
|
connect(m_sessionManager, SIGNAL(projectRemoved(ProjectExplorer::Project*)),
|
||||||
this, SLOT(projectRemoved(ProjectExplorer::Project*)));
|
this, SLOT(projectRemoved(ProjectExplorer::Project*)));
|
||||||
|
connect(m_sessionManager, SIGNAL(projectDisplayNameChanged(ProjectExplorer::Project*)),
|
||||||
|
this, SLOT(updateActionAndSummary()));
|
||||||
|
|
||||||
connect(m_listWidgets[TARGET], SIGNAL(changeActiveProjectConfiguration(ProjectExplorer::ProjectConfiguration*)),
|
connect(m_listWidgets[TARGET], SIGNAL(changeActiveProjectConfiguration(ProjectExplorer::ProjectConfiguration*)),
|
||||||
this, SLOT(setActiveTarget(ProjectExplorer::ProjectConfiguration*)));
|
this, SLOT(setActiveTarget(ProjectExplorer::ProjectConfiguration*)));
|
||||||
|
|||||||
@@ -75,6 +75,7 @@ public:
|
|||||||
private slots:
|
private slots:
|
||||||
void addProject(ProjectExplorer::Project *project);
|
void addProject(ProjectExplorer::Project *project);
|
||||||
void removeProject(ProjectExplorer::Project *project);
|
void removeProject(ProjectExplorer::Project *project);
|
||||||
|
void projectDisplayNameChanged(ProjectExplorer::Project *project);
|
||||||
void changeStartupProject(ProjectExplorer::Project *project);
|
void changeStartupProject(ProjectExplorer::Project *project);
|
||||||
void setProject(int index);
|
void setProject(int index);
|
||||||
private:
|
private:
|
||||||
|
|||||||
@@ -119,6 +119,7 @@ public:
|
|||||||
virtual void configureAsExampleProject(const QStringList &platforms);
|
virtual void configureAsExampleProject(const QStringList &platforms);
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
|
void displayNameChanged();
|
||||||
void fileListChanged();
|
void fileListChanged();
|
||||||
|
|
||||||
// Note: activeTarget can be 0 (if no targets are defined).
|
// Note: activeTarget can be 0 (if no targets are defined).
|
||||||
|
|||||||
@@ -356,6 +356,8 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er
|
|||||||
this, SLOT(projectRemoved(ProjectExplorer::Project*)));
|
this, SLOT(projectRemoved(ProjectExplorer::Project*)));
|
||||||
connect(d->m_session, SIGNAL(startupProjectChanged(ProjectExplorer::Project*)),
|
connect(d->m_session, SIGNAL(startupProjectChanged(ProjectExplorer::Project*)),
|
||||||
this, SLOT(startupProjectChanged()));
|
this, SLOT(startupProjectChanged()));
|
||||||
|
connect(d->m_session, SIGNAL(projectDisplayNameChanged(ProjectExplorer::Project*)),
|
||||||
|
this, SLOT(projectDisplayNameChanged(ProjectExplorer::Project*)));
|
||||||
connect(d->m_session, SIGNAL(dependencyChanged(ProjectExplorer::Project*,ProjectExplorer::Project*)),
|
connect(d->m_session, SIGNAL(dependencyChanged(ProjectExplorer::Project*,ProjectExplorer::Project*)),
|
||||||
this, SLOT(updateActions()));
|
this, SLOT(updateActions()));
|
||||||
connect(d->m_session, SIGNAL(sessionLoaded(QString)),
|
connect(d->m_session, SIGNAL(sessionLoaded(QString)),
|
||||||
@@ -2153,6 +2155,12 @@ void ProjectExplorerPlugin::projectRemoved(ProjectExplorer::Project * pro)
|
|||||||
this, SLOT(updateActions()));
|
this, SLOT(updateActions()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ProjectExplorerPlugin::projectDisplayNameChanged(Project *pro)
|
||||||
|
{
|
||||||
|
addToRecentProjects(pro->document()->fileName(), pro->displayName());
|
||||||
|
updateActions();
|
||||||
|
}
|
||||||
|
|
||||||
void ProjectExplorerPlugin::startupProjectChanged()
|
void ProjectExplorerPlugin::startupProjectChanged()
|
||||||
{
|
{
|
||||||
static QPointer<Project> previousStartupProject = 0;
|
static QPointer<Project> previousStartupProject = 0;
|
||||||
|
|||||||
@@ -220,6 +220,7 @@ private slots:
|
|||||||
|
|
||||||
void projectAdded(ProjectExplorer::Project *pro);
|
void projectAdded(ProjectExplorer::Project *pro);
|
||||||
void projectRemoved(ProjectExplorer::Project *pro);
|
void projectRemoved(ProjectExplorer::Project *pro);
|
||||||
|
void projectDisplayNameChanged(ProjectExplorer::Project *pro);
|
||||||
void startupProjectChanged(); // Calls updateRunAction
|
void startupProjectChanged(); // Calls updateRunAction
|
||||||
void activeTargetChanged();
|
void activeTargetChanged();
|
||||||
void activeRunConfigurationChanged();
|
void activeRunConfigurationChanged();
|
||||||
|
|||||||
@@ -652,7 +652,6 @@ void FlatModel::removed(FolderNode* parentNode, const QList<Node*> &newNodeList)
|
|||||||
QList<Node *>::const_iterator oldIter = oldNodeList.constBegin();
|
QList<Node *>::const_iterator oldIter = oldNodeList.constBegin();
|
||||||
QList<Node *>::const_iterator newIter = newNodeList.constBegin();
|
QList<Node *>::const_iterator newIter = newNodeList.constBegin();
|
||||||
|
|
||||||
Q_ASSERT(isSorted(oldNodeList));
|
|
||||||
Q_ASSERT(isSorted(newNodeList));
|
Q_ASSERT(isSorted(newNodeList));
|
||||||
|
|
||||||
QSet<Node *> emptyDifference;
|
QSet<Node *> emptyDifference;
|
||||||
|
|||||||
@@ -252,6 +252,9 @@ ProjectWindow::ProjectWindow(QWidget *parent)
|
|||||||
connect(session, SIGNAL(startupProjectChanged(ProjectExplorer::Project*)),
|
connect(session, SIGNAL(startupProjectChanged(ProjectExplorer::Project*)),
|
||||||
this, SLOT(startupProjectChanged(ProjectExplorer::Project*)));
|
this, SLOT(startupProjectChanged(ProjectExplorer::Project*)));
|
||||||
|
|
||||||
|
connect(session, SIGNAL(projectDisplayNameChanged(ProjectExplorer::Project*)),
|
||||||
|
this, SLOT(projectUpdated(ProjectExplorer::Project*)));
|
||||||
|
|
||||||
// Update properties to empty project for now:
|
// Update properties to empty project for now:
|
||||||
showProperties(-1, -1);
|
showProperties(-1, -1);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -82,7 +82,10 @@ public:
|
|||||||
|
|
||||||
void aboutToShutdown();
|
void aboutToShutdown();
|
||||||
void extensionsInitialized();
|
void extensionsInitialized();
|
||||||
|
|
||||||
|
public slots:
|
||||||
void projectUpdated(ProjectExplorer::Project *p);
|
void projectUpdated(ProjectExplorer::Project *p);
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void targetFactoriesChanged();
|
void targetFactoriesChanged();
|
||||||
void showProperties(int index, int subIndex);
|
void showProperties(int index, int subIndex);
|
||||||
|
|||||||
@@ -274,6 +274,9 @@ void SessionManager::addProjects(const QList<Project*> &projects)
|
|||||||
connect(pro, SIGNAL(fileListChanged()),
|
connect(pro, SIGNAL(fileListChanged()),
|
||||||
this, SLOT(clearProjectFileCache()));
|
this, SLOT(clearProjectFileCache()));
|
||||||
|
|
||||||
|
connect(pro, SIGNAL(displayNameChanged()),
|
||||||
|
this, SLOT(projectDisplayNameChanged()));
|
||||||
|
|
||||||
if (debug)
|
if (debug)
|
||||||
qDebug() << "SessionManager - adding project " << pro->displayName();
|
qDebug() << "SessionManager - adding project " << pro->displayName();
|
||||||
}
|
}
|
||||||
@@ -910,6 +913,27 @@ void SessionManager::sessionLoadingProgress()
|
|||||||
QCoreApplication::processEvents(QEventLoop::ExcludeUserInputEvents);
|
QCoreApplication::processEvents(QEventLoop::ExcludeUserInputEvents);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SessionManager::projectDisplayNameChanged()
|
||||||
|
{
|
||||||
|
Project *pro = qobject_cast<Project*>(sender());
|
||||||
|
if (pro) {
|
||||||
|
Node *currentNode = 0;
|
||||||
|
if (ProjectExplorerPlugin::currentProject() == pro)
|
||||||
|
currentNode = ProjectExplorerPlugin::instance()->currentNode();
|
||||||
|
|
||||||
|
// Fix node sorting
|
||||||
|
QList<ProjectNode *> nodes;
|
||||||
|
nodes << pro->rootProjectNode();
|
||||||
|
m_sessionNode->removeProjectNodes(nodes);
|
||||||
|
m_sessionNode->addProjectNodes(nodes);
|
||||||
|
|
||||||
|
if (currentNode)
|
||||||
|
ProjectExplorerPlugin::instance()->setCurrentNode(currentNode);
|
||||||
|
|
||||||
|
emit projectDisplayNameChanged(pro);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
QStringList ProjectExplorer::SessionManager::projectsForSessionName(const QString &session) const
|
QStringList ProjectExplorer::SessionManager::projectsForSessionName(const QString &session) const
|
||||||
{
|
{
|
||||||
const QString fileName = sessionNameToFileName(session);
|
const QString fileName = sessionNameToFileName(session);
|
||||||
|
|||||||
@@ -127,7 +127,7 @@ signals:
|
|||||||
void projectAdded(ProjectExplorer::Project *project);
|
void projectAdded(ProjectExplorer::Project *project);
|
||||||
void singleProjectAdded(ProjectExplorer::Project *project);
|
void singleProjectAdded(ProjectExplorer::Project *project);
|
||||||
void aboutToRemoveProject(ProjectExplorer::Project *project);
|
void aboutToRemoveProject(ProjectExplorer::Project *project);
|
||||||
|
void projectDisplayNameChanged(ProjectExplorer::Project *project);
|
||||||
void projectRemoved(ProjectExplorer::Project *project);
|
void projectRemoved(ProjectExplorer::Project *project);
|
||||||
|
|
||||||
void startupProjectChanged(ProjectExplorer::Project *project);
|
void startupProjectChanged(ProjectExplorer::Project *project);
|
||||||
@@ -147,6 +147,8 @@ private slots:
|
|||||||
void markSessionFileDirty(bool makeDefaultVirginDirty = true);
|
void markSessionFileDirty(bool makeDefaultVirginDirty = true);
|
||||||
void sessionLoadingProgress();
|
void sessionLoadingProgress();
|
||||||
|
|
||||||
|
void projectDisplayNameChanged();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool projectContainsFile(Project *p, const QString &fileName) const;
|
bool projectContainsFile(Project *p, const QString &fileName) const;
|
||||||
void restoreValues(const Utils::PersistentSettingsReader &reader);
|
void restoreValues(const Utils::PersistentSettingsReader &reader);
|
||||||
|
|||||||
Reference in New Issue
Block a user