Mercurial: Polish settings dialog.

Task-number: QTCREATOR-26
This commit is contained in:
Friedemann Kleint
2009-11-24 15:00:55 +01:00
parent ce26dd25b1
commit c49bed1199
3 changed files with 150 additions and 98 deletions

View File

@@ -35,6 +35,8 @@
#include <utils/pathchooser.h> #include <utils/pathchooser.h>
#include <vcsbase/vcsbaseconstants.h> #include <vcsbase/vcsbaseconstants.h>
#include <QtCore/QTextStream>
using namespace Mercurial::Internal; using namespace Mercurial::Internal;
using namespace Mercurial; using namespace Mercurial;
@@ -68,6 +70,19 @@ void OptionsPageWidget::setSettings(const MercurialSettings &s)
m_ui.promptOnSubmitCheckBox->setChecked(s.prompt()); m_ui.promptOnSubmitCheckBox->setChecked(s.prompt());
} }
QString OptionsPageWidget::searchKeywords() const
{
QString rc;
QTextStream(&rc) << ' ' << m_ui.mercurialCommandLabel->text()
<< ' ' << m_ui.showLogEntriesLabel->text()
<< ' ' << m_ui.timeoutSecondsLabel->text()
<< ' ' << m_ui.promptOnSubmitCheckBox->text()
<< ' ' << m_ui.defaultUsernameLabel->text()
<< ' ' << m_ui.defaultEmailLabel->text();
rc.remove(QLatin1Char('&'));
return rc;
}
OptionsPage::OptionsPage() OptionsPage::OptionsPage()
{ {
} }
@@ -97,6 +112,8 @@ QWidget *OptionsPage::createPage(QWidget *parent)
if (!optionsPageWidget) if (!optionsPageWidget)
optionsPageWidget = new OptionsPageWidget(parent); optionsPageWidget = new OptionsPageWidget(parent);
optionsPageWidget->setSettings(MercurialPlugin::instance()->settings()); optionsPageWidget->setSettings(MercurialPlugin::instance()->settings());
if (m_searchKeywords.isEmpty())
m_searchKeywords = optionsPageWidget->searchKeywords();
return optionsPageWidget; return optionsPageWidget;
} }
@@ -114,3 +131,7 @@ void OptionsPage::apply()
} }
} }
bool OptionsPage::matches(const QString &s) const
{
return m_searchKeywords.contains(s, Qt::CaseInsensitive);
}

View File

@@ -50,6 +50,7 @@ public:
MercurialSettings settings() const; MercurialSettings settings() const;
void setSettings(const MercurialSettings &s); void setSettings(const MercurialSettings &s);
QString searchKeywords() const;
private: private:
Ui::OptionsPage m_ui; Ui::OptionsPage m_ui;
@@ -70,11 +71,13 @@ public:
QWidget *createPage(QWidget *parent); QWidget *createPage(QWidget *parent);
void apply(); void apply();
void finish() { } void finish() { }
bool matches(const QString &s) const;
signals: signals:
void settingsChanged(); void settingsChanged();
private: private:
QString m_searchKeywords;
QPointer<OptionsPageWidget> optionsPageWidget; QPointer<OptionsPageWidget> optionsPageWidget;
}; };

View File

