forked from qt-creator/qt-creator
Git: Support move/copy detection for blame
Fixes: QTCREATORBUG-20462 Change-Id: Ib2ea14de6a60691a1ed27cd07aac282557d69015 Reviewed-by: André Hartmann <aha_1980@gmx.de>
This commit is contained in:
committed by
Orgad Shaneh
parent
202d40f256
commit
c415a03cea
@@ -588,6 +588,15 @@ public:
|
||||
tr("Ignore whitespace only changes.")),
|
||||
settings.boolPointer(GitSettings::ignoreSpaceChangesInBlameKey));
|
||||
|
||||
const QList<ComboBoxItem> logChoices = {
|
||||
ComboBoxItem(tr("No Move Detection"), ""),
|
||||
ComboBoxItem(tr("Detect Moves Within File"), "-M"),
|
||||
ComboBoxItem(tr("Detect Moves Between Files"), "-M -C"),
|
||||
ComboBoxItem(tr("Detect Moves and Copies Between Files"), "-M -C -C")
|
||||
};
|
||||
mapSetting(addComboBox({}, logChoices),
|
||||
settings.intPointer(GitSettings::blameMoveDetection));
|
||||
|
||||
addButton(tr("Reload"), Utils::Icons::RELOAD.icon());
|
||||
}
|
||||
};
|
||||
|
||||
@@ -37,6 +37,7 @@ const QLatin1String GitSettings::showTagsKey("ShowTags");
|
||||
const QLatin1String GitSettings::omitAnnotationDateKey("OmitAnnotationDate");
|
||||
const QLatin1String GitSettings::ignoreSpaceChangesInDiffKey("SpaceIgnorantDiff");
|
||||
const QLatin1String GitSettings::ignoreSpaceChangesInBlameKey("SpaceIgnorantBlame");
|
||||
const QLatin1String GitSettings::blameMoveDetection("BlameDetectMove");
|
||||
const QLatin1String GitSettings::diffPatienceKey("DiffPatience");
|
||||
const QLatin1String GitSettings::winSetHomeEnvironmentKey("WinSetHomeEnvironment");
|
||||
const QLatin1String GitSettings::gitkOptionsKey("GitKOptions");
|
||||
@@ -56,6 +57,7 @@ GitSettings::GitSettings()
|
||||
declareKey(showTagsKey, false);
|
||||
declareKey(omitAnnotationDateKey, false);
|
||||
declareKey(ignoreSpaceChangesInDiffKey, true);
|
||||
declareKey(blameMoveDetection, 0);
|
||||
declareKey(ignoreSpaceChangesInBlameKey, true);
|
||||
declareKey(diffPatienceKey, true);
|
||||
declareKey(winSetHomeEnvironmentKey, true);
|
||||
|
||||
@@ -48,6 +48,7 @@ public:
|
||||
static const QLatin1String omitAnnotationDateKey;
|
||||
static const QLatin1String ignoreSpaceChangesInDiffKey;
|
||||
static const QLatin1String ignoreSpaceChangesInBlameKey;
|
||||
static const QLatin1String blameMoveDetection;
|
||||
static const QLatin1String diffPatienceKey;
|
||||
static const QLatin1String winSetHomeEnvironmentKey;
|
||||
static const QLatin1String gitkOptionsKey;
|
||||
|
||||
@@ -255,16 +255,20 @@ QStringList VcsBaseEditorConfig::argumentsForOption(const OptionMapping &mapping
|
||||
if (action && action->isChecked())
|
||||
return mapping.options;
|
||||
|
||||
QStringList args;
|
||||
const QComboBox *cb = qobject_cast<const QComboBox *>(mapping.object);
|
||||
if (cb) {
|
||||
const QString value = cb->itemData(cb->currentIndex()).toString();
|
||||
QStringList args;
|
||||
foreach (const QString &option, mapping.options)
|
||||
args << option.arg(value);
|
||||
if (!cb)
|
||||
return args;
|
||||
}
|
||||
|
||||
return QStringList();
|
||||
const QString value = cb->itemData(cb->currentIndex()).toString();
|
||||
if (value.isEmpty())
|
||||
return args;
|
||||
|
||||
if (mapping.options.isEmpty())
|
||||
args += value.split(' ');
|
||||
else
|
||||
args += mapping.options.first().arg(value);
|
||||
return args;
|
||||
}
|
||||
|
||||
void VcsBaseEditorConfig::updateMappedSettings()
|
||||
|
||||
Reference in New Issue
Block a user