utils/makerpm: Fix building of RPMs
[skype-call-recorder.git] / trayicon.h
bloba92047376e911812b4b7e2e976ae10bc66a9b23d
1 /*
2 Skype Call Recorder
3 Copyright (C) 2008 jlh (jlh at gmx dot ch)
5 This program is free software; you can redistribute it and/or modify it
6 under the terms of the GNU General Public License as published by the
7 Free Software Foundation; either version 2 of the License, version 3 of
8 the License, or (at your option) any later version.
10 This program is distributed in the hope that it will be useful, but
11 WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 General Public License for more details.
15 You should have received a copy of the GNU General Public License along
16 with this program; if not, write to the Free Software Foundation, Inc.,
17 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19 The GNU General Public License version 2 is included with the source of
20 this program under the file name COPYING. You can also get a copy on
21 http://www.fsf.org/
24 #ifndef TRAYICON_H
25 #define TRAYICON_H
27 #include <QSystemTrayIcon>
28 #include <QPointer>
29 #include <QMap>
31 #include "common.h"
33 class QAction;
34 class QMenu;
35 class QSignalMapper;
36 class MainWindow;
38 class TrayIcon : public QSystemTrayIcon {
39 Q_OBJECT
40 public:
41 TrayIcon(QObject *);
42 ~TrayIcon();
44 signals:
45 void requestQuit();
46 void requestAbout();
47 void requestWebsite();
48 void requestOpenPreferences();
49 void requestBrowseCalls();
51 signals:
52 void startRecording(int);
53 void stopRecordingAndDelete(int);
54 void stopRecording(int);
56 public slots:
57 void setColor(bool);
58 void startedCall(int, const QString &);
59 void stoppedCall(int);
60 void startedRecording(int);
61 void stoppedRecording(int);
63 private slots:
64 void checkTrayPresence();
65 void setWindowedMode();
66 void createMainWindow();
67 void activate();
69 private:
70 void updateToolTip();
72 private:
73 struct CallData {
74 QString skypeName;
75 bool isRecording;
76 QMenu *menu;
77 QAction *startAction;
78 QAction *stopAction;
79 QAction *stopAndDeleteAction;
82 typedef QMap<int, CallData> CallMap;
84 private:
85 QMenu *menu;
86 QMenu *aboutMenu;
87 QAction *separator;
88 CallMap callMap;
89 QSignalMapper *smStart;
90 QSignalMapper *smStop;
91 QSignalMapper *smStopAndDelete;
92 QPointer<MainWindow> window;
93 bool colored;
95 DISABLE_COPY_AND_ASSIGNMENT(TrayIcon);
98 #endif