forked from qt-creator/qt-creator
Add support for annotation of any given revision
- 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>
This commit is contained in:
@@ -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);
|
||||
|
||||
VcsBase::BaseAnnotationHighlighter *FossilEditorWidget::createAnnotationHighlighter(const QSet<QString> &changes) const
|
||||
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
|
||||
{
|
||||
return new FossilAnnotationHighlighter(changes);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user