forked from qt-creator/qt-creator
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:
@@ -164,9 +164,9 @@ QSharedPointer<VCSBase::AbstractCheckoutJob> CloneWizardPage::createCheckoutJob(
|
|||||||
|
|
||||||
QStringList CloneWizardPage::branches(const QString &repository, int *current)
|
QStringList CloneWizardPage::branches(const QString &repository, int *current)
|
||||||
{
|
{
|
||||||
// Run git on remote repository if URL is complete
|
// Run git on remote repository if an URL was specified.
|
||||||
*current = 0;
|
*current = 0;
|
||||||
if (!repository.endsWith(d->gitPostFix))
|
if (repository.isEmpty())
|
||||||
return QStringList();
|
return QStringList();
|
||||||
const QStringList branches = Internal::GitPlugin::instance()->gitClient()->synchronousRepositoryBranches(repository);
|
const QStringList branches = Internal::GitPlugin::instance()->gitClient()->synchronousRepositoryBranches(repository);
|
||||||
*current = branches.indexOf(QLatin1String("master"));
|
*current = branches.indexOf(QLatin1String("master"));
|
||||||
|
@@ -66,6 +66,7 @@ GitEditor::GitEditor(const VCSBase::VCSBaseEditorParameters *type,
|
|||||||
QTC_ASSERT(m_changeNumberPattern8.isValid(), return);
|
QTC_ASSERT(m_changeNumberPattern8.isValid(), return);
|
||||||
QTC_ASSERT(m_changeNumberPattern40.isValid(), return);
|
QTC_ASSERT(m_changeNumberPattern40.isValid(), return);
|
||||||
setAnnotateRevisionTextFormat(tr("Blame %1"));
|
setAnnotateRevisionTextFormat(tr("Blame %1"));
|
||||||
|
setAnnotatePreviousRevisionTextFormat(tr("Blame parent revision %1"));
|
||||||
if (Git::Constants::debug)
|
if (Git::Constants::debug)
|
||||||
qDebug() << "GitEditor::GitEditor" << type->type << type->id;
|
qDebug() << "GitEditor::GitEditor" << type->type << type->id;
|
||||||
}
|
}
|
||||||
|
@@ -55,6 +55,7 @@ MercurialEditor::MercurialEditor(const VCSBase::VCSBaseEditorParameters *type, Q
|
|||||||
diffIdentifier(QLatin1String(Constants::DIFFIDENTIFIER))
|
diffIdentifier(QLatin1String(Constants::DIFFIDENTIFIER))
|
||||||
{
|
{
|
||||||
setAnnotateRevisionTextFormat(tr("Annotate %1"));
|
setAnnotateRevisionTextFormat(tr("Annotate %1"));
|
||||||
|
setAnnotatePreviousRevisionTextFormat(tr("Annotate parent revision %1"));
|
||||||
}
|
}
|
||||||
|
|
||||||
QSet<QString> MercurialEditor::annotationChanges() const
|
QSet<QString> MercurialEditor::annotationChanges() const
|
||||||
|
@@ -158,6 +158,7 @@ struct VCSBaseEditorPrivate
|
|||||||
QList<int> m_diffSections; // line number where this section starts
|
QList<int> m_diffSections; // line number where this section starts
|
||||||
int m_cursorLine;
|
int m_cursorLine;
|
||||||
QString m_annotateRevisionTextFormat;
|
QString m_annotateRevisionTextFormat;
|
||||||
|
QString m_annotatePreviousRevisionTextFormat;
|
||||||
QString m_copyRevisionTextFormat;
|
QString m_copyRevisionTextFormat;
|
||||||
bool m_fileLogAnnotateEnabled;
|
bool m_fileLogAnnotateEnabled;
|
||||||
};
|
};
|
||||||
@@ -246,6 +247,16 @@ void VCSBaseEditor::setAnnotateRevisionTextFormat(const QString &f)
|
|||||||
d->m_annotateRevisionTextFormat = 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
|
QString VCSBaseEditor::copyRevisionTextFormat() const
|
||||||
{
|
{
|
||||||
return d->m_copyRevisionTextFormat;
|
return d->m_copyRevisionTextFormat;
|
||||||
@@ -405,9 +416,12 @@ QAction *VCSBaseEditor::createDescribeAction(const QString &change)
|
|||||||
return a;
|
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);
|
a->setData(change);
|
||||||
connect(a, SIGNAL(triggered()), this, SLOT(slotAnnotateRevision()));
|
connect(a, SIGNAL(triggered()), this, SLOT(slotAnnotateRevision()));
|
||||||
return a;
|
return a;
|
||||||
@@ -434,7 +448,7 @@ void VCSBaseEditor::contextMenuEvent(QContextMenuEvent *e)
|
|||||||
menu->addAction(createCopyRevisionAction(d->m_currentChange));
|
menu->addAction(createCopyRevisionAction(d->m_currentChange));
|
||||||
menu->addAction(createDescribeAction(d->m_currentChange));
|
menu->addAction(createDescribeAction(d->m_currentChange));
|
||||||
if (d->m_fileLogAnnotateEnabled)
|
if (d->m_fileLogAnnotateEnabled)
|
||||||
menu->addAction(createAnnotateAction(d->m_currentChange));
|
menu->addAction(createAnnotateAction(d->m_currentChange, false));
|
||||||
break;
|
break;
|
||||||
case AnnotateOutput: { // Describe current / annotate previous
|
case AnnotateOutput: { // Describe current / annotate previous
|
||||||
menu->addSeparator();
|
menu->addSeparator();
|
||||||
@@ -444,7 +458,7 @@ void VCSBaseEditor::contextMenuEvent(QContextMenuEvent *e)
|
|||||||
if (!previousVersions.isEmpty()) {
|
if (!previousVersions.isEmpty()) {
|
||||||
menu->addSeparator();
|
menu->addSeparator();
|
||||||
foreach(const QString &pv, previousVersions)
|
foreach(const QString &pv, previousVersions)
|
||||||
menu->addAction(createAnnotateAction(pv));
|
menu->addAction(createAnnotateAction(pv, true));
|
||||||
} // has previous versions
|
} // has previous versions
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@@ -119,6 +119,11 @@ public:
|
|||||||
QString annotateRevisionTextFormat() const;
|
QString annotateRevisionTextFormat() const;
|
||||||
void setAnnotateRevisionTextFormat(const QString &);
|
void setAnnotateRevisionTextFormat(const QString &);
|
||||||
|
|
||||||
|
// Format for "Annotate Previous" revision menu entries. Should contain '%1" placeholder.
|
||||||
|
// Defaults to "annotateRevisionTextFormat" if unset.
|
||||||
|
QString annotatePreviousRevisionTextFormat() const;
|
||||||
|
void setAnnotatePreviousRevisionTextFormat(const QString &);
|
||||||
|
|
||||||
// Format for "Copy" revision menu entries. Should contain '%1" placeholder
|
// Format for "Copy" revision menu entries. Should contain '%1" placeholder
|
||||||
QString copyRevisionTextFormat() const;
|
QString copyRevisionTextFormat() const;
|
||||||
void setCopyRevisionTextFormat(const QString &);
|
void setCopyRevisionTextFormat(const QString &);
|
||||||
@@ -230,7 +235,7 @@ private:
|
|||||||
|
|
||||||
void jumpToChangeFromDiff(QTextCursor cursor);
|
void jumpToChangeFromDiff(QTextCursor cursor);
|
||||||
QAction *createDescribeAction(const QString &change);
|
QAction *createDescribeAction(const QString &change);
|
||||||
QAction *createAnnotateAction(const QString &change);
|
QAction *createAnnotateAction(const QString &change, bool previous = false);
|
||||||
QAction *createCopyRevisionAction(const QString &change);
|
QAction *createCopyRevisionAction(const QString &change);
|
||||||
|
|
||||||
VCSBaseEditorPrivate *d;
|
VCSBaseEditorPrivate *d;
|
||||||
|
Reference in New Issue
Block a user