Fix output buffer size for MP3 writer
[skype-call-recorder.git] / trayicon.cpp
blobb7d7361da0ce9bd8eb635e5e43f7ffb016e6a6c9
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 #include <QSystemTrayIcon>
25 #include <QMessageBox>
26 #include <QMenu>
27 #include <QCursor>
29 #include "trayicon.h"
30 #include "skype.h"
31 #include "recorder.h"
32 #include "common.h"
34 TrayIcon::TrayIcon(Recorder *r) : QSystemTrayIcon(r), recorder(r) {
35 if (!QSystemTrayIcon::isSystemTrayAvailable()) {
36 QMessageBox::critical(NULL, PROGRAM_NAME " - Error",
37 PROGRAM_NAME " cannot start, because it requires a system tray. None was detected. "
38 "(TODO: Make this work even without a system tray.)");
39 recorder->quit();
40 return;
43 setIcon(QIcon(":/icon.png"));
45 menu = new QMenu;
46 QAction *action = menu->addAction("About " PROGRAM_NAME);
47 action->setEnabled(false);
48 connect(action, SIGNAL(triggered()), recorder, SLOT(about()));
49 action = menu->addAction("Open preferences...");
50 connect(action, SIGNAL(triggered()), recorder, SLOT(openSettings()));
51 action = menu->addAction("Browse previous calls");
52 action->setEnabled(false);
53 connect(action, SIGNAL(triggered()), recorder, SLOT(browseCalls()));
54 action = menu->addAction("Exit");
55 connect(action, SIGNAL(triggered()), recorder, SLOT(quitConfirmation()));
56 setContextMenu(menu);
58 setToolTip(PROGRAM_NAME);
60 connect(this, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, SLOT(activate(QSystemTrayIcon::ActivationReason)));
62 show();
65 void TrayIcon::activate(QSystemTrayIcon::ActivationReason) {
66 contextMenu()->popup(QCursor::pos());