def __init__(self, args): QtGui.QApplication.__init__(self, args) QObject.__init__(self, args) self.setQuitOnLastWindowClosed(False) self.tray = Tray(parent=self) self.settingsForm = None self.logForm = None self.settings = SettingsObj() # Connect slot so Listener can forward request data to main thread self.listener = Listener() self.connect_slots(self.listener) self.listener.start() self.exec_()
class WebinyNotifier(QtGui.QApplication, QObject): processMonitorLog = '' def __init__(self, args): QtGui.QApplication.__init__(self, args) QObject.__init__(self, args) self.setQuitOnLastWindowClosed(False) self.tray = Tray(parent=self) self.settingsForm = None self.logForm = None self.settings = SettingsObj() # Connect slot so Listener can forward request data to main thread self.listener = Listener() self.connect_slots(self.listener) self.listener.start() self.exec_() def restartListener(self): print "Restarting listener..." self.listener.stop() self.listener = Listener() self.connect_slots(self.listener) self.listener.start() def connect_slots(self, sender): self.connect(sender, QtCore.SIGNAL('newNotification'), self.newNotification) def newNotification(self, params): # Store new request request = Request() request.createFromNodeJs(params) # Notification balloon if bool(self.settings.show_balloon) and bool(self.settings.log_levels[request.getLevel()]['balloon']): message = "[" + strftime("%Y-%m-%d %H:%M:%S", gmtime()) + "] New notification received!" Debugger.log('Showing tray message: ' + message) self.tray.showMessage('Webiny Notifier', message, QtGui.QSystemTrayIcon.Information, 10000000) self.refreshRequestsModel() def openSettings(self): if self.settingsForm is None: self.settingsForm = Settings(self) self.settingsForm.show() def openLog(self): """ if self.logForm is None: self.logForm = Log() self.logForm.show() """ def refreshRequestsModel(self): if hasattr(self, "mainWindow"): self.mainWindow.refreshRequestModel() def exitApp(self): del self.tray self.listener.stop() self.quit() def balloonClicked(self): Debugger.log('Balloon clicked') if not hasattr(self, "mainWindow"): self.mainWindow = MainWindow(self) if not self.mainWindow.isVisible(): self.mainWindow.show() if self.mainWindow.isMinimized(): self.mainWindow.showNormal() self.mainWindow.activateWindow() self.mainWindow.selectFirstRow() def iconClicked(self, reason): if reason == 2: Debugger.log('Tray icon clicked') if not hasattr(self, "mainWindow"): self.mainWindow = MainWindow(self) self.mainWindow.activateWindow() if self.mainWindow.isVisible(): self.mainWindow.hide() else: self.mainWindow.show() self.mainWindow.activateWindow()