diff options
author | Daniel Teske <daniel.teske@theqtcompany.com> | 2015-01-14 15:35:48 +0100 |
---|---|---|
committer | Daniel Teske <daniel.teske@theqtcompany.com> | 2015-01-15 12:15:48 +0100 |
commit | b88cdef0a3b170ae020f3f89ed91fd1a14daf6a2 (patch) | |
tree | 79d8e5dfe7d80a9e6dbb2ed07ded34640f42d0dc /src/plugins/projectexplorer/projecttree.h | |
parent | d573195b67bd267837bcebe48628fd24d135cb59 (diff) |
ProjectTree: Fix signal emissions for nodes that are not yet mapped
The Generic Project Manager builds the tree from the bottom to the
top. Previously no signals were emitted while doing that since
the watchers were added on adding the top level node at the end.
With the new ProjectTree that leads to lots of signals, and leaves
the FlatModel confussed, as that expects the nodes to be already
in the hierarchy and crashes otherwise.
Restore this behavior by checking if the affected nodes are in
the hierarchy.
Change-Id: I832b348867a8abad2afef11297b44f058592cb1d
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Reviewed-by: Daniel Teske <daniel.teske@theqtcompany.com>
Diffstat (limited to 'src/plugins/projectexplorer/projecttree.h')
-rw-r--r-- | src/plugins/projectexplorer/projecttree.h | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/plugins/projectexplorer/projecttree.h b/src/plugins/projectexplorer/projecttree.h index 8269d61efb..2e6b6a5e27 100644 --- a/src/plugins/projectexplorer/projecttree.h +++ b/src/plugins/projectexplorer/projecttree.h @@ -104,22 +104,22 @@ public: // for nodes to emit signals, do not call unless you are a node // folders & projects void emitFoldersAboutToBeAdded(FolderNode *parentFolder, const QList<FolderNode*> &newFolders); - void emitFoldersAdded(); + void emitFoldersAdded(FolderNode *folder); void emitFoldersAboutToBeRemoved(FolderNode *parentFolder, const QList<FolderNode*> &staleFolders); - void emitFoldersRemoved(); + void emitFoldersRemoved(FolderNode *folder); // files void emitFilesAboutToBeAdded(FolderNode *folder, const QList<FileNode*> &newFiles); - void emitFilesAdded(); + void emitFilesAdded(FolderNode *folder); void emitFilesAboutToBeRemoved(FolderNode *folder, const QList<FileNode*> &staleFiles); - void emitFilesRemoved(); + void emitFilesRemoved(FolderNode *folder); void emitNodeSortKeyAboutToChange(Node *node); - void emitNodeSortKeyChanged(); + void emitNodeSortKeyChanged(Node *node); private: void focusChanged(); @@ -133,6 +133,8 @@ private: void updateExternalFileWarning(); static bool hasFocus(Internal::ProjectTreeWidget *widget); + void hideContextMenu(); + bool isInNodeHierarchy(Node *n); private: static ProjectTree *s_instance; |