Exemple #1
0
 def getConfig(cls, key):
     """ get config """
     settings = QtCore.QSettings("myFlickr", "mySync")
     if key=='directory':
         if not settings.value('directory'):
             cls.setConfig('directory', '')
         if not os.path.exists(settings.value('directory')):
             return ''
     return settings.value(key)
Exemple #2
0
 def getConfig(cls, key):
     """ get config """
     settings = QtCore.QSettings("myFlickr", "mySync")
     if key == 'directory':
         if not settings.value('directory'):
             cls.setConfig('directory', '')
         if not os.path.exists(settings.value('directory')):
             return ''
     return settings.value(key)
Exemple #3
0
def main():
    app = QApplication(sys.argv)
    app.setQuitOnLastWindowClosed(False)
    app.setOrganizationName('meteo-qt')
    app.setOrganizationDomain('meteo-qt')
    app.setApplicationName('meteo-qt')
    app.setWindowIcon(QIcon(':/logo'))
    filePath = os.path.dirname(os.path.realpath(__file__))
    settings = QSettings()
    locale = settings.value('Language')
    if locale is None or locale == '':
        locale = QLocale.system().name()
    appTranslator = QTranslator()
    if os.path.exists(filePath + '/translations/'):
        appTranslator.load(filePath + "/translations/meteo-qt_" + locale)
    else:
        appTranslator.load("/usr/share/meteo_qt/translations/meteo-qt_" +
                           locale)
    app.installTranslator(appTranslator)
    qtTranslator = QTranslator()
    qtTranslator.load("qt_" + locale,
                      QLibraryInfo.location(QLibraryInfo.TranslationsPath))
    app.installTranslator(qtTranslator)

    log_level = settings.value('Logging/Level')
    if log_level == '' or log_level is None:
        log_level = 'INFO'
        settings.setValue('Logging/Level', 'INFO')

    log_filename = os.path.dirname(settings.fileName())
    if not os.path.exists(log_filename):
        os.makedirs(log_filename)
    log_filename = log_filename + '/meteo-qt.log'

    logging.basicConfig(
        format='%(asctime)s %(levelname)s: %(message)s - %(module)s - %(name)s',
        datefmt='%m/%d/%Y %H:%M:%S',
        filename=log_filename,
        level=log_level)
    logger = logging.getLogger('meteo-qt')
    logger.setLevel(log_level)
    handler = logging.handlers.RotatingFileHandler(log_filename,
                                                   maxBytes=20,
                                                   backupCount=5)
    logger1 = logging.getLogger()
    handler1 = logging.StreamHandler()
    logger1Formatter = logging.Formatter(
        '%(levelname)s: %(message)s - %(module)s')
    handler1.setFormatter(logger1Formatter)
    logger.addHandler(handler)
    logger1.addHandler(handler1)

    m = SystemTrayIcon()
    app.exec_()
Exemple #4
0
 def restoreLayout(self):
     """
     Restore the layout of each widget
     """
     settings=self.settings
     try:
         self.restoreGeometry(settings.value("geometry").toByteArray())
         self.restoreState(settings.value("windowState").toByteArray())
         size=settings.value('fontSize').toFloat()[0]
         self.setFontSize(size)
     except:
         pass
Exemple #5
0
 def restoreLayout(self):
     """
     Restore the layout of each widget
     """
     settings = self.settings
     try:
         self.restoreGeometry(settings.value("geometry").toByteArray())
         self.restoreState(settings.value("windowState").toByteArray())
         size = settings.value('fontSize').toFloat()[0]
         self.setFontSize(size)
     except:
         pass
Exemple #6
0
def main():
    app = QApplication(sys.argv)
    app.setQuitOnLastWindowClosed(False)
    app.setOrganizationName('meteo-qt')
    app.setOrganizationDomain('meteo-qt')
    app.setApplicationName('meteo-qt')
    app.setWindowIcon(QIcon(':/logo'))
    filePath = os.path.dirname(os.path.realpath(__file__))
    settings = QSettings()
    locale = settings.value('Language')
    if locale is None or locale == '':
        locale = QLocale.system().name()
    appTranslator = QTranslator()
    if os.path.exists(filePath + '/translations/'):
        appTranslator.load(filePath + "/translations/meteo-qt_" + locale)
    else:
        appTranslator.load("/usr/share/meteo_qt/translations/meteo-qt_" +
                           locale)
    app.installTranslator(appTranslator)
    qtTranslator = QTranslator()
    qtTranslator.load("qt_" + locale,
                      QLibraryInfo.location(QLibraryInfo.TranslationsPath))
    app.installTranslator(qtTranslator)

    log_level = settings.value('Logging/Level')
    if log_level == '' or log_level is None:
        log_level = 'INFO'
        settings.setValue('Logging/Level', 'INFO')

    log_filename = os.path.dirname(settings.fileName())
    if not os.path.exists(log_filename):
        os.makedirs(log_filename)
    log_filename = log_filename + '/meteo-qt.log'

    logging.basicConfig(format='%(asctime)s %(levelname)s: %(message)s - %(module)s - %(name)s',
                        datefmt='%m/%d/%Y %H:%M:%S',
                        filename=log_filename, level=log_level)
    logger = logging.getLogger('meteo-qt')
    logger.setLevel(log_level)
    handler = logging.handlers.RotatingFileHandler(
        log_filename, maxBytes=20, backupCount=5)
    logger1 = logging.getLogger()
    handler1 = logging.StreamHandler()
    logger1Formatter = logging.Formatter('%(levelname)s: %(message)s - %(module)s')
    handler1.setFormatter(logger1Formatter)
    logger.addHandler(handler)
    logger1.addHandler(handler1)

    m = SystemTrayIcon()
    app.exec_()
