def _create_uploaded_docs_dir(self): # Creates an 'uploaded' directory where uploaded documents are moved to. uploaded_dir = QDir(self.source_directory) uploaded_dir.mkdir('uploaded')
def accept(self): project_name = self.project_name_le.text() if project_name.endswith('.qgs'): project_name = project_name[:-4] if not project_name: QMessageBox.critical(self, self.tr("OQ-Consolidate: Error"), self.tr("Please specify the project name")) return outputDir = self.leOutputDir.text() if not outputDir: QMessageBox.critical( self, self.tr("OQ-Consolidate: Error"), self.tr("Please specify the output directory.")) return outputDir = os.path.join(outputDir, get_valid_filename(project_name)) # create main directory if not exists d = QDir(outputDir) if not d.exists(): if not d.mkpath("."): QMessageBox.critical( self, self.tr("OQ-Consolidate: Error"), self.tr("Can't create directory to store the project.")) return # create directory for layers if not exists if d.exists("layers"): res = QMessageBox.question( self, self.tr("Directory exists"), self.tr("Output directory already contains 'layers'" " subdirectory. Maybe this directory was used to" " consolidate another project. Continue?"), QMessageBox.Yes | QMessageBox.No) if res == QMessageBox.No: return else: if not d.mkdir("layers"): QMessageBox.critical( self, self.tr("OQ-Consolidate: Error"), self.tr("Can't create directory for layers.")) return # copy project file projectFile = QgsProject.instance().fileName() if projectFile: f = QFile(projectFile) newProjectFile = os.path.join(outputDir, '%s.qgs' % project_name) f.copy(newProjectFile) else: newProjectFile = os.path.join(outputDir, '%s.qgs' % project_name) f = QFileInfo(newProjectFile) p = QgsProject.instance() p.write(f) # start consolidate thread that does all real work self.workThread = consolidatethread.ConsolidateThread( self.iface, outputDir, newProjectFile, self.checkBoxZip.isChecked()) self.workThread.rangeChanged.connect(self.setProgressRange) self.workThread.updateProgress.connect(self.updateProgress) self.workThread.processFinished.connect(self.processFinished) self.workThread.processInterrupted.connect(self.processInterrupted) self.workThread.processError.connect(self.processError) self.workThread.exceptionOccurred.connect(self.exceptionOccurred) self.btnClose.setText(self.tr("Cancel")) self.btnOk.setEnabled(False) self.buttonBox.rejected.disconnect(self.reject) self.btnClose.clicked.connect(self.stopProcessing) self.workThread.start()
def accept(self): self.btnOk.setEnabled(False) self.btnCancel.setEnabled(False) project_name = self.project_name_le.text() if project_name.endswith('.qgs'): project_name = project_name[:-4] if not project_name: msg = tr("Please specify the project name") log_msg(msg, level='C', message_bar=iface.messageBar()) self.restoreGui() return outputDir = self.leOutputDir.text() if not outputDir: msg = tr("Please specify the output directory.") log_msg(msg, level='C', message_bar=iface.messageBar()) self.restoreGui() return outputDir = os.path.join(outputDir, get_valid_filename(project_name)) # create main directory if not exists d = QDir(outputDir) if not d.exists(): if not d.mkpath("."): msg = tr("Can't create directory to store the project.") log_msg(msg, level='C', message_bar=iface.messageBar()) self.restoreGui() return # create directory for layers if not exists if d.exists("layers"): res = QMessageBox.question( self, self.tr("Directory exists"), self.tr("Output directory already contains 'layers'" " subdirectory. Maybe this directory was used to" " consolidate another project. Continue?"), QMessageBox.Yes | QMessageBox.No) if res == QMessageBox.No: self.restoreGui() return else: if not d.mkdir("layers"): msg = tr("Can't create directory for layers.") log_msg(msg, level='C', message_bar=iface.messageBar()) self.restoreGui() return # copy project file projectFile = QgsProject.instance().fileName() try: if projectFile: f = QFile(projectFile) newProjectFile = os.path.join(outputDir, '%s.qgs' % project_name) f.copy(newProjectFile) else: newProjectFile = os.path.join(outputDir, '%s.qgs' % project_name) p = QgsProject.instance() p.write(newProjectFile) except Exception as exc: self.restoreGui() log_msg(str(exc), level='C', message_bar=iface.messageBar(), exception=exc) return # start consolidate task that does all real work self.consolidateTask = ConsolidateTask('Consolidation', QgsTask.CanCancel, outputDir, newProjectFile, self.checkBoxZip.isChecked(), self.cb.currentText()) self.consolidateTask.begun.connect(self.on_consolidation_begun) QgsApplication.taskManager().addTask(self.consolidateTask) super().accept()