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()));
void SettingsDlg::registerSettingsPage(SettingsPage *sp) {
- sp->setParent(this);
+ sp->setParent(ui.settingsStack);
ui.settingsStack->addWidget(sp);
QTreeWidgetItem *cat;
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) {
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<SettingsInterface *>(ui.settingsStack->currentWidget());
- //if(sp) sp->applyChanges();
+ foreach(SettingsPage *page, pages.values()) {
+ page->save();
+ }
}
+void SettingsDlg::reload() {
+ SettingsPage *page = qobject_cast<SettingsPage *>(ui.settingsStack->currentWidget());
+ if(page) page->load();
+}
+
+void SettingsDlg::loadDefaults() {
+ SettingsPage *page = qobject_cast<SettingsPage *>(ui.settingsStack->currentWidget());
+ if(page) page->defaults();
+}