forked from qt-creator/qt-creator
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:
@@ -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();
|
||||||
|
|||||||
@@ -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.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -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; }
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
@@ -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); });
|
||||||
|
|||||||
Reference in New Issue
Block a user