ProjectNodes: Remove no longer necessary signaling

The project tree is updated in one go now, so there is no need to
signal each and every change.

Change-Id: I7d5829d688b406ee2e701a2aa004b9e8bb5870a9
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
Tobias Hunger
2017-03-03 17:16:32 +01:00
parent 49fef0ae24
commit d78e0edb5d
6 changed files with 3 additions and 50 deletions

View File

@@ -77,8 +77,6 @@ FlatModel::FlatModel(QObject *parent)
connect(&m_timer, &QTimer::timeout, this, &FlatModel::doUpdate); connect(&m_timer, &QTimer::timeout, this, &FlatModel::doUpdate);
ProjectTree *tree = ProjectTree::instance(); ProjectTree *tree = ProjectTree::instance();
connect(tree, &ProjectTree::dataChanged, this, &FlatModel::update);
connect(tree, &ProjectTree::nodeUpdated, this, &FlatModel::update);
connect(tree, &ProjectTree::subtreeChanged, this, &FlatModel::update); connect(tree, &ProjectTree::subtreeChanged, this, &FlatModel::update);
SessionManager *sm = SessionManager::instance(); SessionManager *sm = SessionManager::instance();

View File

@@ -129,13 +129,9 @@ void Node::setAbsoluteFilePathAndLine(const Utils::FileName &path, int line)
m_filePath = path; m_filePath = path;
m_line = line; m_line = line;
emitNodeUpdated();
} }
Node::~Node() Node::~Node() = default;
{
}
NodeType Node::nodeType() const NodeType Node::nodeType() const
{ {
@@ -225,18 +221,6 @@ void Node::setEnabled(bool enabled)
if (m_isEnabled == enabled) if (m_isEnabled == enabled)
return; return;
m_isEnabled = enabled; m_isEnabled = enabled;
emitNodeUpdated();
}
void Node::emitNodeUpdated()
{
if (parentFolderNode())
ProjectTree::emitNodeUpdated(this);
}
void Node::emitTreeChanged()
{
ProjectTree::emitDataChanged();
} }
bool Node::sortByPath(const Node *a, const Node *b) bool Node::sortByPath(const Node *a, const Node *b)
@@ -532,7 +516,6 @@ void FolderNode::setDisplayName(const QString &name)
if (m_displayName == name) if (m_displayName == name)
return; return;
m_displayName = name; m_displayName = name;
emitNodeUpdated();
} }
void FolderNode::setIcon(const QIcon &icon) void FolderNode::setIcon(const QIcon &icon)
@@ -612,11 +595,6 @@ void FolderNode::removeNode(Node *node)
m_nodes.removeOne(node); m_nodes.removeOne(node);
} }
/*!
Sets file nodes specified by \a files to the internal list of the folder
and emits the corresponding signals from the projectNode.
*/
/*! /*!
Removes all files and subfolders from this folder node. Removes all files and subfolders from this folder node.
*/ */

View File

@@ -131,9 +131,6 @@ public:
void setEnabled(bool enabled); void setEnabled(bool enabled);
void setAbsoluteFilePathAndLine(const Utils::FileName &filePath, int line); void setAbsoluteFilePathAndLine(const Utils::FileName &filePath, int line);
void emitNodeUpdated();
void emitTreeChanged();
virtual FileNode *asFileNode() { return nullptr; } virtual FileNode *asFileNode() { return nullptr; }
virtual const FileNode *asFileNode() const { return nullptr; } virtual const FileNode *asFileNode() const { return nullptr; }
virtual FolderNode *asFolderNode() { return nullptr; } virtual FolderNode *asFolderNode() { return nullptr; }

View File

@@ -259,13 +259,6 @@ void ProjectTree::updateContext()
Core::ICore::updateAdditionalContexts(oldContext, newContext); Core::ICore::updateAdditionalContexts(oldContext, newContext);
} }
void ProjectTree::emitNodeUpdated(Node *node)
{
if (!s_instance->isInNodeHierarchy(node))
return;
emit s_instance->nodeUpdated(node);
}
void ProjectTree::emitSubtreeChanged(Node *node) void ProjectTree::emitSubtreeChanged(Node *node)
{ {
if (!s_instance->isInNodeHierarchy(node)) if (!s_instance->isInNodeHierarchy(node))
@@ -273,11 +266,6 @@ void ProjectTree::emitSubtreeChanged(Node *node)
emit s_instance->subtreeChanged(node); emit s_instance->subtreeChanged(node);
} }
void ProjectTree::emitDataChanged()
{
instance()->dataChanged();
}
void ProjectTree::collapseAll() void ProjectTree::collapseAll()
{ {
if (m_focusForContextMenu) if (m_focusForContextMenu)

View File

@@ -62,23 +62,20 @@ public:
static void highlightProject(Project *project, const QString &message); static void highlightProject(Project *project, const QString &message);
void collapseAll();
signals: signals:
void currentProjectChanged(ProjectExplorer::Project *project); void currentProjectChanged(ProjectExplorer::Project *project);
void currentNodeChanged(); void currentNodeChanged();
// Emitted whenever the model needs to send a update signal. // Emitted whenever the model needs to send a update signal.
void nodeUpdated(ProjectExplorer::Node *node);
void subtreeChanged(ProjectExplorer::Node *node); void subtreeChanged(ProjectExplorer::Node *node);
void dataChanged();
void aboutToShowContextMenu(ProjectExplorer::Project *project, void aboutToShowContextMenu(ProjectExplorer::Project *project,
ProjectExplorer::Node *node); ProjectExplorer::Node *node);
public: // for nodes to emit signals, do not call unless you are a node public: // for nodes to emit signals, do not call unless you are a node
static void emitNodeUpdated(ProjectExplorer::Node *node);
static void emitSubtreeChanged(ProjectExplorer::Node *node); static void emitSubtreeChanged(ProjectExplorer::Node *node);
static void emitDataChanged();
void collapseAll();
private: private:
void sessionChanged(); void sessionChanged();

View File

@@ -416,11 +416,6 @@ void SessionManager::addProject(Project *pro)
connect(pro, &Project::fileListChanged, m_instance, &SessionManager::clearProjectFileCache); connect(pro, &Project::fileListChanged, m_instance, &SessionManager::clearProjectFileCache);
connect(pro, &Project::projectTreeChanged, m_instance, &SessionManager::updateProjectTree); connect(pro, &Project::projectTreeChanged, m_instance, &SessionManager::updateProjectTree);
connect(pro, &Project::displayNameChanged, m_instance, [pro] {
d->m_sessionNode.emitNodeUpdated();
emit m_instance->projectDisplayNameChanged(pro);
});
emit m_instance->projectAdded(pro); emit m_instance->projectAdded(pro);
configureEditors(pro); configureEditors(pro);
connect(pro, &Project::fileListChanged, [pro](){ configureEditors(pro); }); connect(pro, &Project::fileListChanged, [pro](){ configureEditors(pro); });