CVS: Aspectify settings

Change-Id: Ib5170405b33b3e521470407065e85c95dad6163b
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This commit is contained in:
hjk
2021-03-16 16:55:02 +01:00
parent 8d6cb35b74
commit 78b4449692
13 changed files with 181 additions and 376 deletions

View File

@@ -267,8 +267,8 @@ void VcsBaseClientImpl::saveSettings()
m_baseSettings->writeSettings(Core::ICore::settings());
}
VcsBaseClient::VcsBaseClient(VcsBaseClientSettings *settings) :
VcsBaseClientImpl(settings)
VcsBaseClient::VcsBaseClient(VcsBaseClientSettings *settings, VcsBaseSettings *baseSettings) :
VcsBaseClientImpl(settings, baseSettings)
{
qRegisterMetaType<QVariant>();
}

View File

@@ -148,7 +148,8 @@ public:
QString file;
};
explicit VcsBaseClient(VcsBaseClientSettings *settings);
explicit VcsBaseClient(VcsBaseClientSettings *settings,
VcsBaseSettings *baseSettings = nullptr);
virtual bool synchronousCreateRepository(const QString &workingDir,
const QStringList &extraOptions = QStringList());

View File

@@ -514,12 +514,13 @@ static QString withUnusedMnemonic(QString string, const QList<QPushButton *> &ot
VcsBaseSubmitEditor::PromptSubmitResult
VcsBaseSubmitEditor::promptSubmit(VcsBasePluginPrivate *plugin,
bool *promptSetting,
bool *promptSettingOld,
bool forcePrompt,
bool canCommitOnFailure)
bool canCommitOnFailure,
BoolAspect *promptSetting)
{
bool dummySetting = false;
if (!promptSetting)
BoolAspect dummySetting;
if (!promptSetting && !promptSettingOld)
promptSetting = &dummySetting;
auto submitWidget = static_cast<SubmitEditorWidget *>(this->widget());
@@ -530,7 +531,8 @@ VcsBaseSubmitEditor::PromptSubmitResult
QString errorMessage;
const bool prompt = forcePrompt || *promptSetting;
const bool value = promptSettingOld ? *promptSettingOld : promptSetting->value();
const bool prompt = forcePrompt || value;
// Pop up a message depending on whether the check succeeded and the
// user wants to be prompted
@@ -552,9 +554,9 @@ VcsBaseSubmitEditor::PromptSubmitResult
}
mb.setText(message);
mb.setCheckBoxText(tr("Prompt to %1").arg(commitName.toLower()));
mb.setChecked(*promptSetting);
mb.setChecked(value);
// Provide check box to turn off prompt ONLY if it was not forced
mb.setCheckBoxVisible(*promptSetting && !forcePrompt);
mb.setCheckBoxVisible(value && !forcePrompt);
QDialogButtonBox::StandardButtons buttons = QDialogButtonBox::Close | QDialogButtonBox::Cancel;
if (canCommit || canCommitOnFailure)
buttons |= QDialogButtonBox::Ok;
@@ -570,8 +572,12 @@ VcsBaseSubmitEditor::PromptSubmitResult
commitButton->setText(withUnusedMnemonic(commitName,
{cancelButton, mb.button(QDialogButtonBox::Close)}));
}
if (mb.exec() == QDialog::Accepted)
*promptSetting = mb.isChecked();
if (mb.exec() == QDialog::Accepted) {
if (promptSettingOld)
*promptSettingOld = mb.isChecked();
else
promptSetting->setValue(mb.isChecked());
}
QAbstractButton *chosen = mb.clickedButton();
if (!chosen || chosen == cancelButton)
return SubmitCanceled;

View File

@@ -29,6 +29,8 @@
#include <coreplugin/editormanager/ieditor.h>
#include <utils/aspects.h>
#include <QAbstractItemView>
QT_BEGIN_NAMESPACE
@@ -85,9 +87,10 @@ public:
// prompt setting. The user can uncheck it from the message box.
enum PromptSubmitResult { SubmitConfirmed, SubmitCanceled, SubmitDiscarded };
PromptSubmitResult promptSubmit(VcsBasePluginPrivate *plugin,
bool *promptSetting,
bool *promptSettingOld,
bool forcePrompt = false,
bool canCommitOnFailure = true);
bool canCommitOnFailure = true,
Utils::BoolAspect *promptSetting = nullptr);
QAbstractItemView::SelectionMode fileListSelectionMode() const;
void setFileListSelectionMode(QAbstractItemView::SelectionMode sm);