예제 #1
0
 def errorMsg(self, message):
     """
     Формирование отчёта об ошибке.
     """
     if isinstance(message, list) or isinstance(message, tuple):
         logging.debug("ERROR: %s" % "; ".join(message))
         message = u"<ul><li>%s</li></ul>" % u"</li><li>".join(message)
     else:
         logging.debug("ERROR: %s" % message)
         message = u"<ul><li>%s</li></ul>" %  message
     ksqt.message(self, "error", u"Ошибка...", u"В процессе работы программы произошли ошибки:%s" % message)
예제 #2
0
 def errorMsgCritical(self, message):
     """
     Формирование отчёта об ошибке и выход из программы.
     """
     if isinstance(message, list) or isinstance(message, tuple):
         logging.debug("CRITICAL: %s" % "; ".join(message))
         message = u"<ul><li>%s</li></ul>" % u"</li><li>".join(message)
     else:
         logging.debug("CRITICAL: %s" % message)
         message = u"<ul><li>%s</li></ul>" %  message
     ksqt.message(self, "error", u"Ошибка...", u"В процессе работы программы произошли ошибки:%s<b>Работа программы остановлена!</b>" % message)
     sys.exit(1)
예제 #3
0
 def errorMsg(self, message):
     """
     Формирование отчёта об ошибке.
     """
     if isinstance(message, list) or isinstance(message, tuple):
         logging.debug("ERROR: %s" % "; ".join(message))
         message = u"<ul><li>%s</li></ul>" % u"</li><li>".join(message)
     else:
         logging.debug("ERROR: %s" % message)
         message = u"<ul><li>%s</li></ul>" % message
     ksqt.message(
         self, "error", u"Ошибка...",
         u"В процессе работы программы произошли ошибки:%s" % message)
예제 #4
0
 def finishProcess(self):
     """
     Слот для окончания работы потока основного процесса.
     """
     self.progress(100)
     if self.threadManager.error:
         self.addLogError(u"<b>%s</b>" % self.threadManager.errorMessage)
         ksqt.message(self, "error", u"Ошибка...", u"В процессе работы программы произошли ошибки:<br>%s" % self.threadManager.errorMessage)
     else:
         if not self.threadManager.normalExit:
             self.addLogError(u"<b>Некорректное завершение работы программы.</b>")
         else:
             self.addLogOk(u"<b>Выполнено!</b>")
     self.formDisabled(False)
     self.isProcess = False
예제 #5
0
 def errorMsgCritical(self, message):
     """
     Формирование отчёта об ошибке и выход из программы.
     """
     if isinstance(message, list) or isinstance(message, tuple):
         logging.debug("CRITICAL: %s" % "; ".join(message))
         message = u"<ul><li>%s</li></ul>" % u"</li><li>".join(message)
     else:
         logging.debug("CRITICAL: %s" % message)
         message = u"<ul><li>%s</li></ul>" % message
     ksqt.message(
         self, "error", u"Ошибка...",
         u"В процессе работы программы произошли ошибки:%s<b>Работа программы остановлена!</b>"
         % message)
     sys.exit(1)
예제 #6
0
    def clickProcess(self):
        """
        Начало процесса создания отчетов.

        ВНИМАНИЕ! Работает только для первого попавшегося диска с вдиое архивом.
        """
        if self.isProcess:  # Поток находится в процессе работы:
            self.threadManager.chancel = True
            self.ui.pushButton_3.setDisabled(True)
        else:
            self.addLogCommand(u"clear")
            archDisks = ksitv.getArchiveDisks()  # Списки дисков с крхивами.
            if not archDisks:
                self.addLogWarning(u"Не найдены жёсткие диски с видео-архивами.")
                ksqt.message(self, "warning", u"Внимание...", u"Не найдены жёсткие диски с видео-архивами.")
            else:
                self.addLogInform(u"Обнаружены диски с архивами:  %s" % (", ".join(["%s:" % item for item in archDisks])))
                if len(archDisks) > 1:
                    self.addLogWarning(u"Обнаружено, что видео архив расположен на нескольких жестких дисках: %s<br>что не поддерживается в текущей версии программы." % (", ".join(["%s:" % item for item in archDisks])))
                    ksqt.message(self, "warning", u"Внимание...", u"Обнаружено, что видео архив расположен на нескольких жестких дисках: %s\nчто не поддерживается в текущей версии программы." % (", ".join(["%s:" % item for item in archDisks])))
                else:
                    # Чтение всех директорий из указанных папок.
                    archDisk = archDisks[0]  # Диск с архивом.
                    dirList = ksitv.getArchiveFolder(archDisk)  # Список папок в архиве.
                    if not dirList:
                        self.addLogWarning(u"Видео архив пуст.")
                        ksqt.message(self, "inform", u"Информация...", u"Видео архив пуст.")
                    else:
                        # Запускаем менеджер обработки данных.
                        self.threadManager.initialize()
                        self.threadManager.archDisk = archDisk
                        self.threadManager.dirList = dirList
                        self.threadManager.logging = logging
                        self.threadManager.cfg = self.cfg
                        self.threadManager.workDir = self.baseDir
                        #self.threadManager.tableName = self.tableName
                        #self.threadManager.cacheDir = self.cacheDir
                        #self.threadManager.outDir = self.outDir

                        if unicode(self.ui.lineEdit.text()) and os.path.exists(unicode(self.ui.lineEdit.text())):
                            self.threadManager.cacheFile = unicode(self.ui.lineEdit.text())
                        if self.ui.checkBox_4.checkState() == QtCore.Qt.Checked:
                            self.threadManager.runAfterComplete = True
                        checked = 0  # Колличество выбранныз отчетов.
                        if self.ui.checkBox_2.checkState() == QtCore.Qt.Checked:
                            self.threadManager.report.append("all_day")
                            checked += 1
                        if self.ui.checkBox.checkState() == QtCore.Qt.Checked:
                            self.threadManager.report.append("cam_in_day")
                            checked += 1
                        if self.ui.checkBox_3.checkState() == QtCore.Qt.Checked:
                            self.threadManager.report.append("cam_in_hour")
                            checked += 1
                        if not checked:
                            ksqt.message(self, "warning", u"Внимание...", u"Необходимо выбрать хотя бы один отчёт.")
                        else:
                            self.threadManager.start()
                            self.isProcess = True
