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
24 #include <QSystemTrayIcon>
25 #include <QMessageBox>
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.)");
43 setIcon(QIcon(":/icon.png"));
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()));
58 setToolTip(PROGRAM_NAME
);
60 connect(this, SIGNAL(activated(QSystemTrayIcon::ActivationReason
)), this, SLOT(activate(QSystemTrayIcon::ActivationReason
)));
65 void TrayIcon::activate(QSystemTrayIcon::ActivationReason
) {
66 contextMenu()->popup(QCursor::pos());