Exemple #7
0
def init1(loop):
	"""Start processing web events."""
	app = web.Application(loop=loop)
	
	#Call API functions and observe values.
	app.router.add_route('POST', '/v0/authenticate',   authenticate)
	app.router.add_route('POST', '/v0/deauthenticate', deauthenticate)
	app.router.add_route('*',    '/v0/subscribe',      subscribe)
	app.router.add_route('*',    '/v0/{name}',         handle)
	
	#Serve the web app.
	app.router.add_route('GET', '/', lambda _:
		web.Response(status=301, headers={ 'Location':'/app' }) )
	app.router.add_route('GET', '/app', lambda _: web.Response(
		headers={ 'Content-Type':'text/html; charset=utf-8' },
		body=indexHTML.seek(0) or indexHTML.read(),
	))
	app.router.add_static('/app', 'app/', name="static app files")
	
	
	print(f"Server running on port {settings.value('port', 80)}.")
	srv = yield from loop.create_server(
		app.make_handler(),
		'0.0.0.0',
		settings.value('port', 80),
	)
	return srv
Exemple #8
0
def main():
    app = QApplication(sys.argv)  # создаёт основной объект программы
    app.setApplicationName("CryotecClient")
    app.setOrganizationName("SKOpenCodes")
    app.setOrganizationDomain("skopencodes.org")


    qtTranslator = QTranslator()
    if qtTranslator.load("qt",":/"):
        app.installTranslator(qtTranslator)

    appTranslator = QTranslator()
    if appTranslator.load("cryotec_client", ":/"):
        app.installTranslator(appTranslator)


    settings = QSettings()
    app.setStyle(settings.value("applicationStyle", "windowsxp").toString())
    pixmap = QPixmap(":/images/splashscreen.png")
    splash = QSplashScreen(pixmap, Qt.WindowStaysOnTopHint)
    splash.setMask(pixmap.mask()) # this is usefull if the splashscreen is not a regular ractangle...
    splash.show()
    splash.showMessage((u'Криотек Клиент'), Qt.AlignRight | Qt.AlignBottom,
    Qt.white)
    # make sure Qt really display the splash screen
    app.processEvents()
    setup_settings()

#    try:
    from models import models
#    except ImportError:
#        cd = ConnectionErrorDialog(splash, {"fields":("server_package"),
#                                "text":u"Проверьте название пакета сервера",
#                                "error":True})
#        cd.exec_()

    failed = False

    if not models.load_from_server():
        cd = ConnectionErrorDialog(splash, {"fields":("address","api_path"),
                                "text":u"Проверьте настройки сервера",
                                "error":True}, models)
        result = cd.exec_()
        if result==QDialog.Rejected:
            failed = True




    if not failed:
        form = MainWindow()
        splash.finish(form)
        form.show()
        app.exec_()
    else:
        qApp.exit()
Exemple #9
0
	def networkPasswordChanged(self) -> None:
		try:
			#Defaults to "chronos", for now. We should not do this because we don't want a default password, let alone such a bad one.
			password = settings.value('password', '')
			assert password, "Password must be given for web server to start. (Try setting this in the App & Internet Access screen on the camera.)"
			self.hashedPassword = bytes.fromhex(password) # or hexHash(password="******")
			print('network password updated to', self.hashedPassword)
		except Exception as e:
			print('Could not update password:', e)
			self.hashedPassword = bytes()
