CppTools: Add revisions to AbstractEditorSupport

So far revisions for AbstractEditorSupport were not needed because until
recently we only had a single snapshot ("global snapshot"). Now, since
editor snapshots are introduced, we need to make sure to update the
corresponding documents in these snapshots, too. To do this efficiently,
a revision is introduced for AbstractEditorSupport.

Task-number: QTCREATORBUG-10894

Change-Id: Ibad1dbbafb7c721d1328959c1e903345fe465326
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
This commit is contained in:
Nikolai Kosjar
2013-11-25 15:22:58 +01:00
parent b7d0d968f9
commit 51d91a6075
3 changed files with 5 additions and 2 deletions

View File

@@ -38,7 +38,7 @@
namespace CppTools {
AbstractEditorSupport::AbstractEditorSupport(CppModelManagerInterface *modelmanager) :
m_modelmanager(modelmanager)
m_modelmanager(modelmanager), m_revision(0)
{
}
@@ -48,6 +48,7 @@ AbstractEditorSupport::~AbstractEditorSupport()
void AbstractEditorSupport::updateDocument()
{
++m_revision;
m_modelmanager->updateSourceFiles(QStringList(fileName()));
}

View File

@@ -50,6 +50,7 @@ public:
virtual QString fileName() const = 0;
void updateDocument();
unsigned revision() const { return m_revision; }
// TODO: find a better place for common utility functions
static QString functionAt(const CppModelManagerInterface *mm,
@@ -60,6 +61,7 @@ public:
private:
CppModelManagerInterface *m_modelmanager;
unsigned m_revision;
};
} // namespace CppTools

View File

@@ -550,7 +550,7 @@ CppModelManager::WorkingCopy CppModelManager::buildWorkingCopyList()
QSetIterator<AbstractEditorSupport *> it(m_extraEditorSupports);
while (it.hasNext()) {
AbstractEditorSupport *es = it.next();
workingCopy.insert(es->fileName(), es->contents());
workingCopy.insert(es->fileName(), es->contents(), es->revision());
}
// Add the project configuration file