Configuration support for desktop notifications.
[quassel.git] / src / qtui / settingspages / generalsettingspage.cpp
index 2462c63..6139ad5 100644 (file)
@@ -44,7 +44,11 @@ GeneralSettingsPage::GeneralSettingsPage(QWidget *parent)
   connect(ui.minimizeOnClose, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged()));
 
   connect(ui.animateTrayIcon, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged()));
-  connect(ui.displayPopupMessages, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged()));
+  connect(ui.bubbleBox, SIGNAL(toggled(bool)), this, SLOT(widgetHasChanged()));
+  connect(ui.desktopBox, SIGNAL(toggled(bool)), this, SLOT(widgetHasChanged()));
+  connect(ui.timeout_value, SIGNAL(valueChanged(int)), this, SLOT(widgetHasChanged()));
+  connect(ui.x_value, SIGNAL(valueChanged(int)), this, SLOT(widgetHasChanged()));
+  connect(ui.y_value, SIGNAL(valueChanged(int)), this, SLOT(widgetHasChanged()));
 
   connect(ui.userMessagesInStatusBuffer, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged()));
   connect(ui.userMessagesInQueryBuffer, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged()));
@@ -66,7 +70,11 @@ void GeneralSettingsPage::defaults() {
   ui.minimizeOnClose->setChecked(false);
 
   ui.animateTrayIcon->setChecked(true);
-  ui.displayPopupMessages->setChecked(true);
+  ui.bubbleBox->setChecked(true);
+  ui.desktopBox->setChecked(true);
+  ui.timeout_value->setValue(5000);
+  ui.x_value->setValue(0);
+  ui.y_value->setValue(0);
 
   ui.userMessagesInStatusBuffer->setChecked(true);
   ui.userMessagesInQueryBuffer->setChecked(false);
@@ -99,8 +107,17 @@ void GeneralSettingsPage::load() {
   settings["AnimateTrayIcon"] = uiSettings.value("AnimateTrayIcon", QVariant(true));
   ui.animateTrayIcon->setChecked(settings["AnimateTrayIcon"].toBool());
 
-  settings["DisplayPopupMessages"] = uiSettings.value("DisplayPopupMessages", QVariant(true));
-  ui.displayPopupMessages->setChecked(settings["DisplayPopupMessages"].toBool());
+  settings["NotificationBubble"] = uiSettings.value("NotificationBubble", QVariant(true));
+  ui.bubbleBox->setChecked(settings["NotificationBubble"].toBool());
+
+  settings["NotificationDesktop"] = uiSettings.value("NotificationDesktop", QVariant(true));
+  ui.desktopBox->setChecked(settings["NotificationDesktop"].toBool());
+  settings["NotificationDesktopTimeout"] = uiSettings.value("NotificationDesktopTimeout", QVariant(5000));
+  ui.timeout_value->setValue(settings["NotificationDesktopTimeout"].toInt());
+  settings["NotificationDesktopHintX"] = uiSettings.value("NotificationDesktopHintX", QVariant(0));
+  ui.x_value->setValue(settings["NotificationDesktopHintX"].toInt());
+  settings["NotificationDesktopHintY"] = uiSettings.value("NotificationDesktopHintY", QVariant(0));
+  ui.y_value->setValue(settings["NotificationDesktopHintY"].toInt());
 
   // bufferSettings:
   BufferSettings bufferSettings;
@@ -131,9 +148,18 @@ void GeneralSettingsPage::save() {
   uiSettings.setValue("MouseWheelChangesBuffers", ui.mouseWheelChangesBuffers->isChecked());
 
   uiSettings.setValue("AnimateTrayIcon", ui.animateTrayIcon->isChecked());
+//<<< HEAD:src/qtui/settingspages/generalsettingspage.cpp
   uiSettings.setValue("DisplayPopupMessages", ui.displayPopupMessages->isChecked());
   uiSettings.setValue("CompletionSuffix", ui.completionSuffix->text());
   
+//=======
+  uiSettings.setValue("NotificationBubble", ui.bubbleBox->isChecked());
+  uiSettings.setValue("NotificationDesktop", ui.desktopBox->isChecked());
+  uiSettings.setValue("NotificationDesktopTimeout", ui.timeout_value->value());
+  uiSettings.setValue("NotificationDesktopHintX", ui.x_value->value());
+  uiSettings.setValue("NotificationDesktopHintY", ui.y_value->value());
+
+//>>> Configuration support for desktop notifications.:src/qtui/settingspages/generalsettingspage.cpp
   BufferSettings bufferSettings;
   bufferSettings.setValue("UserMessagesInStatusBuffer", ui.userMessagesInStatusBuffer->isChecked());
   bufferSettings.setValue("UserMessagesInQueryBuffer", ui.userMessagesInQueryBuffer->isChecked());
@@ -156,7 +182,11 @@ bool GeneralSettingsPage::testHasChanged() {
   if(settings["MinimizeOnClose"].toBool() != ui.minimizeOnClose->isChecked()) return true;
 
   if(settings["AnimateTrayIcon"].toBool() != ui.animateTrayIcon->isChecked()) return true;
-  if(settings["DisplayPopupMessages"].toBool() != ui.displayPopupMessages->isChecked()) return true;
+  if(settings["NotificationBubble"].toBool() != ui.bubbleBox->isChecked()) return true;
+  if(settings["NotificationDesktop"].toBool() != ui.desktopBox->isChecked()) return true;
+  if(settings["NotificationDesktopTimeout"].toInt() != ui.timeout_value->value()) return true;
+  if(settings["NotificationDesktopHintX"].toInt() != ui.x_value->value()) return true;
+  if(settings["NotificationDesktopHintY"].toInt() != ui.y_value->value()) return true;
 
   if(settings["UserMessagesInStatusBuffer"].toBool() != ui.userMessagesInStatusBuffer->isChecked()) return true;
   if(settings["UserMessagesInQueryBuffer"].toBool() != ui.userMessagesInQueryBuffer->isChecked()) return true;