Exemple #10
0
    def connect(self):
        settings = QSettings("Trunat", "PyTalk")
        settings.beginGroup("Connection")

        self.userID = settings.value("userID").toString().__str__()
        self.password = settings.value("password").toString().__str__()
        self.server = settings.value("server").toString().__str__()
        self.useSSL = settings.value("useSSL", QVariant(True)).toBool()

        if self.useSSL:
            self.port = settings.value("port", QVariant("5223")).toInt()
        else:
            self.port = settings.value("port", QVariant("5222")).toInt()

        self.port = int(self.port[0])

        self.ressource = settings.value(
            "ressource", QVariant("PyTalk")).toString().__str__()

        settings.endGroup()

        self.jid = xmpp.protocol.JID(self.userID.__str__())
        self.jabber = xmpp.Client(self.jid.getDomain(), debug=[])

        if self.server:
            server = (self.server, self.port)
        else:
            server = None
        connection = self.jabber.connect(server)

        if not connection:
            self.emit(SIGNAL("error"), self.tr("Connection Error"),
                      self.tr("Could not connect"))
            return False
        sys.stderr.write('Connected with %s\n' % connection)

        auth = self.jabber.auth(self.jid.getNode(), self.password,
                                self.ressource)
        if not auth:
            self.emit(SIGNAL("error"), self.tr("Authentication Error"),
                      self.tr("Could not authenticate"))
            return False
        sys.stderr.write('Authenticate using %s\n' % auth)

        self.register_handlers()
        self.jabber.sendInitPresence(requestRoster=1)

        return connection
Exemple #11
0
    def connect(self):
        settings = QSettings("Trunat", "PyTalk")
        settings.beginGroup("Connection")

        self.userID     = settings.value("userID").toString().__str__()
        self.password   = settings.value("password").toString().__str__()
        self.server     = settings.value("server").toString().__str__()
        self.useSSL     = settings.value("useSSL", QVariant(True)).toBool()

        if self.useSSL:
            self.port   = settings.value("port", QVariant("5223")).toInt()
        else:
            self.port   = settings.value("port", QVariant("5222")).toInt()

        self.port = int(self.port[0])

        self.ressource  = settings.value("ressource", QVariant("PyTalk")).toString().__str__()
        
        settings.endGroup()

        self.jid        = xmpp.protocol.JID(self.userID.__str__())
        self.jabber     = xmpp.Client(self.jid.getDomain(), debug=[])

        if self.server:
            server = (self.server, self.port)
        else:
            server = None
        connection = self.jabber.connect(server)
        
        if not connection:
            self.emit(SIGNAL("error"), self.tr("Connection Error"), self.tr("Could not connect"))
            return False
        sys.stderr.write('Connected with %s\n' % connection)
        
        auth = self.jabber.auth(self.jid.getNode(), self.password, self.ressource)
        if not auth:
            self.emit(SIGNAL("error"), self.tr("Authentication Error"), self.tr("Could not authenticate"))
            return False
        sys.stderr.write('Authenticate using %s\n' % auth)

        self.register_handlers()
        self.jabber.sendInitPresence(requestRoster=1)

        return connection
Exemple #12
0
def main():
    app = QApplication(sys.argv)
    app.setQuitOnLastWindowClosed(False)
    app.setOrganizationName('meteo-qt')
    app.setOrganizationDomain('meteo-qt')
    app.setApplicationName('meteo-qt')
    app.setWindowIcon(QIcon(':/logo'))
    filePath = os.path.dirname(os.path.realpath(__file__))
    settings = QSettings()
    locale = settings.value('Language')
    if locale == None or locale == '':
        locale = QLocale.system().name()
    appTranslator = QTranslator()
    appTranslator.load(filePath + "/translations/meteo-qt_" + locale)
    app.installTranslator(appTranslator)
    qtTranslator = QTranslator()
    qtTranslator.load("qt_" + locale,
                      QLibraryInfo.location(QLibraryInfo.TranslationsPath))
    app.installTranslator(qtTranslator)
    m = SystemTrayIcon()
    app.exec_()
