OpenSecurity/bin/opensecurity_tray.pyw
changeset 136 ac117cd7bab1
parent 111 a2c7f29d3683
child 144 dd472ede7a9f
     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_())