summaryrefslogtreecommitdiff
path: root/src/plugins/diffeditor/diffeditordocument.cpp
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@theqtcompany.com>2014-11-12 15:30:06 +0100
committerFriedemann Kleint <Friedemann.Kleint@theqtcompany.com>2014-11-12 16:21:02 +0100
commite01496122d6033ec7bd5e72922f275ae028b042c (patch)
tree282d1e524aeefcc54edfdedf01cf129630dac73a /src/plugins/diffeditor/diffeditordocument.cpp
parent8fbd8c4105e711ce25c0b2f5ba1db6dc027f70ac (diff)
downloadqt-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.cpp25
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