FlatModel: The simplified tree did not react to hasBuildTarget changes

Task-Nr: QTCREATORBUG-3014
Task-Nr: QTCREATORBUG-2821
This commit is contained in:
dt
2010-11-18 17:31:30 +01:00
parent 1b1da8ae36
commit bdc0e29241
6 changed files with 67 additions and 2 deletions

View File

@@ -145,6 +145,12 @@ FlatModel::FlatModel(SessionNode *rootNode, QObject *parent)
NodesWatcher *watcher = new NodesWatcher(this);
m_rootNode->registerWatcher(watcher);
connect(watcher, SIGNAL(aboutToHasBuildTargetsChanged(ProjectExplorer::ProjectNode*)),
this, SLOT(aboutToHasBuildTargetsChanged(ProjectExplorer::ProjectNode*)));
connect(watcher, SIGNAL(hasBuildTargetsChanged(ProjectExplorer::ProjectNode*)),
this, SLOT(hasBuildTargetsChanged(ProjectExplorer::ProjectNode*)));
connect(watcher, SIGNAL(foldersAboutToBeAdded(FolderNode *, const QList<FolderNode*> &)),
this, SLOT(foldersAboutToBeAdded(FolderNode *, const QList<FolderNode*> &)));
connect(watcher, SIGNAL(foldersAdded()),
@@ -508,7 +514,6 @@ bool FlatModel::filter(Node *node) const
if (m_filterGeneratedFiles)
isHidden = fileNode->isGenerated();
}
return isHidden;
}
@@ -694,6 +699,31 @@ void FlatModel::removed(FolderNode* parentNode, const QList<Node*> &newNodeList)
}
}
void FlatModel::aboutToHasBuildTargetsChanged(ProjectExplorer::ProjectNode* node)
{
if (!m_filterProjects)
return;
FolderNode *folder = visibleFolderNode(node->parentFolderNode());
QList<Node *> newNodeList = childNodes(folder, QSet<Node *>() << node);
removed(folder, newNodeList);
QList<Node *> staleFolders;
recursiveAddFolderNodesImpl(node, &staleFolders);
foreach (Node *n, staleFolders)
if (FolderNode *fn = qobject_cast<FolderNode *>(n))
m_childNodes.remove(fn);
}
void FlatModel::hasBuildTargetsChanged(ProjectExplorer::ProjectNode *node)
{
if (!m_filterProjects)
return;
// we are only interested if we filter
FolderNode *folder = visibleFolderNode(node->parentFolderNode());
QList<Node *> newNodeList = childNodes(folder);
added(folder, newNodeList);
}
void FlatModel::foldersAboutToBeAdded(FolderNode *parentFolder, const QList<FolderNode*> &newFolders)
{
Q_UNUSED(newFolders)