forked from qt-creator/qt-creator
Make the "prompt to submit" setting a per-plugin one.
Provide a checkable message box to be able to turn prompting off when asked.
This commit is contained in:
@@ -35,7 +35,6 @@
|
||||
static const char *settingsGroupC = "VCS";
|
||||
static const char *nickNameMailMapKeyC = "NickNameMailMap";
|
||||
static const char *nickNameFieldListFileKeyC = "NickNameFieldListFile";
|
||||
static const char *promptForSubmitKeyC = "PromptForSubmit";
|
||||
static const char *submitMessageCheckScriptKeyC = "SubmitMessageCheckScript";
|
||||
static const char *lineWrapKeyC = "LineWrap";
|
||||
static const char *lineWrapWidthKeyC = "LineWrapWidth";
|
||||
@@ -47,7 +46,6 @@ namespace VCSBase {
|
||||
namespace Internal {
|
||||
|
||||
VCSBaseSettings::VCSBaseSettings() :
|
||||
promptForSubmit(true),
|
||||
lineWrap(lineWrapDefault),
|
||||
lineWrapWidth(lineWrapWidthDefault)
|
||||
{
|
||||
@@ -59,7 +57,6 @@ void VCSBaseSettings::toSettings(QSettings *s) const
|
||||
s->setValue(QLatin1String(nickNameMailMapKeyC), nickNameMailMap);
|
||||
s->setValue(QLatin1String(nickNameFieldListFileKeyC), nickNameFieldListFile);
|
||||
s->setValue(QLatin1String(submitMessageCheckScriptKeyC), submitMessageCheckScript);
|
||||
s->setValue(QLatin1String(promptForSubmitKeyC), promptForSubmit);
|
||||
s->setValue(QLatin1String(lineWrapKeyC), lineWrap);
|
||||
s->setValue(QLatin1String(lineWrapWidthKeyC), lineWrapWidth);
|
||||
s->endGroup();
|
||||
@@ -71,7 +68,6 @@ void VCSBaseSettings::fromSettings(QSettings *s)
|
||||
nickNameMailMap = s->value(QLatin1String(nickNameMailMapKeyC), QString()).toString();
|
||||
nickNameFieldListFile = s->value(QLatin1String(nickNameFieldListFileKeyC), QString()).toString();
|
||||
submitMessageCheckScript = s->value(QLatin1String(submitMessageCheckScriptKeyC), QString()).toString();
|
||||
promptForSubmit = s->value(QLatin1String(promptForSubmitKeyC), QVariant(true)).toBool();
|
||||
lineWrap = s->value(QLatin1String(lineWrapKeyC), lineWrapDefault).toBool();
|
||||
lineWrapWidth = s->value(QLatin1String(lineWrapWidthKeyC), lineWrapWidthDefault).toInt();
|
||||
s->endGroup();
|
||||
@@ -79,8 +75,7 @@ void VCSBaseSettings::fromSettings(QSettings *s)
|
||||
|
||||
bool VCSBaseSettings::equals(const VCSBaseSettings &rhs) const
|
||||
{
|
||||
return promptForSubmit == rhs.promptForSubmit
|
||||
&& lineWrap == rhs.lineWrap
|
||||
return lineWrap == rhs.lineWrap
|
||||
&& lineWrapWidth == rhs.lineWrapWidth
|
||||
&& nickNameMailMap == rhs.nickNameMailMap
|
||||
&& nickNameFieldListFile == rhs.nickNameFieldListFile
|
||||
@@ -89,8 +84,7 @@ bool VCSBaseSettings::equals(const VCSBaseSettings &rhs) const
|
||||
|
||||
QDebug operator<<(QDebug d,const VCSBaseSettings& s)
|
||||
{
|
||||
d.nospace() << "promptForSubmit=" << s.promptForSubmit
|
||||
<< " lineWrap=" << s.lineWrap
|
||||
d.nospace() << " lineWrap=" << s.lineWrap
|
||||
<< " lineWrapWidth=" << s.lineWrapWidth
|
||||
<< " nickNameMailMap='" << s.nickNameMailMap
|
||||
<< "' nickNameFieldListFile='" << s.nickNameFieldListFile
|
||||
|
||||
@@ -45,8 +45,6 @@ namespace Internal {
|
||||
struct VCSBaseSettings {
|
||||
VCSBaseSettings();
|
||||
|
||||
bool promptForSubmit;
|
||||
|
||||
QString nickNameMailMap;
|
||||
QString nickNameFieldListFile;
|
||||
|
||||
|
||||
@@ -66,7 +66,6 @@ VCSBaseSettings VCSBaseSettingsWidget::settings() const
|
||||
rc.nickNameMailMap = m_ui->nickNameMailMapChooser->path();
|
||||
rc.nickNameFieldListFile = m_ui->nickNameFieldsFileChooser->path();
|
||||
rc.submitMessageCheckScript = m_ui->submitMessageCheckScriptChooser->path();
|
||||
rc.promptForSubmit = m_ui->promptForSubmitCheckBox->isChecked();
|
||||
rc.lineWrap= m_ui->lineWrapCheckBox->isChecked();
|
||||
rc.lineWrapWidth = m_ui->lineWrapSpinBox->value();
|
||||
return rc;
|
||||
@@ -77,7 +76,6 @@ void VCSBaseSettingsWidget::setSettings(const VCSBaseSettings &s)
|
||||
m_ui->nickNameMailMapChooser->setPath(s.nickNameMailMap);
|
||||
m_ui->nickNameFieldsFileChooser->setPath(s.nickNameFieldListFile);
|
||||
m_ui->submitMessageCheckScriptChooser->setPath(s.submitMessageCheckScript);
|
||||
m_ui->promptForSubmitCheckBox->setChecked(s.promptForSubmit);
|
||||
m_ui->lineWrapCheckBox->setChecked(s.lineWrap);
|
||||
m_ui->lineWrapSpinBox->setValue(s.lineWrapWidth);
|
||||
}
|
||||
|
||||
@@ -21,13 +21,6 @@
|
||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<widget class="QCheckBox" name="promptForSubmitCheckBox">
|
||||
<property name="text">
|
||||
<string>Prompt to submit</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
#include <coreplugin/uniqueidmanager.h>
|
||||
#include <coreplugin/actionmanager/actionmanager.h>
|
||||
#include <utils/submiteditorwidget.h>
|
||||
#include <utils/checkablemessagebox.h>
|
||||
#include <utils/submitfieldwidget.h>
|
||||
#include <find/basetextfind.h>
|
||||
#include <texteditor/fontsettings.h>
|
||||
@@ -433,12 +434,13 @@ VCSBaseSubmitEditor::PromptSubmitResult
|
||||
VCSBaseSubmitEditor::promptSubmit(const QString &title,
|
||||
const QString &question,
|
||||
const QString &checkFailureQuestion,
|
||||
bool *promptSetting,
|
||||
bool forcePrompt) const
|
||||
{
|
||||
QString errorMessage;
|
||||
QMessageBox::StandardButton answer = QMessageBox::Yes;
|
||||
|
||||
const bool prompt = forcePrompt || Internal::VCSBasePlugin::instance()->settings().promptForSubmit;
|
||||
const bool prompt = forcePrompt || *promptSetting;
|
||||
|
||||
QWidget *parent = Core::ICore::instance()->mainWindow();
|
||||
// Pop up a message depending on whether the check succeeded and the
|
||||
@@ -446,9 +448,19 @@ VCSBaseSubmitEditor::PromptSubmitResult
|
||||
if (checkSubmitMessage(&errorMessage)) {
|
||||
// Check ok, do prompt?
|
||||
if (prompt) {
|
||||
answer = QMessageBox::question(parent, title, question,
|
||||
QMessageBox::Yes|QMessageBox::No|QMessageBox::Cancel,
|
||||
QMessageBox::Yes);
|
||||
// Provide check box to turn off prompt ONLY if it was not forced
|
||||
if (*promptSetting && !forcePrompt) {
|
||||
const QDialogButtonBox::StandardButton danswer =
|
||||
Core::Utils::CheckableMessageBox::question(parent, title, question,
|
||||
tr("Prompt to submit"), promptSetting,
|
||||
QDialogButtonBox::Yes|QDialogButtonBox::No|QDialogButtonBox::Cancel,
|
||||
QDialogButtonBox::Yes);
|
||||
answer = Core::Utils::CheckableMessageBox::dialogButtonBoxToMessageBoxButton(danswer);
|
||||
} else {
|
||||
answer = QMessageBox::question(parent, title, question,
|
||||
QMessageBox::Yes|QMessageBox::No|QMessageBox::Cancel,
|
||||
QMessageBox::Yes);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// Check failed.
|
||||
|
||||
@@ -112,9 +112,12 @@ public:
|
||||
// Runs checks on the message and prompts according to configuration.
|
||||
// Force prompt should be true if it is invoked by closing an editor
|
||||
// as opposed to invoking the "Submit" button.
|
||||
// 'promptSetting' points to a bool variable containing the plugin's
|
||||
// prompt setting. The user can uncheck it from the message box.
|
||||
enum PromptSubmitResult { SubmitConfirmed, SubmitCanceled, SubmitDiscarded };
|
||||
PromptSubmitResult promptSubmit(const QString &title, const QString &question,
|
||||
const QString &checkFailureQuestion,
|
||||
bool *promptSetting,
|
||||
bool forcePrompt = false) const;
|
||||
|
||||
int fileNameColumn() const;
|
||||
|
||||
Reference in New Issue
Block a user