X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fsettingsdlg.cpp;h=3945cd15556db3d65c7044301f86904a1bba73a9;hp=422f64dabae685702188ef06988b5dc8bb812a83;hb=4bfbd8dcbcb398302aaad0b6707c561760d7a7ac;hpb=e008cd12ef319c4b5f9fe5a8cc1524829551771d diff --git a/src/qtui/settingsdlg.cpp b/src/qtui/settingsdlg.cpp index 422f64da..3945cd15 100644 --- a/src/qtui/settingsdlg.cpp +++ b/src/qtui/settingsdlg.cpp @@ -23,8 +23,8 @@ SettingsDlg::SettingsDlg(QWidget *parent) : QDialog(parent) { ui.setupUi(this); - ui.settingsFrame->setWidgetResizable(true); - ui.settingsFrame->setWidget(ui.settingsStack); + //ui.settingsFrame->setWidgetResizable(true); + //ui.settingsFrame->setWidget(ui.settingsStack); ui.settingsTree->setRootIsDecorated(false); connect(ui.settingsTree, SIGNAL(itemSelectionChanged()), this, SLOT(itemSelected())); @@ -33,7 +33,7 @@ SettingsDlg::SettingsDlg(QWidget *parent) : QDialog(parent) { void SettingsDlg::registerSettingsPage(SettingsPage *sp) { - sp->setParent(this); + sp->setParent(ui.settingsStack); ui.settingsStack->addWidget(sp); QTreeWidgetItem *cat; @@ -43,8 +43,11 @@ void SettingsDlg::registerSettingsPage(SettingsPage *sp) { cat->setExpanded(true); cat->setFlags(Qt::ItemIsEnabled); } else cat = cats[0]; - QTreeWidgetItem *p = new QTreeWidgetItem(cat, QStringList(sp->title())); + new QTreeWidgetItem(cat, QStringList(sp->title())); pages[QString("%1$%2").arg(sp->category(), sp->title())] = sp; + updateGeometry(); + // TESTING + //selectPage(sp->category(), sp->title()); } void SettingsDlg::selectPage(const QString &cat, const QString &title) { @@ -63,28 +66,45 @@ void SettingsDlg::itemSelected() { QString cat = parent->text(0); QString title = items[0]->text(0); selectPage(cat, title); + ui.pageTitle->setText(title); } } void SettingsDlg::buttonClicked(QAbstractButton *button) { - switch(ui.buttonBox->buttonRole(button)) { - case QDialogButtonBox::AcceptRole: + switch(ui.buttonBox->standardButton(button)) { + case QDialogButtonBox::Ok: applyChanges(); accept(); break; - case QDialogButtonBox::ApplyRole: + case QDialogButtonBox::Apply: applyChanges(); break; - case QDialogButtonBox::RejectRole: + case QDialogButtonBox::Cancel: reject(); break; + case QDialogButtonBox::Reset: + reload(); + break; + case QDialogButtonBox::RestoreDefaults: + loadDefaults(); + break; default: break; } } void SettingsDlg::applyChanges() { - //SettingsInterface *sp = qobject_cast(ui.settingsStack->currentWidget()); - //if(sp) sp->applyChanges(); + foreach(SettingsPage *page, pages.values()) { + page->save(); + } } +void SettingsDlg::reload() { + SettingsPage *page = qobject_cast(ui.settingsStack->currentWidget()); + if(page) page->load(); +} + +void SettingsDlg::loadDefaults() { + SettingsPage *page = qobject_cast(ui.settingsStack->currentWidget()); + if(page) page->defaults(); +}