@@ -6,91 +6,57 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>400</width> <width>392</width>
<height>300</height> <height>359</height>
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
<string>Form</string> <string>Form</string>
</property> </property>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<layout class="QVBoxLayout" name="verticalLayout"> <layout class="QVBoxLayout" name="verticalLayout">
<item> <item>
<layout class="QFormLayout" name="formLayout"> <widget class="QGroupBox" name="configgroupBox">
<property name="fieldGrowthPolicy"> <property name="title">
<enum>QFormLayout::AllNonFixedFieldsGrow</enum> <string>Configuration</string>
</property> </property>
<layout class="QFormLayout" name="formLayout_3">
<item row="0" column="0"> <item row="0" column="0">
<widget class="QLabel" name="mercurialCommandLabel"> <widget class="QLabel" name="mercurialCommandLabel">
<property name="text"> <property name="text">
<string>Mercurial Command:</string> <string>Command:</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="0" column="1"> <item row="0" column="1">
<widget class="Utils::PathChooser" name="commandChooser" native="true"/> <widget class="Utils::PathChooser" name="commandChooser"/>
</item> </item>
<item row="3" column="0"> </layout>
<widget class="QLabel" name="showLogEntriesLabel">
<property name="text">
<string>Show Log Entries:</string>
</property>
</widget> </widget>
</item> </item>
<item row="3" column="1"> <item>
<widget class="QSpinBox" name="logEntriesCount"> <widget class="QGroupBox" name="userGroupBox">
<property name="toolTip"> <property name="title">
<string>The number of recent commit logs to show, choose 0 to see all enteries</string> <string>User</string>
</property> </property>
</widget> <layout class="QFormLayout" name="formLayout">
</item> <item row="0" column="0">
<item row="4" column="0">
<widget class="QLabel" name="timeoutSecondsLabel">
<property name="text">
<string>Timeout (Seconds):</string>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QSpinBox" name="timeout">
<property name="value">
<number>30</number>
</property>
</widget>
</item>
<item row="5" column="0">
<widget class="QLabel" name="promptOnSubmitLabel">
<property name="text">
<string>Prompt On Submit</string>
</property>
</widget>
</item>
<item row="5" column="1">
<widget class="QCheckBox" name="promptOnSubmitCheckBox">
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="defaultUsernameLabel"> <widget class="QLabel" name="defaultUsernameLabel">
<property name="toolTip"> <property name="toolTip">
<string>Username to use by default on commit.</string> <string>Username to use by default on commit.</string>
</property> </property>
<property name="text"> <property name="text">
<string>Default Username:</string> <string>Default username:</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="1" column="1"> <item row="0" column="1">
<widget class="QLineEdit" name="defaultUsernameLineEdit"> <widget class="QLineEdit" name="defaultUsernameLineEdit">
<property name="toolTip"> <property name="toolTip">
<string>Username to use by default on commit.</string> <string>Username to use by default on commit.</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="2" column="0"> <item row="1" column="0">
<widget class="QLabel" name="defaultEmailLabel"> <widget class="QLabel" name="defaultEmailLabel">
<property name="toolTip"> <property name="toolTip">
<string>Email to use by default on commit.</string> <string>Email to use by default on commit.</string>
@@ -100,7 +66,7 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="2" column="1"> <item row="1" column="1">
<widget class="QLineEdit" name="defaultEmailLineEdit"> <widget class="QLineEdit" name="defaultEmailLineEdit">
<property name="toolTip"> <property name="toolTip">
<string>Email to use by default on commit.</string> <string>Email to use by default on commit.</string>
@@ -108,8 +74,70 @@
</widget> </widget>
</item> </item>
</layout> </layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="miscGroupBox">
<property name="title">
<string>Miscellaneous</string>
</property>
<layout class="QFormLayout" name="formLayout_2">
<item row="0" column="0">
<widget class="QLabel" name="showLogEntriesLabel">
<property name="text">
<string>Show log entries:</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QSpinBox" name="logEntriesCount">
<property name="toolTip">
<string>The number of recent commit logs to show, choose 0 to see all enteries</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="timeoutSecondsLabel">
<property name="text">
<string>Timeout:</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QSpinBox" name="timeout">
<property name="suffix">
<string>s</string>
</property>
<property name="value">
<number>30</number>
</property>
</widget>
</item>
<item row="2" column="0" colspan="2">
<widget class="QCheckBox" name="promptOnSubmitCheckBox">
<property name="text">
<string>Prompt on submit</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item> </item>
</layout> </layout>
</widget>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item> </item>
</layout> </layout>
</widget> </widget>