New xdxf dialog, one which provides methods to add new or change setting of existing...
[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 #include "MenuWidget.h"
34
35 //! Manages notifications in applications
36 /*!
37     Shows notifications to user, assures that couple of the same notification
38     will not be displayed at the same time. It automatically delete
39     notifications after user accept or reject it.
40 */
41
42 class NotifyManager : public QObject
43 {
44     Q_OBJECT
45 public:
46     NotifyManager(QObject *parent = 0);
47
48 public slots:
49     //! Shows notification
50     /*!
51         Displays new notification of passed type containing passed text
52         \param type type of notification
53         \param text text of notification
54         \sa Notify::NotifyType
55     */
56     void showNotification(Notify::NotifyType type, QString text, QWidget*parent=0);
57
58     //! Refresh all notifications when stacked widgets changes
59     void screenChanged();
60
61 private slots:
62     //! Informs that notification was closed and can be deleted
63     void notificationClosed();
64
65 private:
66     QHash<QString, QDialog*> activeNotifies;
67 };
68
69 #endif // NOTIFYMANAGER_H