Polish the settings dialog.

Add a title label to the pages. Use QGroupBoxes throughout.
Extend SavedAction to work with checkable QGroupBoxes. Polish UI files,
use common layout for VCS plugins. Performance: Apply only visited
settings pages. Add search keywords.

Task-number: QTCREATOR-26
This commit is contained in:
Friedemann Kleint
2009-11-24 15:05:02 +01:00
parent c49bed1199
commit 65e11062bb
68 changed files with 1444 additions and 1295 deletions

View File

@@ -75,7 +75,8 @@ QWidget *DocSettingsPage::createPage(QWidget *parent)
m_ui.docsListWidget->addItems(m_helpEngine->registeredDocumentations());
m_registeredDocs = false;
m_removeDocs.clear();
if (m_searchKeywords.isEmpty())
m_searchKeywords = m_ui.groupBox->title();
return w;
}
@@ -126,6 +127,11 @@ void DocSettingsPage::apply()
emit dialogAccepted();
}
bool DocSettingsPage::matches(const QString &s) const
{
return m_searchKeywords.contains(s, Qt::CaseInsensitive);
}
bool DocSettingsPage::applyChanges()
{
QStringList::const_iterator it = m_removeDocs.constBegin();

View File

@@ -56,6 +56,7 @@ public:
QWidget *createPage(QWidget *parent);
void apply();
void finish() { }
virtual bool matches(const QString &s) const;
bool applyChanges();
@@ -72,6 +73,7 @@ private:
bool m_registeredDocs;
QStringList m_removeDocs;
Ui::DocSettingsPage m_ui;
QString m_searchKeywords;
};
} // namespace Help

View File

@@ -78,6 +78,9 @@ QWidget *FilterSettingsPage::createPage(QWidget *parent)
SLOT(removeFilter()));
updateFilterPage();
if (m_searchKeywords.isEmpty())
m_searchKeywords = m_ui.filterGroupBox->title() + QLatin1Char(' ') + m_ui.attributesGroupBox->title();
return m_currentPage;
}
@@ -220,3 +223,10 @@ bool FilterSettingsPage::applyChanges()
}
return false;
}
bool FilterSettingsPage::matches(const QString &s) const
{
return m_searchKeywords.contains(s, Qt::CaseInsensitive);
}

View File

@@ -55,6 +55,7 @@ public:
QWidget *createPage(QWidget *parent);
void apply();
void finish() { }
virtual bool matches(const QString &s) const;
bool applyChanges();
@@ -72,6 +73,7 @@ private:
QMap<QString, QStringList> m_filterMap;
QStringList m_removedFilters;
QWidget *m_currentPage;
QString m_searchKeywords;
};
} // namespace Help

View File

@@ -12,9 +12,9 @@
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<layout class="QHBoxLayout" name="horizontalLayout_3">
<layout class="QHBoxLayout" name="mainHorizontalLayout">
<item>
<widget class="QGroupBox" name="groupBox">
<widget class="QGroupBox" name="filterGroupBox">
<property name="title">
<string>Filters</string>
</property>
@@ -26,7 +26,7 @@
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBox_2">
<widget class="QGroupBox" name="attributesGroupBox">
<property name="title">
<string>Attributes</string>
</property>
@@ -55,7 +55,7 @@
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<layout class="QHBoxLayout" name="buttonHorizontalLayout">
<item>
<widget class="QPushButton" name="filterAddButton">
<property name="text">
@@ -71,7 +71,7 @@
</widget>
</item>
<item>
<spacer name="horizontalSpacer">
<spacer name="buttonHorizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>

View File

@@ -127,6 +127,12 @@ QWidget *GeneralSettingsPage::createPage(QWidget *parent)
connect(m_ui.importButton, SIGNAL(clicked()), this, SLOT(importBookmarks()));
connect(m_ui.exportButton, SIGNAL(clicked()), this, SLOT(exportBookmarks()));
if (m_searchKeywords.isEmpty()) {
QTextStream(&m_searchKeywords) << ' ' << m_ui.contextHelpLabel->text()
<< ' ' << m_ui.startPageLabel->text() << ' ' << m_ui.homePageLabel->text()
<< ' ' << m_ui.bookmarkGroupBox->title();
m_searchKeywords.remove(QLatin1Char('&'));
}
return m_currentPage;
}
@@ -324,3 +330,8 @@ int GeneralSettingsPage::closestPointSizeIndex(int desiredPointSize) const
}
return closestIndex;
}
bool GeneralSettingsPage::matches(const QString &s) const
{
return m_searchKeywords.contains(s, Qt::CaseInsensitive);
}

View File

@@ -63,6 +63,7 @@ public:
QWidget *createPage(QWidget *parent);
void apply();
void finish();
virtual bool matches(const QString &s) const;
signals:
void fontChanged();
@@ -90,6 +91,7 @@ private:
QFontDatabase fontDatabase;
Ui::GeneralSettingsPage m_ui;
QString m_searchKeywords;
};
} // Internal

View File

@@ -2,26 +2,18 @@
<ui version="4.0">
<class>GeneralSettingsPage</class>
<widget class="QWidget" name="GeneralSettingsPage">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>593</width>
<height>371</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<widget class="QGroupBox" name="groupBox">
<widget class="QGroupBox" name="fontGroupBox">
<property name="title">
<string>Font</string>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<widget class="QLabel" name="label_5">
<widget class="QLabel" name="familyLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
@@ -53,7 +45,7 @@
</spacer>
</item>
<item>
<widget class="QLabel" name="label_7">
<widget class="QLabel" name="styleLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
@@ -92,7 +84,7 @@
</spacer>
</item>
<item>
<widget class="QLabel" name="label_6">
<widget class="QLabel" name="sizeLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
@@ -131,7 +123,7 @@
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBox_2">
<widget class="QGroupBox" name="startupGroupBox">
<property name="enabled">
<bool>true</bool>
</property>
@@ -140,9 +132,9 @@
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<layout class="QGridLayout" name="gridLayout">
<layout class="QFormLayout" name="startupFormLayout">
<item row="0" column="0">
<widget class="QLabel" name="label_3">
<widget class="QLabel" name="contextHelpLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
@@ -179,21 +171,8 @@
</item>
</widget>
</item>
<item row="0" column="2">
<spacer name="horizontalSpacer_3">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_2">
<widget class="QLabel" name="startPageLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
@@ -230,18 +209,14 @@
</item>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_4">
<item>
<widget class="QLabel" name="label">
<item row="2" column="0">
<widget class="QLabel" name="homePageLabel">
<property name="text">
<string>Home Page:</string>
</property>
</widget>
</item>
<item>
<item row="2" column="1">
<widget class="QLineEdit" name="homePageLineEdit"/>
</item>
</layout>
@@ -288,13 +263,13 @@
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBox_3">
<widget class="QGroupBox" name="bookmarkGroupBox">
<property name="title">
<string>Help Bookmarks</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<layout class="QHBoxLayout" name="bookmarkHorizontalLayout">
<item>
<spacer name="horizontalSpacer_4">
<property name="orientation">
@@ -363,9 +338,6 @@
</disabled>
</palette>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
</layout>
@@ -376,10 +348,13 @@
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::MinimumExpanding</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>126</height>
<width>0</width>
<height>0</height>
</size>
</property>
</spacer>