# # # patch "src/model/ContentDiff.cpp" # from [bbb924ce83807cfe7cb5423c107256905bb91530] # to [0b958f4c87f39c1e0999157571d10ac0b497c4ef] # # patch "src/model/ContentDiff.h" # from [166da0c594871b60a1921a0086d7442df8fecec0] # to [29385c626e7cc410d08fd00c874afd82f6979fd1] # # patch "src/view/dialogs/SelectRevision.cpp" # from [7824539bbb937823d488c289fc3d9ff2e1bcd792] # to [72f7e7fb19c737f61b401baf1d16d0d6428b85bc] # ============================================================ --- src/model/ContentDiff.cpp bbb924ce83807cfe7cb5423c107256905bb91530 +++ src/model/ContentDiff.cpp 0b958f4c87f39c1e0999157571d10ac0b497c4ef @@ -32,20 +32,30 @@ ContentDiff::~ContentDiff() ContentDiff::~ContentDiff() { + cleanup(); +} + +void ContentDiff::cleanup() +{ if (diffParser) delete diffParser; qDeleteAll(lines); lines.clear(); + reset(); } void ContentDiff::readDatabaseDiff(const DatabaseFile & db, const QString & fileName, const QString & base, const QString & target) { - // reset the view - reset(); + cleanup(); QStringList cmd; - cmd << "content_diff" << fileName; + cmd << "content_diff"; + if (!fileName.isEmpty()) + { + cmd << fileName; + } + QStringList opts; opts << "r" << base << "r" << target; @@ -56,8 +66,7 @@ void ContentDiff::readWorkspaceDiff(cons void ContentDiff::readWorkspaceDiff(const WorkspacePath & ws, const QString & fileName, const QString & base, const QString & target) { - // reset the view - reset(); + cleanup(); QStringList cmd; cmd << "content_diff" << fileName; ============================================================ --- src/model/ContentDiff.h 166da0c594871b60a1921a0086d7442df8fecec0 +++ src/model/ContentDiff.h 29385c626e7cc410d08fd00c874afd82f6979fd1 @@ -81,6 +81,8 @@ private: private: void processTaskResult(const MonotoneTask &); + void cleanup(); + DiffParser * diffParser; ListLines lines; }; ============================================================ --- src/view/dialogs/SelectRevision.cpp 7824539bbb937823d488c289fc3d9ff2e1bcd792 +++ src/view/dialogs/SelectRevision.cpp 72f7e7fb19c737f61b401baf1d16d0d6428b85bc @@ -318,7 +318,7 @@ void SelectRevision::openDiffDialog() void SelectRevision::openDiffDialog() { I(firstRevision.size() > 0 && secondRevision.size() > 0); - emit revisionDiff (".", firstRevision, secondRevision); + emit revisionDiff (QString(), firstRevision, secondRevision); } void SelectRevision::readCerts(const QModelIndex & index)