57bd3090bf7c00991a77f0e9116cc866489c5458
[mdictionary] / src / mdictionary / gui / NotifyManager.h
1 /*******************************************************************************
2
3     This file is part of mDictionary.
4
5     mDictionary 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 3 of the License, or
8     (at your option) any later version.
9
10     mDictionary 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 mDictionary.  If not, see <http://www.gnu.org/licenses/>.
17
18     Copyright 2010 Comarch S.A.
19
20 *******************************************************************************/
21
22 //! \file NotifyManager.h
23 //! \author Mateusz Półrola <mateusz.polrola@comarch.pl>
24
25 #ifndef NOTIFYMANAGER_H
26 #define NOTIFYMANAGER_H
27
28 #include <QObject>
29 #include <QHash>
30 #include <QString>
31 #include <QDialog>
32 #include "../../include/Notify.h"
33
34 //! Manages notifications in applications
35 /*!
36     Shows notifications to user, assures that couple of the same notification
37     will not be displayed at the same time. It automatically delete
38     notifications after user accept or reject it.
39 */
40
41 class NotifyManager : public QObject
42 {
43     Q_OBJECT
44 public:
45     NotifyManager(QObject *parent = 0);
46
47 public slots:
48     //! Shows notification
49     /*!
50         Displays new notification of passed type containing passed text
51         \param type type of notification
52         \param text text of notification
53         \sa Notify::NotifyType
54     */
55     void showNotification(Notify::NotifyType type, QString text);
56
57     //! Refresh all notifications when stacked widgets changes
58     void screenChanged();
59
60 private slots:
61     //! Informs that notification was closed and can be deleted
62     void notificationClosed();
63
64 private:
65     QHash<QString, QDialog*> activeNotifies;
66 };
67
68 #endif // NOTIFYMANAGER_H