diff options
author | Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> | 2014-11-12 15:30:06 +0100 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> | 2014-11-12 16:21:02 +0100 |
commit | e01496122d6033ec7bd5e72922f275ae028b042c (patch) | |
tree | 282d1e524aeefcc54edfdedf01cf129630dac73a /src/plugins/diffeditor/diffeditordocument.cpp | |
parent | 8fbd8c4105e711ce25c0b2f5ba1db6dc027f70ac (diff) | |
download | qt-creator-e01496122d6033ec7bd5e72922f275ae028b042c.tar.gz |
Implement DiffEditorDocument::suggestedFileName().
Try to derive a git-format-patch type file name from
the description.
Change-Id: I581f4ba87a5ac4b82ca6519be8aa13fb4b4ebe43
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Diffstat (limited to 'src/plugins/diffeditor/diffeditordocument.cpp')
-rw-r--r-- | src/plugins/diffeditor/diffeditordocument.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/plugins/diffeditor/diffeditordocument.cpp b/src/plugins/diffeditor/diffeditordocument.cpp index e34a184444..470652aa2c 100644 --- a/src/plugins/diffeditor/diffeditordocument.cpp +++ b/src/plugins/diffeditor/diffeditordocument.cpp @@ -127,4 +127,29 @@ bool DiffEditorDocument::open(QString *errorString, const QString &fileName) return true; } +QString DiffEditorDocument::suggestedFileName() const +{ + QString result = QStringLiteral("0001"); + const QString description = m_controller->description(); + if (!description.isEmpty()) { + // Derive "git format-patch-type" file name from subject. + const int pos = description.indexOf(QLatin1String("\n\n ")); + const int endPos = pos >= 0 ? description.indexOf(QLatin1Char('\n'), pos + 6) : -1; + if (endPos > pos) { + const QChar space(QLatin1Char(' ')); + const QChar dash(QLatin1Char('-')); + QString subject = description.mid(pos, endPos - pos); + for (int i = 0; i < subject.size(); ++i) { + if (!subject.at(i).isLetterOrNumber()) + subject[i] = space; + } + subject = subject.simplified(); + subject.replace(space, dash); + result += dash; + result += subject; + } + } + return result + QStringLiteral(".patch"); +} + } // namespace DiffEditor |