+SettingsPage *DesktopNotificationBackend::configWidget() const {
+ return _configWidget;
+}
+
+/***************************************************************************/
+
+DesktopNotificationBackend::ConfigWidget::ConfigWidget(QWidget *parent) : SettingsPage("Internal", "DesktopNotification", parent) {
+ ui.setupUi(this);
+
+ connect(ui.enabled, SIGNAL(toggled(bool)), SLOT(widgetChanged()));
+ connect(ui.useHints, SIGNAL(toggled(bool)), SLOT(widgetChanged()));
+ connect(ui.xHint, SIGNAL(valueChanged(int)), SLOT(widgetChanged()));
+ connect(ui.yHint, SIGNAL(valueChanged(int)), SLOT(widgetChanged()));
+ connect(ui.queueNotifications, SIGNAL(toggled(bool)), SLOT(widgetChanged()));
+ connect(ui.useTimeout, SIGNAL(toggled(bool)), SLOT(widgetChanged()));
+ connect(ui.timeout, SIGNAL(valueChanged(int)), SLOT(widgetChanged()));
+}
+
+void DesktopNotificationBackend::ConfigWidget::widgetChanged() {
+ bool changed =
+ enabled != ui.enabled->isChecked()
+ || useHints != ui.useHints->isChecked()
+ || xHint != ui.xHint->value()
+ || yHint != ui.yHint->value()
+ || queueNotifications != ui.queueNotifications->isChecked()
+ || timeout/1000 != ui.timeout->value()
+ || useTimeout != ui.useTimeout->isChecked();
+ if(changed != hasChanged()) setChangedState(changed);
+}
+
+bool DesktopNotificationBackend::ConfigWidget::hasDefaults() const {
+ return true;
+}
+
+void DesktopNotificationBackend::ConfigWidget::defaults() {
+ ui.enabled->setChecked(false);
+ ui.useTimeout->setChecked(true);
+ ui.timeout->setValue(10);
+ ui.useHints->setChecked(false);
+ ui.xHint->setValue(0);
+ ui.yHint->setValue(0);
+ ui.queueNotifications->setChecked(true);
+ widgetChanged();
+}
+
+void DesktopNotificationBackend::ConfigWidget::load() {
+ NotificationSettings s;
+ enabled = s.value("DesktopNotification/Enabled", false).toBool();
+ useTimeout = s.value("DesktopNotification/UseTimeout", true).toBool();
+ timeout = s.value("DesktopNotification/Timeout", 10).toInt();
+ useHints = s.value("DesktopNotification/UseHints", false).toBool();
+ xHint = s.value("DesktopNotification/XHint", 0).toInt();
+ yHint = s.value("DesktopNotification/YHint", 0).toInt();
+ queueNotifications = s.value("DesktopNotification/QueueNotifications", true).toBool();
+
+ ui.enabled->setChecked(enabled);
+ ui.useTimeout->setChecked(useTimeout);
+ ui.timeout->setValue(timeout/1000);
+ ui.useHints->setChecked(useHints);
+ ui.xHint->setValue(xHint);
+ ui.yHint->setValue(yHint);
+ ui.queueNotifications->setChecked(queueNotifications);
+
+ setChangedState(false);
+}