aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs/utils/savedaction.cpp
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@nokia.com>2009-11-24 15:05:02 +0100
committerFriedemann Kleint <Friedemann.Kleint@nokia.com>2009-11-24 15:05:02 +0100
commit65e11062bb1671328e16736db9f2668ba87e5edb (patch)
treebd364c5c34790d52bdbf77a5950542ca522223f0 /src/libs/utils/savedaction.cpp
parentc49bed119986350efa577876efc855d6d5f0d293 (diff)
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
Diffstat (limited to 'src/libs/utils/savedaction.cpp')
-rw-r--r--src/libs/utils/savedaction.cpp33
1 files changed, 29 insertions, 4 deletions
diff --git a/src/libs/utils/savedaction.cpp b/src/libs/utils/savedaction.cpp
index e3833bebb6e..a4b94bcd7bc 100644
--- a/src/libs/utils/savedaction.cpp
+++ b/src/libs/utils/savedaction.cpp
@@ -42,6 +42,7 @@
#include <QtGui/QLineEdit>
#include <QtGui/QRadioButton>
#include <QtGui/QSpinBox>
+#include <QtGui/QGroupBox>
using namespace Utils;
@@ -238,19 +239,17 @@ QAction *SavedAction::updatedAction(const QString &text0)
\sa settingsKey(), settingsGroup(), writeSettings()
*/
-void SavedAction::readSettings(QSettings *settings)
+void SavedAction::readSettings(const QSettings *settings)
{
if (m_settingsGroup.isEmpty() || m_settingsKey.isEmpty())
return;
- settings->beginGroup(m_settingsGroup);
- QVariant var = settings->value(m_settingsKey, m_defaultValue);
+ QVariant var = settings->value(m_settingsGroup + QLatin1Char('/') + m_settingsKey, m_defaultValue);
// work around old ini files containing @Invalid() entries
if (isCheckable() && !var.isValid())
var = false;
setValue(var);
//qDebug() << "READING: " << var.isValid() << m_settingsKey << " -> " << m_value
// << " (default: " << m_defaultValue << ")" << var;
- settings->endGroup();
}
/*
@@ -314,6 +313,11 @@ void SavedAction::connectWidget(QWidget *widget, ApplyMode applyMode)
this, SLOT(pathChooserEditingFinished()));
connect(pathChooser, SIGNAL(browsingFinished()),
this, SLOT(pathChooserEditingFinished()));
+ } else if (QGroupBox *groupBox= qobject_cast<QGroupBox *>(widget)) {
+ if (!groupBox->isCheckable())
+ qDebug() << "connectWidget to non-checkable group box" << widget << toString();
+ groupBox->setChecked(m_value.toBool());
+ connect(groupBox, SIGNAL(toggled(bool)), this, SLOT(groupBoxToggled(bool)));
} else {
qDebug() << "Cannot connect widget " << widget << toString();
}
@@ -339,6 +343,8 @@ void SavedAction::apply(QSettings *s)
setValue(spinBox->value());
else if (PathChooser *pathChooser = qobject_cast<PathChooser *>(m_widget))
setValue(pathChooser->path());
+ else if (const QGroupBox *groupBox= qobject_cast<QGroupBox *>(m_widget))
+ setValue(groupBox->isChecked());
if (s)
writeSettings(s);
}
@@ -392,6 +398,12 @@ void SavedAction::pathChooserEditingFinished()
setValue(pathChooser->path());
}
+void SavedAction::groupBoxToggled(bool checked)
+{
+ if (m_applyMode == ImmediateApply)
+ setValue(QVariant(checked));
+}
+
void SavedAction::actionTriggered(bool)
{
if (isCheckable())
@@ -436,3 +448,16 @@ void SavedActionSet::finish()
action->disconnectWidget();
}
+QString SavedActionSet::searchKeyWords() const
+{
+ const QChar blank = QLatin1Char(' ');
+ QString rc;
+ foreach (SavedAction *action, m_list) {
+ if (!rc.isEmpty())
+ rc += blank;
+ rc += action->text();
+ }
+ rc.remove(QLatin1Char('&'));
+ return rc;
+}
+