예제 #7
0
 def finishProcess(self):
     """
     Слот для окончания работы потока основного процесса.
     """
     self.progress(100)
     if self.threadManager.error:
         self.addLogError(u"<b>%s</b>" % self.threadManager.errorMessage)
         ksqt.message(
             self, "error", u"Ошибка...",
             u"В процессе работы программы произошли ошибки:<br>%s" %
             self.threadManager.errorMessage)
     else:
         if not self.threadManager.normalExit:
             self.addLogError(
                 u"<b>Некорректное завершение работы программы.</b>")
         else:
             self.addLogOk(u"<b>Выполнено!</b>")
     self.formDisabled(False)
     self.isProcess = False
예제 #8
0
    def clickProcess(self):
        """
        Начало процесса создания отчетов.

        ВНИМАНИЕ! Работает только для первого попавшегося диска с вдиое архивом.
        """
        if self.isProcess:  # Поток находится в процессе работы:
            self.threadManager.chancel = True
            self.ui.pushButton_3.setDisabled(True)
        else:
            self.addLogCommand(u"clear")
            archDisks = ksitv.getArchiveDisks()  # Списки дисков с крхивами.
            if not archDisks:
                self.addLogWarning(
                    u"Не найдены жёсткие диски с видео-архивами.")
                ksqt.message(self, "warning", u"Внимание...",
                             u"Не найдены жёсткие диски с видео-архивами.")
            else:
                self.addLogInform(
                    u"Обнаружены диски с архивами:  %s" %
                    (", ".join(["%s:" % item for item in archDisks])))
                if len(archDisks) > 1:
                    self.addLogWarning(
                        u"Обнаружено, что видео архив расположен на нескольких жестких дисках: %s<br>что не поддерживается в текущей версии программы."
                        % (", ".join(["%s:" % item for item in archDisks])))
                    ksqt.message(
                        self, "warning", u"Внимание...",
                        u"Обнаружено, что видео архив расположен на нескольких жестких дисках: %s\nчто не поддерживается в текущей версии программы."
                        % (", ".join(["%s:" % item for item in archDisks])))
                else:
                    # Чтение всех директорий из указанных папок.
                    archDisk = archDisks[0]  # Диск с архивом.
                    dirList = ksitv.getArchiveFolder(
                        archDisk)  # Список папок в архиве.
                    if not dirList:
                        self.addLogWarning(u"Видео архив пуст.")
                        ksqt.message(self, "inform", u"Информация...",
                                     u"Видео архив пуст.")
                    else:
                        # Запускаем менеджер обработки данных.
                        self.threadManager.initialize()
                        self.threadManager.archDisk = archDisk
                        self.threadManager.dirList = dirList
                        self.threadManager.logging = logging
                        self.threadManager.cfg = self.cfg
                        self.threadManager.workDir = self.baseDir
                        #self.threadManager.tableName = self.tableName
                        #self.threadManager.cacheDir = self.cacheDir
                        #self.threadManager.outDir = self.outDir

                        if unicode(self.ui.lineEdit.text()) and os.path.exists(
                                unicode(self.ui.lineEdit.text())):
                            self.threadManager.cacheFile = unicode(
                                self.ui.lineEdit.text())
                        if self.ui.checkBox_4.checkState(
                        ) == QtCore.Qt.Checked:
                            self.threadManager.runAfterComplete = True
                        checked = 0  # Колличество выбранныз отчетов.
                        if self.ui.checkBox_2.checkState(
                        ) == QtCore.Qt.Checked:
                            self.threadManager.report.append("all_day")
                            checked += 1
                        if self.ui.checkBox.checkState() == QtCore.Qt.Checked:
                            self.threadManager.report.append("cam_in_day")
                            checked += 1
                        if self.ui.checkBox_3.checkState(
                        ) == QtCore.Qt.Checked:
                            self.threadManager.report.append("cam_in_hour")
                            checked += 1
                        if not checked:
                            ksqt.message(
                                self, "warning", u"Внимание...",
                                u"Необходимо выбрать хотя бы один отчёт.")
                        else:
                            self.threadManager.start()
                            self.isProcess = True