Exemple #13
0
    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)
        self.setWindowIcon(QIcon(":/small_icons/cryotec_logo.png"))
        self.setWindowTitle(u"Криотек Клиент")
        self.resize(1024,768)
        from views import FixWithButtonsView, ReportWithButtonsView, \
                MaintenanceWithButtonsView, CheckupWithButtonsView, MachinePanel

        from widgets import ServerResponceDock, ShowModelInfoDock, StatusBar

        from models import models
        self.machine_tree = MachinePanel()


        self.info_dock = ShowModelInfoDock(u"Информация", self)
        self.info_dock.setAllowedAreas(Qt.LeftDockWidgetArea | Qt.RightDockWidgetArea |\
                                Qt.BottomDockWidgetArea)

        self.machine_tree.view.modelSelectionChanged.connect(self.info_dock.view.modelChanged)
        self.machine_tree.view.modelSelectionCleared.connect(self.info_dock.view.modelCleared)



        self.note_views = {
                u"Неисправности":ReportWithButtonsView(None),
                u"Ремонты":FixWithButtonsView(None),
                u"Техобслуживания":MaintenanceWithButtonsView(None),
                u"Контроли моточасов":CheckupWithButtonsView(None),
                }
        #self.machine_tree.setSelectionMode(QAbstractItemView.MultiSelection)
        self.notebook = CentralNotebook(self.machine_tree, self.info_dock, self.note_views)

        self.setCentralWidget(self.notebook)
        
        
        
        machineDockWidget = QDockWidget(u"Оборудование", self)
        machineDockWidget.setObjectName("machine_dock")

        machineDockWidget.setAllowedAreas(Qt.LeftDockWidgetArea | Qt.RightDockWidgetArea)
        machineDockWidget.setWidget(self.machine_tree)

        self.responce_dock = ServerResponceDock(u"Ответ от сервера", self)
        self.responce_dock.setAllowedAreas(Qt.RightDockWidgetArea|Qt.BottomDockWidgetArea)


        self.settings_dialog = SettingsDialog(models_manager=models)
        settingsAction = QAction(QIcon(":/icons/setting_tools.png"), u"Настройки", self)
        settingsAction.triggered.connect(self.settings_dialog.exec_)

        self.about_dialog = AboutDialog(self)
        aboutAction = QAction(QIcon(":/icons/information.png"), u"О программе...", self)
        aboutAction.triggered.connect(self.about_dialog.exec_)
        helpAction = QAction(u"Справка", self)
        helpAction.triggered.connect(lambda: QDesktopServices.openUrl(QUrl("doc/index.html")))

        saveAction = QAction(QIcon(":/icons/save_as.png"), u"Сохранить", self)
        saveAction.triggered.connect(self.save_to_file)

        openAction = QAction(QIcon(":/icons/folder.png"), u"Открыть", self)
        openAction.triggered.connect(self.load_from_file)


        self.syncAction = QAction(QIcon(":/icons/update.png"), u"Синхронизировать", self)
        self.syncAction.triggered.connect(self.synchronize)
        syncButton = QToolButton()
        syncButton.setDefaultAction(self.syncAction)
        syncButton.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
#        syncStatusBarButton = QToolButton()
#        syncStatusBarButton.setDefaultAction(self.syncAction)



        machinetreepanelAction = machineDockWidget.toggleViewAction()
        machinetreepanelAction.setIcon(QIcon(":/icons/application_side_tree.png"))

        responcedockAction = self.responce_dock.toggleViewAction()

        infodockAction = self.info_dock.toggleViewAction()


#        self.statusBar().addPermanentWidget(syncStatusBarButton)

        quitAction = QAction(u"Выход", self)
        quitAction.triggered.connect(self.close)

        self.status_bar = StatusBar(parent=self)
        self.setStatusBar(self.status_bar)

        self.mm = models
        self.mm.add_notify_dumped(self.synced)
        self.mm.add_notify_undumped(self.unsynced)
        self.mm.add_notify_dumped(self.status_bar.synced)
        self.mm.add_notify_undumped(self.status_bar.unsynced)
        self.mm.add_notify_dumped(self.responce_dock.show_responce)
        self.mm.add_notify_change_user(self.status_bar.userChanged)
        self.status_bar.userChanged(self.mm.get_current_user())
        self.status_bar.clicked.connect(\
                lambda: self.info_dock.view.modelChanged(self.mm.get_current_user()))

        self.addDockWidget(Qt.LeftDockWidgetArea, machineDockWidget)
        self.addDockWidget(Qt.BottomDockWidgetArea, self.info_dock)
        self.addDockWidget(Qt.BottomDockWidgetArea, self.responce_dock)
        self.setCorner(Qt.BottomLeftCorner, Qt.LeftDockWidgetArea)


        mainmenu = self.menuBar()
        filemenu = mainmenu.addMenu(u"Файл")
        viewmenu = mainmenu.addMenu(u"Вид")
        connmenu = mainmenu.addMenu(u"Соединение")
        helpmenu = mainmenu.addMenu(u"Справка")

        viewmenu.addAction(machinetreepanelAction)
        viewmenu.addAction(responcedockAction)
        viewmenu.addAction(infodockAction)
        connmenu.addAction(self.syncAction)
        filemenu.addAction(settingsAction)
        filemenu.addAction(saveAction)
        filemenu.addAction(openAction)
        filemenu.addAction(quitAction)
        helpmenu.addAction(aboutAction)
        helpmenu.addAction(helpAction)

        toolbar = self.addToolBar("main")
        toolbar.setObjectName("main_toolbar")
        toolbar.addAction(machinetreepanelAction)
        toolbar.addWidget(syncButton)
        toolbar.addAction(settingsAction)

        settings = QSettings()
        self.restoreGeometry(settings.value("geometry").toByteArray());
        self.restoreState(settings.value("windowState").toByteArray());
        for widget in self.note_views.values():
            table_name = widget.view.__class__.__name__+"State"
            widget.view.horizontalHeader().restoreState(settings.value(table_name, "").toByteArray())