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.")),
|
tr("Ignore whitespace only changes.")),
|
||||||
settings.boolPointer(GitSettings::ignoreSpaceChangesInBlameKey));
|
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());
|
addButton(tr("Reload"), Utils::Icons::RELOAD.icon());
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -37,6 +37,7 @@ const QLatin1String GitSettings::showTagsKey("ShowTags");
|
|||||||
const QLatin1String GitSettings::omitAnnotationDateKey("OmitAnnotationDate");
|
const QLatin1String GitSettings::omitAnnotationDateKey("OmitAnnotationDate");
|
||||||
const QLatin1String GitSettings::ignoreSpaceChangesInDiffKey("SpaceIgnorantDiff");
|
const QLatin1String GitSettings::ignoreSpaceChangesInDiffKey("SpaceIgnorantDiff");
|
||||||
const QLatin1String GitSettings::ignoreSpaceChangesInBlameKey("SpaceIgnorantBlame");
|
const QLatin1String GitSettings::ignoreSpaceChangesInBlameKey("SpaceIgnorantBlame");
|
||||||
|
const QLatin1String GitSettings::blameMoveDetection("BlameDetectMove");
|
||||||
const QLatin1String GitSettings::diffPatienceKey("DiffPatience");
|
const QLatin1String GitSettings::diffPatienceKey("DiffPatience");
|
||||||
const QLatin1String GitSettings::winSetHomeEnvironmentKey("WinSetHomeEnvironment");
|
const QLatin1String GitSettings::winSetHomeEnvironmentKey("WinSetHomeEnvironment");
|
||||||
const QLatin1String GitSettings::gitkOptionsKey("GitKOptions");
|
const QLatin1String GitSettings::gitkOptionsKey("GitKOptions");
|
||||||
@@ -56,6 +57,7 @@ GitSettings::GitSettings()
|
|||||||
declareKey(showTagsKey, false);
|
declareKey(showTagsKey, false);
|
||||||
declareKey(omitAnnotationDateKey, false);
|
declareKey(omitAnnotationDateKey, false);
|
||||||
declareKey(ignoreSpaceChangesInDiffKey, true);
|
declareKey(ignoreSpaceChangesInDiffKey, true);
|
||||||
|
declareKey(blameMoveDetection, 0);
|
||||||
declareKey(ignoreSpaceChangesInBlameKey, true);
|
declareKey(ignoreSpaceChangesInBlameKey, true);
|
||||||
declareKey(diffPatienceKey, true);
|
declareKey(diffPatienceKey, true);
|
||||||
declareKey(winSetHomeEnvironmentKey, true);
|
declareKey(winSetHomeEnvironmentKey, true);
|
||||||
|
|||||||
@@ -48,6 +48,7 @@ public:
|
|||||||
static const QLatin1String omitAnnotationDateKey;
|
static const QLatin1String omitAnnotationDateKey;
|
||||||
static const QLatin1String ignoreSpaceChangesInDiffKey;
|
static const QLatin1String ignoreSpaceChangesInDiffKey;
|
||||||
static const QLatin1String ignoreSpaceChangesInBlameKey;
|
static const QLatin1String ignoreSpaceChangesInBlameKey;
|
||||||
|
static const QLatin1String blameMoveDetection;
|
||||||
static const QLatin1String diffPatienceKey;
|
static const QLatin1String diffPatienceKey;
|
||||||
static const QLatin1String winSetHomeEnvironmentKey;
|
static const QLatin1String winSetHomeEnvironmentKey;
|
||||||
static const QLatin1String gitkOptionsKey;
|
static const QLatin1String gitkOptionsKey;
|
||||||
|
|||||||
@@ -255,16 +255,20 @@ QStringList VcsBaseEditorConfig::argumentsForOption(const OptionMapping &mapping
|
|||||||
if (action && action->isChecked())
|
if (action && action->isChecked())
|
||||||
return mapping.options;
|
return mapping.options;
|
||||||
|
|
||||||
|
QStringList args;
|
||||||
const QComboBox *cb = qobject_cast<const QComboBox *>(mapping.object);
|
const QComboBox *cb = qobject_cast<const QComboBox *>(mapping.object);
|
||||||
if (cb) {
|
if (!cb)
|
||||||
const QString value = cb->itemData(cb->currentIndex()).toString();
|
|
||||||
QStringList args;
|
|
||||||
foreach (const QString &option, mapping.options)
|
|
||||||
args << option.arg(value);
|
|
||||||
return args;
|
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()
|
void VcsBaseEditorConfig::updateMappedSettings()
|
||||||
|
|||||||
Reference in New Issue
Block a user