diff --git a/src/plugins/cppeditor/cpprefactoringchanges.cpp b/src/plugins/cppeditor/cpprefactoringchanges.cpp index 6d6e095e62d80b6a3e1e6f7420b1d6e22d0c8ea9..196ce53fd40fe7dc4b90cdf26f2c4bff87bb65f3 100644 --- a/src/plugins/cppeditor/cpprefactoringchanges.cpp +++ b/src/plugins/cppeditor/cpprefactoringchanges.cpp @@ -42,6 +42,12 @@ CppRefactoringChanges::CppRefactoringChanges(const Snapshot &snapshot) m_workingCopy = m_modelManager->workingCopy(); } +const CPlusPlus::Snapshot &CppRefactoringChanges::snapshot() const +{ + return m_snapshot; +} + + QStringList CppRefactoringChanges::apply() { const QStringList changedFiles = TextEditor::RefactoringChanges::apply(); @@ -53,6 +59,8 @@ Document::Ptr CppRefactoringChanges::document(const QString &fileName) const { QString source; unsigned editorRevision = 0; + QDateTime lastModified; + if (m_workingCopy.contains(fileName)) { const QPair<QString, unsigned> workingCopy = m_workingCopy.get(fileName); source = workingCopy.first; @@ -62,13 +70,19 @@ Document::Ptr CppRefactoringChanges::document(const QString &fileName) const if (! file.open(QFile::ReadOnly)) return Document::Ptr(); + lastModified = QFileInfo(file).lastModified(); source = QTextStream(&file).readAll(); // ### FIXME read bytes, and remove the convert below file.close(); } const QByteArray contents = m_snapshot.preprocessedCode(source, fileName); Document::Ptr doc = m_snapshot.documentFromSource(contents, fileName); - doc->setEditorRevision(editorRevision); + + if (lastModified.isValid()) + doc->setLastModified(lastModified); + else + doc->setEditorRevision(editorRevision); doc->check(); + return doc; } diff --git a/src/plugins/cppeditor/cpprefactoringchanges.h b/src/plugins/cppeditor/cpprefactoringchanges.h index 9b684772f20dd3ddb056c39ebdb049b37abb0d2e..147d9014a1a16a5a1645e6a4e7d4e5d47839fd9d 100644 --- a/src/plugins/cppeditor/cpprefactoringchanges.h +++ b/src/plugins/cppeditor/cpprefactoringchanges.h @@ -46,9 +46,7 @@ public: virtual QStringList apply(); - const CPlusPlus::Snapshot &snapshot() const - { return m_snapshot; } - + const CPlusPlus::Snapshot &snapshot() const; CPlusPlus::Document::Ptr document(const QString &fileName) const; private: