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