def exec_(self): locks = glob('*.lck') if not locks: register(cleanup, create_lock()) else: resp = \ QtGui.QMessageBox.warning(None, self.trUtf8("Error"), self.trUtf8("Ya existe una instancia en ejecución de %s<br />" % self.app_name()+ "Si no es el caso, por favor borre <b>*.lck</b> de"+ "%s" % os.getcwd()), QtGui.QMessageBox.Yes | QtGui.QMessageBox.No, QtGui.QMessageBox.No) if resp == QtGui.QMessageBox.No: return self.exit(UcnetLauncherApp.DO_NOT_ASK) else: clean_locks(locks) register(cleanup, create_lock()) # Como no tenemos una ventana principal... self.setQuitOnLastWindowClosed(False) self.tray = UcnetTrayIcon() self.tray.show() return QtGui.QApplication.exec_()
class UcnetLauncherApp(QtGui.QApplication): ''' Aplicación ''' DO_NOT_ASK = 1 def __init__(self, *largs): QtGui.QApplication.__init__(self, *largs) self.__app_name = None # Configuración de la aplicación self.__config = None @property def config(self): ''' Getter para la configuración (singletón y de solo lectura) ''' if not self.__config: self.__config = QtCore.QSettings("PicNet Crew", "SemCtl") return self.__config def exec_(self): locks = glob('*.lck') if not locks: register(cleanup, create_lock()) else: resp = \ QtGui.QMessageBox.warning(None, self.trUtf8("Error"), self.trUtf8("Ya existe una instancia en ejecución de %s<br />" % self.app_name()+ "Si no es el caso, por favor borre <b>*.lck</b> de"+ "%s" % os.getcwd()), QtGui.QMessageBox.Yes | QtGui.QMessageBox.No, QtGui.QMessageBox.No) if resp == QtGui.QMessageBox.No: return self.exit(UcnetLauncherApp.DO_NOT_ASK) else: clean_locks(locks) register(cleanup, create_lock()) # Como no tenemos una ventana principal... self.setQuitOnLastWindowClosed(False) self.tray = UcnetTrayIcon() self.tray.show() return QtGui.QApplication.exec_() def exit(self, val=None): ''' Pregunta si está seguro de desar salir ''' if val == UcnetLauncherApp.DO_NOT_ASK: self.quit() # TODO: Recordar la respuesta resp = \ QtGui.QMessageBox.question(None, self.trUtf8("Está seguro de que desea salir?"), self.trUtf8("Está seguro de que desea <i>salir</i> de %s" % self.app_name()), QtGui.QMessageBox.Yes | QtGui.QMessageBox.No, QtGui.QMessageBox.No) if resp == QtGui.QMessageBox.Yes: return QtGui.QApplication.exit(resp) def app_name(self): ''' Nombre de la aplicación ''' if not self.__app_name: self.__app_name = "<b>µC Net</b> (rev.%s)" % ( os.popen('hg id -n').read().strip() or "?") return self.__app_name #================================================================================ # Prpperties #================================================================================ # Port def _get_port(self): port, ok = self.config.value('server/port').toInt() return ok and port or 8080 def _set_port(self, val): self.config.setValue('server/port', QtCore.QVariant(val)) port = property(_get_port, _set_port) # Start browser on server start def _get_start_browser(self): return self.config.value('options/start_browser').toBool() def _set_start_browser(self, val): self.config.setValue('options/start_browser', QtCore.QVariant(val)) start_browser = property(_get_start_browser, _set_start_browser)
class UcnetLauncherApp(QtGui.QApplication): ''' Aplicación ''' DO_NOT_ASK = 1 def __init__(self, *largs): QtGui.QApplication.__init__(self, *largs) self.__app_name = None # Configuración de la aplicación self.__config = None @property def config(self): ''' Getter para la configuración (singletón y de solo lectura) ''' if not self.__config: self.__config = QtCore.QSettings("PicNet Crew", "SemCtl") return self.__config def exec_(self): locks = glob('*.lck') if not locks: register(cleanup, create_lock()) else: resp = \ QtGui.QMessageBox.warning(None, self.trUtf8("Error"), self.trUtf8("Ya existe una instancia en ejecución de %s<br />" % self.app_name()+ "Si no es el caso, por favor borre <b>*.lck</b> de"+ "%s" % os.getcwd()), QtGui.QMessageBox.Yes | QtGui.QMessageBox.No, QtGui.QMessageBox.No) if resp == QtGui.QMessageBox.No: return self.exit(UcnetLauncherApp.DO_NOT_ASK) else: clean_locks(locks) register(cleanup, create_lock()) # Como no tenemos una ventana principal... self.setQuitOnLastWindowClosed(False) self.tray = UcnetTrayIcon() self.tray.show() return QtGui.QApplication.exec_() def exit(self, val = None): ''' Pregunta si está seguro de desar salir ''' if val == UcnetLauncherApp.DO_NOT_ASK: self.quit() # TODO: Recordar la respuesta resp = \ QtGui.QMessageBox.question(None, self.trUtf8("Está seguro de que desea salir?"), self.trUtf8("Está seguro de que desea <i>salir</i> de %s" % self.app_name()), QtGui.QMessageBox.Yes | QtGui.QMessageBox.No, QtGui.QMessageBox.No) if resp == QtGui.QMessageBox.Yes: return QtGui.QApplication.exit(resp) def app_name(self): ''' Nombre de la aplicación ''' if not self.__app_name: self.__app_name = "<b>µC Net</b> (rev.%s)" % (os.popen('hg id -n').read().strip() or "?") return self.__app_name #================================================================================ # Prpperties #================================================================================ # Port def _get_port(self): port, ok = self.config.value('server/port').toInt() return ok and port or 8080 def _set_port(self, val): self.config.setValue('server/port', QtCore.QVariant(val)) port = property(_get_port, _set_port) # Start browser on server start def _get_start_browser(self): return self.config.value('options/start_browser').toBool() def _set_start_browser(self, val): self.config.setValue('options/start_browser', QtCore.QVariant(val)) start_browser = property(_get_start_browser, _set_start_browser)