Qbs: Seriously speed up the update of the Project Tree after reparse

Do not emit an updateNode signal for all existing nodes, but only for
those that actually changed state.

Change-Id: I0a906833a6879e224df0d4be05d3813b8e130083
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
This commit is contained in:
Tobias Hunger
2013-05-29 16:35:57 +02:00
parent 897ea412c3
commit 905d0aee15
2 changed files with 66 additions and 38 deletions

View File

@@ -59,6 +59,8 @@ public:
void setLine(int l);
bool update(const qbs::CodeLocation &loc);
private:
int m_line;
};
@@ -116,18 +118,19 @@ public:
QbsGroupNode(const qbs::GroupData *grp, const QString &productPath);
bool isEnabled() const;
void updateQbsGroupData(const qbs::GroupData *grp, const QString &productPath);
void updateQbsGroupData(const qbs::GroupData *grp, const QString &productPath,
bool productWasEnabled, bool productIsEnabled);
const qbs::GroupData *qbsGroupData() const { return m_qbsGroupData; }
QString productPath() const;
static void setupFiles(QbsBaseProjectNode *root, const QStringList &files,
const QString &productPath);
const QString &productPath, bool updateExisting);
private:
static void setupFolder(ProjectExplorer::FolderNode *folder,
const FileTreeNode *subFileTree, const QString &baseDir);
const FileTreeNode *subFileTree, const QString &baseDir, bool updateExisting);
const qbs::GroupData *m_qbsGroupData;
QString m_productPath;