Quassel IRC  Pre-Release
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros
indicatornotificationbackend.h
Go to the documentation of this file.
1 /***************************************************************************
2  * Copyright (C) 2009 Canonical Ltd *
3  * author: aurelien.gateau@canonical.com *
4  * *
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. *
9  * *
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. *
14  * *
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  ***************************************************************************/
20 
21 #ifndef INDICATORNOTIFICATIONBACKEND_H_
22 #define INDICATORNOTIFICATIONBACKEND_H_
23 
24 #include <QHash>
25 
27 #include "settingspage.h"
28 
29 #include "ui_indicatornotificationconfigwidget.h"
30 
31 namespace QIndicate {
32 class Server;
33 class Indicator;
34 }
35 
36 class Indicator;
37 
38 typedef QHash<BufferId, Indicator *> IndicatorHash;
39 
41 {
42  Q_OBJECT
43 
44 public:
45  IndicatorNotificationBackend(QObject *parent = 0);
47 
48  void notify(const Notification &);
49  void close(uint notificationId);
50  virtual SettingsPage *createConfigWidget() const;
51 
52 private slots:
53  void activateMainWidget();
54  void enabledChanged(const QVariant &);
55  void indicatorDisplayed(QIndicate::Indicator *);
56 
57 private:
58  class ConfigWidget;
59 
60  bool _enabled;
61 
62  QIndicate::Server *_server;
64 };
65 
66 
68 {
69  Q_OBJECT
70 
71 public:
72  ConfigWidget(QWidget *parent = 0);
73  ~ConfigWidget();
74 
75  void save();
76  void load();
77  bool hasDefaults() const;
78  void defaults();
79 
80 private slots:
81  void widgetChanged();
82 
83 private:
84  Ui::IndicatorNotificationConfigWidget ui;
85 
86  bool enabled;
87 };
88 
89 
90 #endif