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()