aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/perforce
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@nokia.com>2009-06-19 16:34:38 +0200
committerFriedemann Kleint <Friedemann.Kleint@nokia.com>2009-06-19 16:34:38 +0200
commit2508fa03a09391957933c5d7d83b9ab80cb4ca9e (patch)
tree919369920a429ada9e3f00b5d56e71c7d807ef6c /src/plugins/perforce
parente05505613a0c316fe15023766b54b085e67249d2 (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.cpp10
-rw-r--r--src/plugins/perforce/perforcesettings.cpp29
-rw-r--r--src/plugins/perforce/perforcesettings.h4
-rw-r--r--src/plugins/perforce/settingspage.cpp2
-rw-r--r--src/plugins/perforce/settingspage.ui58
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>