Example #1
0
class WebSCardTrayIcon(QSystemTrayIcon):
    def __init__(self, config):
        QSystemTrayIcon.__init__(self)
        self.config = config
        self.setIcon(QIcon(QPixmap(os.path.join(get_main_dir(), 'Spider.web.logo.png'))))
        self.menu = QMenu(QString("WebScard Menu"))
        self.setContextMenu(self.menu)

        # -- restart

        # -- configure with GUI

        # -- initdb
        action = QAction(QString(u'Init db'), self)
        action.setToolTip(u'Initialize the database as configured')
        action.triggered.connect(self.on_initdb)
        self.menu.addAction(action)

        # -- Quit
        action = QAction(QString(u'Quit'), self)
        action.setToolTip(u'Quit everything')
        action.triggered.connect(self.on_quit)
        self.menu.addAction(action)

        self.setToolTip(QString(u'WebSCard: Smart card WSGI server'))

        self.webserverthread = WebServerThread(config)
        self.webserverthread.start()

        self.show()

    def on_initdb(self):
        self.webserverthread.wscard.init_database()

    def on_quit(self):
        """ Callback to quit """
        self.hide()
        self.webserverthread.stop()
        self.menu.destroy()
        global app
        app.quit()