def __runOpenDialog(self): startdir = os.path.expanduser("~/") if self.recent_paths: startdir = os.path.dirname(self.recent_paths[0].abspath) if OWImportImages.Modality == Qt.WindowModal: dlg = QFileDialog( self, "Select Top Level Directory", startdir, acceptMode=QFileDialog.AcceptOpen, modal=True, ) dlg.setFileMode(QFileDialog.Directory) dlg.setOption(QFileDialog.ShowDirsOnly) dlg.setDirectory(startdir) dlg.setAttribute(Qt.WA_DeleteOnClose) @dlg.accepted.connect def on_accepted(): dirpath = dlg.selectedFiles() if dirpath: self.setCurrentPath(dirpath[0]) self.start() dlg.open() else: dirpath = QFileDialog.getExistingDirectory( self, "Select Top Level Directory", startdir) if dirpath: self.setCurrentPath(dirpath) self.start()
def open_report(self): """ Present an 'Open report' dialog to the user, load a '.report' file (as saved by OWReport) and create a new canvas window associated with the OWReport instance. """ settings = QSettings() KEY = "report/file-dialog-dir" start_dir = settings.value(KEY, "", type=str) dlg = QFileDialog( self, windowTitle=self.tr("Open Report"), acceptMode=QFileDialog.AcceptOpen, fileMode=QFileDialog.ExistingFile, ) if os.path.isdir(start_dir): dlg.setDirectory(start_dir) dlg.setWindowModality(Qt.ApplicationModal) dlg.setNameFilters(["Report (*.report)"]) def accepted(): directory = dlg.directory().absolutePath() filename = dlg.selectedFiles()[0] settings.setValue(KEY, directory) self._open_report(filename) dlg.accepted.connect(accepted) dlg.exec()
def get_save_filename(self): # pragma: no cover if sys.platform == "darwin": def remove_star(filt): return filt.replace(" (*.", " (.") else: def remove_star(filt): return filt no_ext_filters = {remove_star(f): f for f in self.valid_filters()} filename = self.initial_start_dir() while True: dlg = QFileDialog(None, "Save File", filename, ";;".join(no_ext_filters)) dlg.setAcceptMode(dlg.AcceptSave) dlg.selectNameFilter(remove_star(self.default_valid_filter())) dlg.setOption(QFileDialog.DontConfirmOverwrite) if dlg.exec() == QFileDialog.Rejected: return "", "" filename = dlg.selectedFiles()[0] selected_filter = no_ext_filters[dlg.selectedNameFilter()] filename = self._replace_extension( filename, self._extension_from_filter(selected_filter)) if not os.path.exists(filename) or QMessageBox.question( self, "Overwrite file?", f"File {os.path.split(filename)[1]} already exists.\n" "Overwrite?") == QMessageBox.Yes: return filename, selected_filter
def get_object(self): dialog = QFileDialog() self.response = dialog.getExistingDirectory( None, "Choose directory", expanduser("~"), QFileDialog.ShowDirsOnly ) if self.response != "": self.value = self.response return self.response != ""
def browse(self): dlg = QFileDialog(self) dlg.setAcceptMode(QFileDialog.AcceptOpen) dlg.setFileMode(QFileDialog.ExistingFile) filters = Formats dlg.setNameFilters(filters) if filters: dlg.selectNameFilter(filters[0]) if dlg.exec_() == QFileDialog.Accepted: filename = dlg.selectedFiles()[0] self.set_current_path(filename)
def browse(self, start_dir=None): start_dir = start_dir or self.start_dir path, _ = QFileDialog().getOpenFileName(self, self.dialog_title, start_dir, self.dialog_format) if path and self.recent_files is not None: if path in self.recent_files: self.recent_files.remove(path) self.recent_files.insert(0, path) self.update_combo() self.open_file(path)
def save_project(self, project_path=None): try: if project_path is None: dialog = QFileDialog() dialog.setLabelText(QFileDialog.Accept, 'Save') project_path = dialog.getExistingDirectory( self, caption="Select the project directory to save") if project_path is not None and str(project_path) != '': project_path = str(project_path) self.save({}, project_path) except Exception as e: traceback.print_exc() QMessageBox.critical(self, "Error", str(e))
def browse(self): dlg = QFileDialog( self, acceptMode=QFileDialog.AcceptOpen, fileMode=QFileDialog.ExistingFiles, ) filters = owloaddata.Formats dlg.setNameFilters(filters) if filters: dlg.selectNameFilter(filters[0]) if dlg.exec_() == QFileDialog.Accepted: for filename in dlg.selectedFiles(): self.set_current_path(filename) self.select_last_item() self.__recent_combo_view_resize()
def browse_col_annotations(self): dlg = QFileDialog(self, acceptMode=QFileDialog.AcceptOpen, fileMode=QFileDialog.ExistingFile) filters = AnnotationFormats dlg.setNameFilters(filters) if filters: dlg.selectNameFilter(filters[0]) if dlg.exec_() == QFileDialog.Accepted: filename = dlg.selectedFiles()[0] m = self.col_annotations_combo.model() # type: QStandardItemModel pathitem = RecentPath.create(filename, []) index = insert_recent_path(m, pathitem) self.col_annotations_combo.setCurrentIndex(index) self._invalidate()
def get_save_filename(self): """ Open a user dialog and returns the dicrectory path. """ filename = self._initial_start_dir() while True: dlg = QFileDialog(None, "Select directory to save", filename) dlg.setFileMode(QFileDialog.Directory) dlg.setOption(QFileDialog.ShowDirsOnly) dlg.setAcceptMode(dlg.AcceptSave) dlg.setOption(QFileDialog.DontConfirmOverwrite) if dlg.exec() == QFileDialog.Rejected: return None filename = list(dlg.selectedFiles())[0] if not os.path.exists(filename) or QMessageBox.question( self, "Overwrite file?", f"Folder {os.path.split(filename)[1]} already exists.\n" "Overwrite?") == QMessageBox.Yes: return filename