2 # -*- coding: utf-8 -*-
4 # ------------------------------------------------------------
7 # an opensecurity dialog
9 # Autor: Oliver Maurhart, <oliver.maurhart@ait.ac.at>
11 # Copyright (C) 2013 AIT Austrian Institute of Technology
12 # AIT Austrian Institute of Technology GmbH
13 # Donau-City-Strasse 1 | 1220 Vienna | Austria
14 # http://www.ait.ac.at
16 # This program is free software; you can redistribute it and/or
17 # modify it under the terms of the GNU General Public License
18 # as published by the Free Software Foundation version 2.
20 # This program is distributed in the hope that it will be useful,
21 # but WITHOUT ANY WARRANTY; without even the implied warranty of
22 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23 # GNU General Public License for more details.
25 # You should have received a copy of the GNU General Public License
26 # along with this program; if not, write to the Free Software
27 # Foundation, Inc., 51 Franklin Street, Fifth Floor,
28 # Boston, MA 02110-1301, USA.
29 # ------------------------------------------------------------
32 # ------------------------------------------------------------
40 from PyQt4 import QtCore
41 from PyQt4 import QtGui
44 from environment import Environment
47 # ------------------------------------------------------------
51 class OpenSecurityTrayIcon(QtGui.QSystemTrayIcon):
53 """This is the OpenSecuirty Tray Icon"""
55 def __init__(self, icon, parent=None):
57 super(OpenSecurityTrayIcon, self).__init__(icon, parent)
59 # define the tray icon menu
60 menu = QtGui.QMenu(parent)
61 self.setContextMenu(menu)
63 cAcLaunch = menu.addAction(QtGui.QIcon(QtGui.QPixmapCache.find('opensecurity_icon_64')), 'Lauch Application')
65 cAcExit = menu.addAction("Exit")
67 cAcLaunch.triggered.connect(self.clicked_launch_application)
68 cAcExit.triggered.connect(self.clicked_exit)
71 def clicked_exit(self):
76 def clicked_launch_application(self):
77 """clicked the launch an application"""
78 dlg_launch_image = os.path.join(sys.path[0], 'launch.py')
79 process_command = [sys.executable, dlg_launch_image]
80 process = subprocess.Popen(process_command, shell = False)
86 app = QtGui.QApplication(sys.argv)
88 # prebuild the pixmap cache: fetch all jpg, png and jpeg images and load them
89 data_path = Environment("opensecurity").image_path
90 for file in os.listdir(data_path):
91 if file.lower().rpartition('.')[2] in ('jpg', 'png', 'jpeg'):
92 QtGui.QPixmapCache.insert(file.lower().rpartition('.')[0], QtGui.QPixmap(os.path.join(data_path, file)))
95 trayIcon = OpenSecurityTrayIcon(QtGui.QIcon(QtGui.QPixmapCache.find('opensecurity_icon_64')), w)
102 if __name__ == "__main__":