def import_plans(self): dial = QFileDialog(self, "Import calculation plans") dial.setFileMode(QFileDialog.ExistingFile) dial.setAcceptMode(QFileDialog.AcceptOpen) dial.setDirectory( self.settings.get("io.open_directory", str(Path.home()))) dial.setNameFilter("Calculation plans (*.json)") dial.setDefaultSuffix("json") dial.setHistory(dial.history() + self.settings.get_path_history()) if dial.exec_(): file_path = dial.selectedFiles()[0] plans, err = self.settings.load_part(file_path) self.settings.set("io.batch_plan_directory", os.path.dirname(file_path)) self.settings.add_path_history(os.path.dirname(file_path)) if err: QMessageBox.warning( self, "Import error", "error during importing, part of data were filtered.") choose = ImportDialog(plans, self.settings.batch_plans, PlanPreview) if choose.exec_(): for original_name, final_name in choose.get_import_list(): self.settings.batch_plans[final_name] = plans[ original_name] self.update_plan_list()
def export_plans(self): choose = ExportDialog(self.settings.batch_plans, PlanPreview) if not choose.exec_(): return dial = QFileDialog(self, "Export calculation plans") dial.setFileMode(QFileDialog.AnyFile) dial.setAcceptMode(QFileDialog.AcceptSave) dial.setDirectory( dial.setDirectory( self.settings.get("io.batch_plan_directory", str(Path.home())))) dial.setNameFilter("Calculation plans (*.json)") dial.setDefaultSuffix("json") dial.selectFile("calculation_plans.json") dial.setHistory(dial.history() + self.settings.get_path_history()) if dial.exec_(): file_path = str(dial.selectedFiles()[0]) self.settings.set("io.batch_plan_directory", os.path.dirname(file_path)) self.settings.add_path_history(os.path.dirname(file_path)) data = { x: self.settings.batch_plans[x] for x in choose.get_export_list() } with open(file_path, "w") as ff: json.dump(data, ff, cls=self.settings.json_encoder_class, indent=2)
def export_pipeline(self): exp = ExportDialog(self._settings.segmentation_pipelines, ProfileDictViewer) if not exp.exec_(): return dial = QFileDialog(self, "Export pipeline segment") dial.setFileMode(QFileDialog.AnyFile) dial.setAcceptMode(QFileDialog.AcceptSave) dial.setDirectory(self._settings.get("io.save_directory", "")) dial.setNameFilter("Segment pipeline (*.json)") dial.setDefaultSuffix("json") dial.selectFile("segment_pipeline.json") dial.setHistory(dial.history() + self._settings.get_path_history()) if dial.exec_(): file_path = dial.selectedFiles()[0] data = { x: self._settings.segmentation_pipelines[x] for x in exp.get_export_list() } with open(file_path, "w") as ff: json.dump(data, ff, cls=self._settings.json_encoder_class, indent=2) self._settings.set("io.save_directory", os.path.dirname(file_path)) self._settings.add_path_history(os.path.dirname(file_path))
def import_profiles(self): dial = QFileDialog(self, "Import profile segment") dial.setFileMode(QFileDialog.ExistingFile) dial.setAcceptMode(QFileDialog.AcceptOpen) dial.setDirectory( self._settings.get("io.save_directory", str(Path.home()))) dial.setNameFilter("Segment profile (*.json)") dial.setHistory(dial.history() + self._settings.get_path_history()) if dial.exec_(): file_path = dial.selectedFiles()[0] save_dir = os.path.dirname(file_path) self._settings.set("io.save_directory", save_dir) self._settings.add_path_history(save_dir) profs, err = self._settings.load_part(file_path) if err: QMessageBox.warning( self, "Import error", "error during importing, part of data were filtered.") profiles_dict = self._settings.segmentation_profiles imp = ImportDialog(profs, profiles_dict, ProfileDictViewer) if not imp.exec_(): return for original_name, final_name in imp.get_import_list(): profiles_dict[final_name] = profs[original_name] self._settings.dump() self.update_profile_list()
def choose_data_prefix(self): dial = QFileDialog() dial.setAcceptMode(QFileDialog.AcceptOpen) dial.setFileMode(QFileDialog.Directory) dial.setDirectory(self.base_prefix.text()) dial.setHistory(dial.history() + self.settings.get_path_history()) if dial.exec_(): dir_path = str(dial.selectedFiles()[0]) self.base_prefix.setText(dir_path)
def choose_result_prefix(self): dial = QFileDialog() dial.setOption(QFileDialog.DontUseNativeDialog, True) dial.setAcceptMode(QFileDialog.AcceptOpen) dial.setFileMode(QFileDialog.Directory) dial.setDirectory(self.result_prefix.text()) dial.setHistory(dial.history() + self.settings.get_path_history()) if dial.exec_(): dir_path = str(dial.selectedFiles()[0]) self.result_prefix.setText(dir_path)
def mapping_dialog(): dial = QFileDialog(self, "Select file") dial.setHistory(dial.history() + self.settings.get_path_history()) base_path = str(self.base_prefix.text()).strip() if base_path != "": dial.setDirectory(base_path) dial.setFileMode(QFileDialog.ExistingFile) if dial.exec_(): path = str(dial.selectedFiles()) self.mask_path_list[i].setText(path) file_mapper: MaskFile = self.mask_mapper_list[pos] file_mapper.set_map_path(path)