diff options
author | Friedemann Kleint <Friedemann.Kleint@nokia.com> | 2009-06-19 16:34:38 +0200 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@nokia.com> | 2009-06-19 16:34:38 +0200 |
commit | 2508fa03a09391957933c5d7d83b9ab80cb4ca9e (patch) | |
tree | 919369920a429ada9e3f00b5d56e71c7d807ef6c /src/plugins/perforce | |
parent | e05505613a0c316fe15023766b54b085e67249d2 (diff) |
Make the "prompt to submit" setting a per-plugin one.
Provide a checkable message box to be able to turn
prompting off when asked.
Diffstat (limited to 'src/plugins/perforce')
-rw-r--r-- | src/plugins/perforce/perforceplugin.cpp | 10 | ||||
-rw-r--r-- | src/plugins/perforce/perforcesettings.cpp | 29 | ||||
-rw-r--r-- | src/plugins/perforce/perforcesettings.h | 4 | ||||
-rw-r--r-- | src/plugins/perforce/settingspage.cpp | 2 | ||||
-rw-r--r-- | src/plugins/perforce/settingspage.ui | 58 |
5 files changed, 77 insertions, 26 deletions
diff --git a/src/plugins/perforce/perforceplugin.cpp b/src/plugins/perforce/perforceplugin.cpp index 92ac232b83..f40ab02a31 100644 --- a/src/plugins/perforce/perforceplugin.cpp +++ b/src/plugins/perforce/perforceplugin.cpp @@ -930,20 +930,26 @@ bool PerforcePlugin::editorAboutToClose(Core::IEditor *editor) if (!perforceEditor) return true; QFileInfo editorFile(fileIFace->fileName()); - QFileInfo changeFile(m_changeTmpFile->fileName()); + QFileInfo changeFile(m_changeTmpFile->fileName()); if (editorFile.absoluteFilePath() == changeFile.absoluteFilePath()) { // Prompt the user. Force a prompt unless submit was actually invoked (that // is, the editor was closed or shutdown). + bool wantsPrompt = m_settings.promptToSubmit(); const VCSBase::VCSBaseSubmitEditor::PromptSubmitResult answer = perforceEditor->promptSubmit(tr("Closing p4 Editor"), tr("Do you want to submit this change list?"), tr("The commit message check failed. Do you want to submit this change list"), - !m_submitActionTriggered); + &wantsPrompt, !m_submitActionTriggered); m_submitActionTriggered = false; if (answer == VCSBase::VCSBaseSubmitEditor::SubmitCanceled) return false; + // Set without triggering the checking mechanism + if (wantsPrompt != m_settings.promptToSubmit()) { + m_settings.setPromptToSubmit(wantsPrompt); + m_settings.toSettings(Core::ICore::instance()->settings()); + } core->fileManager()->blockFileChange(fileIFace); fileIFace->save(); core->fileManager()->unblockFileChange(fileIFace); diff --git a/src/plugins/perforce/perforcesettings.cpp b/src/plugins/perforce/perforcesettings.cpp index 78854dff4c..8ee12f218b 100644 --- a/src/plugins/perforce/perforcesettings.cpp +++ b/src/plugins/perforce/perforcesettings.cpp @@ -44,6 +44,7 @@ static const char *defaultKeyC = "Default"; static const char *portKeyC = "Port"; static const char *clientKeyC = "Client"; static const char *userKeyC = "User"; +static const char *promptToSubmitKeyC = "PromptForSubmit"; static QString defaultCommand() { @@ -59,7 +60,8 @@ namespace Perforce { namespace Internal { Settings::Settings() : - defaultEnv(true) + defaultEnv(true), + promptToSubmit(true) { } @@ -67,7 +69,8 @@ bool Settings::equals(const Settings &rhs) const { return defaultEnv == rhs.defaultEnv && p4Command == rhs.p4Command && p4Port == rhs.p4Port - && p4Client == rhs.p4Client && p4User == rhs.p4User; + && p4Client == rhs.p4Client && p4User == rhs.p4User + && promptToSubmit == rhs.promptToSubmit; }; QStringList Settings::basicP4Args() const @@ -188,6 +191,7 @@ void PerforceSettings::fromSettings(QSettings *settings) m_settings.p4Port = settings->value(QLatin1String(portKeyC), QString()).toString(); m_settings.p4Client = settings->value(QLatin1String(clientKeyC), QString()).toString(); m_settings.p4User = settings->value(QLatin1String(userKeyC), QString()).toString(); + m_settings.promptToSubmit = settings->value(QLatin1String(promptToSubmitKeyC), true).toBool(); settings->endGroup(); m_mutex.unlock(); @@ -198,11 +202,12 @@ void PerforceSettings::toSettings(QSettings *settings) const { m_mutex.lock(); settings->beginGroup(QLatin1String(groupC)); - settings->setValue(commandKeyC, m_settings.p4Command); - settings->setValue(defaultKeyC, m_settings.defaultEnv); - settings->setValue(portKeyC, m_settings.p4Port); - settings->setValue(clientKeyC, m_settings.p4Client); - settings->setValue(userKeyC, m_settings.p4User); + settings->setValue(QLatin1String(commandKeyC), m_settings.p4Command); + settings->setValue(QLatin1String(defaultKeyC), m_settings.defaultEnv); + settings->setValue(QLatin1String(portKeyC), m_settings.p4Port); + settings->setValue(QLatin1String(clientKeyC), m_settings.p4Client); + settings->setValue(QLatin1String(userKeyC), m_settings.p4User); + settings->setValue(QLatin1String(promptToSubmitKeyC), m_settings.promptToSubmit); settings->endGroup(); m_mutex.unlock(); } @@ -249,6 +254,16 @@ bool PerforceSettings::defaultEnv() const return m_settings.defaultEnv; } +bool PerforceSettings::promptToSubmit() const +{ + return m_settings.promptToSubmit; +} + +void PerforceSettings::setPromptToSubmit(bool p) +{ + m_settings.promptToSubmit = p; +} + QString PerforceSettings::errorString() const { m_mutex.lock(); diff --git a/src/plugins/perforce/perforcesettings.h b/src/plugins/perforce/perforcesettings.h index 8eabb32cdd..ab02ae9c2a 100644 --- a/src/plugins/perforce/perforcesettings.h +++ b/src/plugins/perforce/perforcesettings.h @@ -54,6 +54,7 @@ struct Settings { QString p4User; QString errorString; bool defaultEnv; + bool promptToSubmit; }; inline bool operator==(const Settings &s1, const Settings &s2) { return s1.equals(s2); } @@ -81,6 +82,9 @@ public: QString p4Client() const; QString p4User() const; bool defaultEnv() const; + bool promptToSubmit() const; + void setPromptToSubmit(bool p); + QStringList basicP4Args() const; // Error code of last check diff --git a/src/plugins/perforce/settingspage.cpp b/src/plugins/perforce/settingspage.cpp index cc0c866786..126a691683 100644 --- a/src/plugins/perforce/settingspage.cpp +++ b/src/plugins/perforce/settingspage.cpp @@ -70,6 +70,7 @@ Settings SettingsPageWidget::settings() const settings.p4Port = m_ui.portLineEdit->text(); settings.p4User = m_ui.userLineEdit->text(); settings.p4Client= m_ui.clientLineEdit->text(); + settings.promptToSubmit = m_ui.promptToSubmitCheckBox->isChecked(); return settings; } @@ -80,6 +81,7 @@ void SettingsPageWidget::setSettings(const PerforceSettings &s) m_ui.portLineEdit->setText(s.p4Port()); m_ui.clientLineEdit->setText(s.p4Client()); m_ui.userLineEdit->setText(s.p4User()); + m_ui.promptToSubmitCheckBox->setChecked(s.promptToSubmit()); const QString errorString = s.errorString(); setStatusText(errorString.isEmpty(), errorString); } diff --git a/src/plugins/perforce/settingspage.ui b/src/plugins/perforce/settingspage.ui index 4ea88a436d..5eccd25c95 100644 --- a/src/plugins/perforce/settingspage.ui +++ b/src/plugins/perforce/settingspage.ui @@ -6,39 +6,63 @@ <rect> <x>0</x> <y>0</y> - <width>408</width> + <width>423</width> <height>463</height> </rect> </property> <layout class="QVBoxLayout" name="verticalLayout"> <item> - <layout class="QHBoxLayout"> - <property name="spacing"> - <number>6</number> + <layout class="QFormLayout" name="formLayout_2"> + <item row="0" column="0" colspan="2"> + <widget class="QCheckBox" name="promptToSubmitCheckBox"> + <property name="text"> + <string>Prompt to submit</string> + </property> + </widget> + </item> + </layout> + </item> + <item> + <spacer name="verticalSpacer_2"> + <property name="orientation"> + <enum>Qt::Vertical</enum> </property> - <property name="margin"> - <number>0</number> + <property name="sizeType"> + <enum>QSizePolicy::Fixed</enum> </property> - <item> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item> + <layout class="QFormLayout" name="formLayout"> + <property name="fieldGrowthPolicy"> + <enum>QFormLayout::ExpandingFieldsGrow</enum> + </property> + <item row="0" column="0"> <widget class="QLabel" name="commandLabel"> <property name="text"> <string>P4 Command:</string> </property> </widget> </item> - <item> - <widget class="Core::Utils::PathChooser" name="pathChooser" native="true"/> + <item row="0" column="1"> + <widget class="Core::Utils::PathChooser" name="pathChooser"/> + </item> + <item row="1" column="0" colspan="2"> + <widget class="QCheckBox" name="defaultCheckBox"> + <property name="text"> + <string>Use default P4 environment variables</string> + </property> + </widget> </item> </layout> </item> <item> - <widget class="QCheckBox" name="defaultCheckBox"> - <property name="text"> - <string>Use default P4 environment variables</string> - </property> - </widget> - </item> - <item> <widget class="QGroupBox" name="groupBox"> <property name="enabled"> <bool>true</bool> @@ -129,7 +153,7 @@ <item> <widget class="QLabel" name="errorLabel"> <property name="text"> - <string extracomment="Placeholder" notr="true">errorLabel: blah blubb</string> + <string notr="true" extracomment="Placeholder">errorLabel: blah blubb</string> </property> </widget> </item> |