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()
Beispiel #2
0
    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()
Beispiel #3
0
        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
Beispiel #4
0
 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 != ""
Beispiel #5
0
    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)
Beispiel #6
0
    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)
Beispiel #7
0
    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()
Beispiel #9
0
    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()
Beispiel #10
0
 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