-void SettingsDlg::applyChanges() {
- //SettingsInterface *sp = qobject_cast<SettingsInterface *>(ui.settingsStack->currentWidget());
- //if(sp) sp->applyChanges();
+bool SettingsDlg::applyChanges() {
+ if(!currentPage()) return false;
+ if(currentPage()->aboutToSave()) {
+ currentPage()->save();
+ return true;
+ }
+ return false;
+}
+
+void SettingsDlg::undoChanges() {
+ if(currentPage()) {
+ currentPage()->load();
+ }
+}
+
+void SettingsDlg::reload() {
+ if(!currentPage()) return;
+ int ret = QMessageBox::question(this, tr("Reload Settings"), tr("Do you like to reload the settings, undoing your changes on this page?"),
+ QMessageBox::Yes|QMessageBox::No, QMessageBox::No);
+ if(ret == QMessageBox::Yes) {
+ currentPage()->load();
+ }
+}
+
+void SettingsDlg::loadDefaults() {
+ if(!currentPage()) return;
+ int ret = QMessageBox::question(this, tr("Restore Defaults"), tr("Do you like to restore the default values for this page?"),
+ QMessageBox::RestoreDefaults|QMessageBox::Cancel, QMessageBox::Cancel);
+ if(ret == QMessageBox::RestoreDefaults) {
+ currentPage()->defaults();
+ }