VCS polishing: Change context menu entry for 'Blame parent'.

... for git, hg as it is not obvious from the SHA1 displayed.
This commit is contained in:
Friedemann Kleint
2010-08-13 09:12:27 +02:00
parent 4c29c61a75
commit 42b39023db
5 changed files with 28 additions and 7 deletions

View File

@@ -158,6 +158,7 @@ struct VCSBaseEditorPrivate
QList<int> m_diffSections; // line number where this section starts
int m_cursorLine;
QString m_annotateRevisionTextFormat;
QString m_annotatePreviousRevisionTextFormat;
QString m_copyRevisionTextFormat;
bool m_fileLogAnnotateEnabled;
};
@@ -246,6 +247,16 @@ void VCSBaseEditor::setAnnotateRevisionTextFormat(const QString &f)
d->m_annotateRevisionTextFormat = f;
}
QString VCSBaseEditor::annotatePreviousRevisionTextFormat() const
{
return d->m_annotatePreviousRevisionTextFormat;
}
void VCSBaseEditor::setAnnotatePreviousRevisionTextFormat(const QString &f)
{
d->m_annotatePreviousRevisionTextFormat = f;
}
QString VCSBaseEditor::copyRevisionTextFormat() const
{
return d->m_copyRevisionTextFormat;
@@ -405,9 +416,12 @@ QAction *VCSBaseEditor::createDescribeAction(const QString &change)
return a;
}
QAction *VCSBaseEditor::createAnnotateAction(const QString &change)
QAction *VCSBaseEditor::createAnnotateAction(const QString &change, bool previous)
{
QAction *a = new QAction(d->m_annotateRevisionTextFormat.arg(change), 0);
// Use 'previous' format if desired and available, else default to standard.
const QString &format = previous && !d->m_annotatePreviousRevisionTextFormat.isEmpty() ?
d->m_annotatePreviousRevisionTextFormat : d->m_annotateRevisionTextFormat;
QAction *a = new QAction(format.arg(change), 0);
a->setData(change);
connect(a, SIGNAL(triggered()), this, SLOT(slotAnnotateRevision()));
return a;
@@ -434,7 +448,7 @@ void VCSBaseEditor::contextMenuEvent(QContextMenuEvent *e)
menu->addAction(createCopyRevisionAction(d->m_currentChange));
menu->addAction(createDescribeAction(d->m_currentChange));
if (d->m_fileLogAnnotateEnabled)
menu->addAction(createAnnotateAction(d->m_currentChange));
menu->addAction(createAnnotateAction(d->m_currentChange, false));
break;
case AnnotateOutput: { // Describe current / annotate previous
menu->addSeparator();
@@ -444,7 +458,7 @@ void VCSBaseEditor::contextMenuEvent(QContextMenuEvent *e)
if (!previousVersions.isEmpty()) {
menu->addSeparator();
foreach(const QString &pv, previousVersions)
menu->addAction(createAnnotateAction(pv));
menu->addAction(createAnnotateAction(pv, true));
} // has previous versions
}
break;