aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/vcsbase/vcsbaseclient.cpp
diff options
context:
space:
mode:
authorOrgad Shaneh <[email protected]>2017-06-11 17:44:32 +0300
committerOrgad Shaneh <[email protected]>2017-06-19 08:08:02 +0000
commita36536813f9aa00944fd8fcab2e2689a385d5387 (patch)
tree10b4fb9abe4b0221f9f9b503b92a549a337ceeea /src/plugins/vcsbase/vcsbaseclient.cpp
parent771d9f222c6af0aa5f3622b51baf78d645770b0d (diff)
VCS: Set user choices on editor reload
Broke by 2c6adc1e74. Change-Id: Iba435899c7b0da4b270f4ef8ece84c1839bf6b72 Reviewed-by: AndrĂ© Hartmann <[email protected]> Reviewed-by: Tobias Hunger <[email protected]>
Diffstat (limited to 'src/plugins/vcsbase/vcsbaseclient.cpp')
-rw-r--r--src/plugins/vcsbase/vcsbaseclient.cpp43
1 files changed, 26 insertions, 17 deletions
diff --git a/src/plugins/vcsbase/vcsbaseclient.cpp b/src/plugins/vcsbase/vcsbaseclient.cpp
index aa0204cc757..7060294a971 100644
--- a/src/plugins/vcsbase/vcsbaseclient.cpp
+++ b/src/plugins/vcsbase/vcsbaseclient.cpp
@@ -433,21 +433,26 @@ void VcsBaseClient::diff(const QString &workingDir, const QStringList &files,
vcsCmdString.toLatin1().constData(), id);
editor->setWorkingDirectory(workingDir);
- QStringList effectiveArgs = extraOptions;
- if (!editor->configurationAdded()) {
- if (VcsBaseEditorConfig *paramWidget = d->createDiffEditor(editor)) {
+ VcsBaseEditorConfig *paramWidget = editor->editorConfig();
+ if (!paramWidget) {
+ paramWidget = d->createDiffEditor(editor);
+ if (paramWidget) {
+ paramWidget->setBaseArguments(extraOptions);
// editor has been just created, createVcsEditor() didn't set a configuration widget yet
connect(editor, &VcsBaseEditorWidget::diffChunkReverted,
paramWidget, &VcsBaseEditorConfig::executeCommand);
connect(paramWidget, &VcsBaseEditorConfig::commandExecutionRequested,
- [=] { diff(workingDir, files, extraOptions + paramWidget->arguments()); } );
- effectiveArgs = paramWidget->arguments();
- editor->setConfigurationAdded();
+ [=] { diff(workingDir, files, extraOptions); } );
+ editor->setEditorConfig(paramWidget);
}
}
- QStringList args;
- args << vcsCmdString << effectiveArgs << files;
+ QStringList args = {vcsCmdString};
+ if (paramWidget)
+ args << paramWidget->arguments();
+ else
+ args << extraOptions;
+ args << files;
QTextCodec *codec = source.isEmpty() ? static_cast<QTextCodec *>(0) : VcsBaseEditor::getCodec(source);
VcsCommand *command = createCommand(workingDir, editor);
command->setCodec(codec);
@@ -468,20 +473,24 @@ void VcsBaseClient::log(const QString &workingDir, const QStringList &files,
vcsCmdString.toLatin1().constData(), id);
editor->setFileLogAnnotateEnabled(enableAnnotationContextMenu);
- QStringList effectiveArgs = extraOptions;
- if (!editor->configurationAdded()) {
- if (VcsBaseEditorConfig *paramWidget = d->createLogEditor(editor)) {
+ VcsBaseEditorConfig *paramWidget = editor->editorConfig();
+ if (!paramWidget) {
+ paramWidget = d->createLogEditor(editor);
+ if (paramWidget) {
+ paramWidget->setBaseArguments(extraOptions);
// editor has been just created, createVcsEditor() didn't set a configuration widget yet
connect(paramWidget, &VcsBaseEditorConfig::commandExecutionRequested,
- [=]() { this->log(workingDir, files, extraOptions + paramWidget->arguments(),
- enableAnnotationContextMenu); } );
- effectiveArgs = paramWidget->arguments();
- editor->setConfigurationAdded();
+ [=] { this->log(workingDir, files, extraOptions, enableAnnotationContextMenu); } );
+ editor->setEditorConfig(paramWidget);
}
}
- QStringList args;
- args << vcsCmdString << effectiveArgs << files;
+ QStringList args = {vcsCmdString};
+ if (paramWidget)
+ args << paramWidget->arguments();
+ else
+ args << extraOptions;
+ args << files;
enqueueJob(createCommand(workingDir, editor), args);
}