diff options
author | Artur Shepilko <artur.shepilko@nomadbyte.com> | 2018-07-16 12:25:41 -0500 |
---|---|---|
committer | Artur Shepilko <artur.shepilko@nomadbyte.com> | 2018-08-08 17:15:00 +0000 |
commit | 88e11284ea0db367ce763388efcc9b566684f65c (patch) | |
tree | ffadb096e45a6b871df12ea50a31f1ffc1dc51f0 /plugins/fossil/fossileditor.cpp | |
parent | b1e1cdef867f73b1a999e583c09de61506509911 (diff) |
Add support for annotation of any given revision4.7
- Parent commits are also accessible from Annotate context menu
- The client functionality was added in `fossil v2.4`
Change-Id: Ia6096432cb1151388b5aebca30a6d25c1c6079f4
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Diffstat (limited to 'plugins/fossil/fossileditor.cpp')
-rw-r--r-- | plugins/fossil/fossileditor.cpp | 42 |
1 files changed, 41 insertions, 1 deletions
diff --git a/plugins/fossil/fossileditor.cpp b/plugins/fossil/fossileditor.cpp index 6297f7d..74a7c86 100644 --- a/plugins/fossil/fossileditor.cpp +++ b/plugins/fossil/fossileditor.cpp @@ -124,8 +124,48 @@ QString FossilEditorWidget::changeUnderCursor(const QTextCursor &cursorIn) const return QString(); } +QString FossilEditorWidget::decorateVersion(const QString &revision) const +{ + static const int shortChangesetIdSize(10); + static const int maxTextSize(120); + + const QFileInfo fi(source()); + const QString workingDirectory = fi.absolutePath(); + FossilClient *client = FossilPlugin::instance()->client(); + RevisionInfo revisionInfo = + client->synchronousRevisionQuery(workingDirectory, revision, true); + + // format: 'revision (committer "comment...")' + QString output = revision.left(shortChangesetIdSize) + + " (" + revisionInfo.committer + + " \"" + revisionInfo.commentMsg.left(maxTextSize); + + if (output.size() > maxTextSize) { + output.truncate(maxTextSize - 3); + output.append("..."); + } + output.append("\")"); + return output; +} + +QStringList FossilEditorWidget::annotationPreviousVersions(const QString &revision) const +{ + QStringList revisions; + const QFileInfo fi(source()); + const QString workingDirectory = fi.absolutePath(); + FossilClient *client = FossilPlugin::instance()->client(); + RevisionInfo revisionInfo = + client->synchronousRevisionQuery(workingDirectory, revision); + if (revisionInfo.parentId.isEmpty()) + return QStringList(); + + revisions.append(revisionInfo.parentId); + revisions.append(revisionInfo.mergeParentIds); + return revisions; +} -VcsBase::BaseAnnotationHighlighter *FossilEditorWidget::createAnnotationHighlighter(const QSet<QString> &changes) const +VcsBase::BaseAnnotationHighlighter *FossilEditorWidget::createAnnotationHighlighter( + const QSet<QString> &changes) const { return new FossilAnnotationHighlighter(changes); } |