From: Dennis Schridde Date: Wed, 21 May 2008 13:03:30 +0000 (+0200) Subject: Configuration support for desktop notifications. X-Git-Tag: 0.3.0~236 X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=commitdiff_plain;h=65d88a7f8c37e549a259aba85c52b7916b89a17d Configuration support for desktop notifications. Add configuration support for org.freedesktop.Notifications (Currently only enable/disable, timeout, position hints.) Note: Names are not final yet. --- diff --git a/src/qtui/mainwin.cpp b/src/qtui/mainwin.cpp index abeeb488..ab47a30e 100644 --- a/src/qtui/mainwin.cpp +++ b/src/qtui/mainwin.cpp @@ -609,11 +609,13 @@ void MainWin::receiveMessage(const Message &msg) { UiSettings uiSettings; #ifndef SPUTDEV - if(uiSettings.value("DisplayPopupMessages", QVariant(true)).toBool()) { + bool displayBubble = uiSettings.value("NotificationBubble", QVariant(true)).toBool(); + bool displayDesktop = uiSettings.value("NotificationDesktop", QVariant(true)).toBool(); + if(displayBubble || displayDesktop) { // FIXME don't invoke style engine for this! QString text = QtUi::style()->styleString(Message::mircToInternal(msg.contents())).plainText; - displayTrayIconMessage(title, text); - sendDesktopNotification(title, text); + if (displayBubble) displayTrayIconMessage(title, text); + if (displayDesktop) sendDesktopNotification(title, text); } #endif if(uiSettings.value("AnimateTrayIcon", QVariant(true)).toBool()) { @@ -638,9 +640,10 @@ void MainWin::sendDesktopNotification(const QString &title, const QString &messa { QStringList actions; QMap hints; + UiSettings uiSettings; - hints["x"] = 100; // Standard hint: x location for the popup to show up - hints["y"] = 100; // Standard hint: y location for the popup to show up + hints["x"] = uiSettings.value("NotificationDesktopHintX", QVariant(0)).toInt(); // Standard hint: x location for the popup to show up + hints["y"] = uiSettings.value("NotificationDesktopHintY", QVariant(0)).toInt(); // Standard hint: y location for the popup to show up actions << "click" << "Click Me!"; @@ -652,7 +655,7 @@ void MainWin::sendDesktopNotification(const QString &title, const QString &messa QString("%1: %2:\n%2").arg(QTime::currentTime().toString()).arg(title).arg(message), // Body of the message to display actions, // Actions from which the user may choose hints, // Hints to the server displaying the message - 5000 // Timeout in milliseconds + uiSettings.value("NotificationDesktopTimeout", QVariant(5000)).toInt() // Timeout in milliseconds ); if (!reply.isValid()) diff --git a/src/qtui/settingspages/generalsettingspage.cpp b/src/qtui/settingspages/generalsettingspage.cpp index 2462c63e..6139ad5b 100644 --- a/src/qtui/settingspages/generalsettingspage.cpp +++ b/src/qtui/settingspages/generalsettingspage.cpp @@ -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; diff --git a/src/qtui/settingspages/generalsettingspage.ui b/src/qtui/settingspages/generalsettingspage.ui index e24ebd88..81554657 100644 --- a/src/qtui/settingspages/generalsettingspage.ui +++ b/src/qtui/settingspages/generalsettingspage.ui @@ -6,7 +6,7 @@ 0 0 453 - 632 + 800 @@ -64,20 +64,93 @@ User Notification: - - - - Animate tray icon + + + + Bubble - + true + + + + + + + Desktop + + + true + + + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + + + Timeout + + + + + + + -1 + + + 100000 + + + 5000 + + + + + + + X + + + + + + + Y + + + + + + + 10000 + + + + + + + 10000 + + + + + + + - + - Display pop-up messages + Animate tray icon true