Replace closePreferences with closePerCallerDialog
[skype-call-recorder.git] / trayicon.h
blobc9637be11d394a3428b395a4b56174195110c824
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 <QMap>
30 #include "common.h"
32 class QAction;
33 class QMenu;
34 class QSignalMapper;
36 class TrayIcon : public QSystemTrayIcon {
37 Q_OBJECT
38 public:
39 TrayIcon(QObject *);
40 ~TrayIcon();
42 signals:
43 void requestQuit();
44 void requestQuitNoConfirmation();
45 void requestAbout();
46 void requestOpenPreferences();
47 void requestBrowseCalls();
49 signals:
50 void startRecording(int);
51 void stopRecordingAndDelete(int);
52 void stopRecording(int);
54 public slots:
55 void setColor(bool);
56 void startedCall(int, const QString &);
57 void stoppedCall(int);
58 void startedRecording(int);
59 void stoppedRecording(int);
61 private slots:
62 void activate(QSystemTrayIcon::ActivationReason);
64 private:
65 void updateToolTip();
67 private:
68 struct CallData {
69 QString skypeName;
70 bool isRecording;
71 QMenu *menu;
72 QAction *startAction;
73 QAction *stopAction;
74 QAction *stopAndDeleteAction;
77 typedef QMap<int, CallData> CallMap;
79 private:
80 QMenu *menu;
81 QAction *separator;
82 CallMap callMap;
83 QSignalMapper *smStart;
84 QSignalMapper *smStop;
85 QSignalMapper *smStopAndDelete;
87 DISABLE_COPY_AND_ASSIGNMENT(TrayIcon);
90 #endif