1
1
/***************************************************************************
2
* Copyright (C) 2005-09 by the Quassel Project *
3
* devel@quassel-irc.org *
5
* This program is free software; you can redistribute it and/or modify *
6
* it under the terms of the GNU General Public License as published by *
7
* the Free Software Foundation; either version 2 of the License, or *
8
* (at your option) version 3. *
10
* This program is distributed in the hope that it will be useful, *
11
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13
* GNU General Public License for more details. *
15
* You should have received a copy of the GNU General Public License *
16
* along with this program; if not, write to the *
17
* Free Software Foundation, Inc., *
18
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
19
***************************************************************************/
2
* Copyright (C) 2005-2013 by the Quassel Project *
3
* devel@quassel-irc.org *
5
* This program is free software; you can redistribute it and/or modify *
6
* it under the terms of the GNU General Public License as published by *
7
* the Free Software Foundation; either version 2 of the License, or *
8
* (at your option) version 3. *
10
* This program is distributed in the hope that it will be useful, *
11
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13
* GNU General Public License for more details. *
15
* You should have received a copy of the GNU General Public License *
16
* along with this program; if not, write to the *
17
* Free Software Foundation, Inc., *
18
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
19
***************************************************************************/
21
#include <QApplication>
23
#include <QHBoxLayout>
21
26
#include "taskbarnotificationbackend.h"
25
28
#include "clientsettings.h"
26
29
#include "iconloader.h"
27
30
#include "mainwin.h"
30
33
TaskbarNotificationBackend::TaskbarNotificationBackend(QObject *parent)
31
: AbstractNotificationBackend(parent)
33
NotificationSettings notificationSettings;
34
_enabled = notificationSettings.value("Taskbar/Enabled", true).toBool();
35
_timeout = notificationSettings.value("Taskbar/Timeout", 0).toInt();
37
notificationSettings.notify("Taskbar/Enabled", this, SLOT(enabledChanged(const QVariant &)));
38
notificationSettings.notify("Taskbar/Timeout", this, SLOT(timeoutChanged(const QVariant &)));
41
void TaskbarNotificationBackend::notify(const Notification ¬ification) {
42
if(_enabled && (notification.type == Highlight || notification.type == PrivMsg)) {
43
QApplication::alert(QtUi::mainWindow(), _timeout);
47
void TaskbarNotificationBackend::close(uint notificationId) {
48
Q_UNUSED(notificationId);
51
void TaskbarNotificationBackend::enabledChanged(const QVariant &v) {
52
_enabled = v.toBool();
55
void TaskbarNotificationBackend::timeoutChanged(const QVariant &v) {
59
SettingsPage *TaskbarNotificationBackend::createConfigWidget() const {
60
return new ConfigWidget();
34
: AbstractNotificationBackend(parent)
36
NotificationSettings notificationSettings;
37
_enabled = notificationSettings.value("Taskbar/Enabled", true).toBool();
38
_timeout = notificationSettings.value("Taskbar/Timeout", 0).toInt();
40
notificationSettings.notify("Taskbar/Enabled", this, SLOT(enabledChanged(const QVariant &)));
41
notificationSettings.notify("Taskbar/Timeout", this, SLOT(timeoutChanged(const QVariant &)));
45
void TaskbarNotificationBackend::notify(const Notification ¬ification)
47
if (_enabled && (notification.type == Highlight || notification.type == PrivMsg)) {
48
QApplication::alert(QtUi::mainWindow(), _timeout);
53
void TaskbarNotificationBackend::close(uint notificationId)
55
Q_UNUSED(notificationId);
59
void TaskbarNotificationBackend::enabledChanged(const QVariant &v)
61
_enabled = v.toBool();
65
void TaskbarNotificationBackend::timeoutChanged(const QVariant &v)
71
SettingsPage *TaskbarNotificationBackend::createConfigWidget() const
73
return new ConfigWidget();
63
77
/***************************************************************************/
65
TaskbarNotificationBackend::ConfigWidget::ConfigWidget(QWidget *parent) : SettingsPage("Internal", "TaskbarNotification", parent) {
66
QHBoxLayout *layout = new QHBoxLayout(this);
79
TaskbarNotificationBackend::ConfigWidget::ConfigWidget(QWidget *parent) : SettingsPage("Internal", "TaskbarNotification", parent)
81
QHBoxLayout *layout = new QHBoxLayout(this);
68
layout->addWidget(enabledBox = new QCheckBox(tr("Activate dock entry, timeout:"), this));
83
layout->addWidget(enabledBox = new QCheckBox(tr("Activate dock entry, timeout:"), this));
70
layout->addWidget(enabledBox = new QCheckBox(tr("Mark taskbar entry, timeout:"), this));
85
layout->addWidget(enabledBox = new QCheckBox(tr("Mark taskbar entry, timeout:"), this));
72
enabledBox->setIcon(SmallIcon("flag-blue"));
73
enabledBox->setEnabled(true);
75
timeoutBox = new QSpinBox(this);
76
timeoutBox->setMinimum(1);
77
timeoutBox->setMaximum(99);
78
timeoutBox->setSpecialValueText(tr("Unlimited"));
79
timeoutBox->setSuffix(tr(" seconds"));
80
layout->addWidget(timeoutBox);
81
layout->addStretch(20);
83
connect(enabledBox, SIGNAL(toggled(bool)), SLOT(widgetChanged()));
84
connect(enabledBox, SIGNAL(toggled(bool)), timeoutBox, SLOT(setEnabled(bool)));
85
connect(timeoutBox, SIGNAL(valueChanged(int)), SLOT(widgetChanged()));
88
void TaskbarNotificationBackend::ConfigWidget::widgetChanged() {
89
bool changed = (enabled != enabledBox->isChecked() || timeout/1000 != timeoutBox->value());
90
if(changed != hasChanged()) setChangedState(changed);
93
bool TaskbarNotificationBackend::ConfigWidget::hasDefaults() const {
97
void TaskbarNotificationBackend::ConfigWidget::defaults() {
98
enabledBox->setChecked(true);
99
timeoutBox->setValue(0);
103
void TaskbarNotificationBackend::ConfigWidget::load() {
104
NotificationSettings s;
105
enabled = s.value("Taskbar/Enabled", true).toBool();
106
timeout = s.value("Taskbar/Timeout", 0).toInt();
108
enabledBox->setChecked(enabled);
109
timeoutBox->setValue(timeout/1000);
111
setChangedState(false);
114
void TaskbarNotificationBackend::ConfigWidget::save() {
115
NotificationSettings s;
116
s.setValue("Taskbar/Enabled", enabledBox->isChecked());
117
s.setValue("Taskbar/Timeout", timeoutBox->value() * 1000);
87
enabledBox->setIcon(SmallIcon("flag-blue"));
88
enabledBox->setEnabled(true);
90
timeoutBox = new QSpinBox(this);
91
timeoutBox->setMinimum(0);
92
timeoutBox->setMaximum(99);
93
timeoutBox->setSpecialValueText(tr("Unlimited"));
94
timeoutBox->setSuffix(tr(" seconds"));
95
layout->addWidget(timeoutBox);
96
layout->addStretch(20);
98
connect(enabledBox, SIGNAL(toggled(bool)), SLOT(widgetChanged()));
99
connect(enabledBox, SIGNAL(toggled(bool)), timeoutBox, SLOT(setEnabled(bool)));
100
connect(timeoutBox, SIGNAL(valueChanged(int)), SLOT(widgetChanged()));
104
void TaskbarNotificationBackend::ConfigWidget::widgetChanged()
106
bool changed = (enabled != enabledBox->isChecked() || timeout/1000 != timeoutBox->value());
107
if (changed != hasChanged()) setChangedState(changed);
111
bool TaskbarNotificationBackend::ConfigWidget::hasDefaults() const
117
void TaskbarNotificationBackend::ConfigWidget::defaults()
119
enabledBox->setChecked(true);
120
timeoutBox->setValue(0);
125
void TaskbarNotificationBackend::ConfigWidget::load()
127
NotificationSettings s;
128
enabled = s.value("Taskbar/Enabled", true).toBool();
129
timeout = s.value("Taskbar/Timeout", 0).toInt();
131
enabledBox->setChecked(enabled);
132
timeoutBox->setValue(timeout/1000);
134
setChangedState(false);
138
void TaskbarNotificationBackend::ConfigWidget::save()
140
NotificationSettings s;
141
s.setValue("Taskbar/Enabled", enabledBox->isChecked());
142
s.setValue("Taskbar/Timeout", timeoutBox->value() * 1000);