1.1 --- a/OpenSecurity/bin/opensecurity_tray.pyw Wed Apr 02 10:45:58 2014 +0100
1.2 +++ b/OpenSecurity/bin/opensecurity_tray.pyw Wed Apr 30 12:06:22 2014 +0200
1.3 @@ -45,6 +45,7 @@
1.4 if sys.platform == 'win32' or sys.platform == 'cygwin':
1.5 from cygwin import Cygwin
1.6
1.7 +import opensecurity_client_restful_server
1.8 from ui import AboutDialog
1.9 from ui import ConfigureDialog
1.10 from ui import opensecurity_rc
1.11 @@ -136,6 +137,7 @@
1.12
1.13 def clicked_exit(self):
1.14 """clicked exit"""
1.15 + opensecurity_client_restful_server.stop()
1.16 sys.exit(0)
1.17
1.18
1.19 @@ -186,16 +188,32 @@
1.20 self.acAbout.triggered.connect(self.clicked_about)
1.21 self.acExit.triggered.connect(self.clicked_exit)
1.22
1.23 -
1.24 +
1.25 def main():
1.26
1.27 + # parse arguments
1.28 + parser = argparse.ArgumentParser(description = 'OpenSecurity Tray Icon.')
1.29 + parser.add_argument('-p', '--port', type=int, default=8090, help='port number of the REST API this instance will listen on.')
1.30 + args = parser.parse_args()
1.31 +
1.32 + # get up Qt
1.33 a = QtGui.QApplication(sys.argv)
1.34
1.35 + # enforce singelton process
1.36 + if opensecurity_client_restful_server.is_already_running(args.port):
1.37 + QtGui.QMessageBox.critical(None, 'OpenSecurity Error', 'OpenSecurity Tray Instance already launched.\nClose previous instance first.')
1.38 + sys.exit(1)
1.39 +
1.40 + # start serving
1.41 + opensecurity_client_restful_server.serve(args.port, True)
1.42 +
1.43 + # init tray icon widget
1.44 w = QtGui.QWidget()
1.45 icon = QtGui.QIcon()
1.46 icon.addPixmap(QtGui.QPixmap(QtCore.QString.fromUtf8(":/opensecurity/gfx/opensecurity_icon_64.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off)
1.47 trayIcon = OpenSecurityTrayIcon(icon)
1.48
1.49 + # go!
1.50 trayIcon.show()
1.51 a.setQuitOnLastWindowClosed(False)
1.52 sys.exit(a.exec_())