Beispiel #1
0
    def on_file_dialog(self, dialog_type, directory, allow_multiple,
                       save_filename, file_filter):
        if dialog_type == FOLDER_DIALOG:
            self._file_name = QFileDialog.getExistingDirectory(
                self,
                self.localization['linux.openFolder'],
                options=QFileDialog.ShowDirsOnly)
        elif dialog_type == OPEN_DIALOG:
            if allow_multiple:
                self._file_name = QFileDialog.getOpenFileNames(
                    self, self.localization['linux.openFiles'], directory,
                    file_filter)
            else:
                self._file_name = QFileDialog.getOpenFileName(
                    self, self.localization['linux.openFile'], directory,
                    file_filter)
        elif dialog_type == SAVE_DIALOG:
            if directory:
                save_filename = os.path.join(str(directory),
                                             str(save_filename))

            self._file_name = QFileDialog.getSaveFileName(
                self, self.localization['global.saveFile'], save_filename)

        self._file_name_semaphore.release()
Beispiel #2
0
    def selectPath(self):
        """Pops up the 'select a file/directory' dialog"""
        # todo: This probably needs some reworking to work properly with different scenarios... (file + dir)
        self._editing = True
        current_directory = self.getPath()

        # if not os.path.exists(currentDirectory):
        #    currentDirectory = "~"

        if self._model.pathMustBeAFile():
            current_directory = QFileDialog.getOpenFileName(
                self, "Select a file path", current_directory)
        else:
            current_directory = QFileDialog.getExistingDirectory(
                self, "Select a directory", current_directory)

        if not current_directory == "":
            if not self._model.pathMustBeAbsolute():
                cwd = os.getcwd()
                match = re.match(cwd + "/(.*)", current_directory)
                if match:
                    current_directory = match.group(1)

            self._path_line.setText(current_directory)
            self._model.setPath(self.getPath())

        self._editing = False
Beispiel #3
0
    def load_registration_directory(self):
        self.status_label.setText("Loading...")
        options = QFileDialog.Options()
        options |= QFileDialog.DontUseNativeDialog
        directory = QFileDialog.getExistingDirectory(
            self,
            "Select registration directory",
            options=options,
        )
        # deal with existing dialog
        if directory is not "":
            self.registration_directory = Path(directory)
            self.initialise_registration_paths()
            self.load_cellfinder_project_button.setVisible(False)
            self.load_registration_project_button.setVisible(False)
            self.load_raw_data_directory_button.setVisible(True)
            self.load_raw_data_single_button.setVisible(True)

            self.image_scales = self.get_registration_scaling()
            if self.image_scales is not None:
                self.load_registration_button.setVisible(True)
                self.load_downsampled_data_button.setVisible(True)
            else:
                print("Config files and logs could not be parsed to detect "
                      "the data scaling")
        self.status_label.setText("Ready")
Beispiel #4
0
 def choose_work_directory(self):
     dialog = QFileDialog(self, directory=self.work_directory.text())
     directory: str = dialog.getExistingDirectory()
     if not directory or len(
             directory) == 0 or not os.path.exists(directory):
         return
     self.work_directory.setText(directory)
Beispiel #5
0
def pick_directory(parent, title="Select Directory", path=Path("~")):
    path = QFileDialog.getExistingDirectory(parent, title, str(path.resolve()), QFileDialog.ShowDirsOnly)

    if path:
        return Path(path).resolve()

    return None
    def get_brainreg_directory(self, standard_space):
        """
        Shows file dialog to choose output directory
        and sets global directory info
        """
        if standard_space:
            self.plugin = "brainreg_standard"
            self.standard_space = True
        else:
            self.plugin = "brainreg"
            self.standard_space = False

        self.status_label.setText("Loading...")
        options = QFileDialog.Options()
        options |= QFileDialog.DontUseNativeDialog
        brainreg_directory = QFileDialog.getExistingDirectory(
            self,
            "Select brainreg directory",
            options=options,
        )

        if not brainreg_directory:
            return

        if self.directory != brainreg_directory:
            status = self.remove_layers()
            if not status:
                return  # Something prevented deletion
            self.directory = Path(brainreg_directory)
        else:
            print(f"{str(brainreg_directory)} already loaded.")
            return

        # Otherwise, proceed loading brainreg dir
        self.load_brainreg_directory()
Beispiel #7
0
    def configuration(self):
        # bring file dialog to locate where the file will be saved
        base_folder = Path(self.parent.working_dir)
        directory = str(base_folder.parent)
        _export_folder = QFileDialog.getExistingDirectory(
            self.parent,
            directory=directory,
            caption="Select Output Folder",
            options=QFileDialog.ShowDirsOnly)

        if _export_folder:
            data, metadata = self.get_data_metadata_from_selection_tab()

            # collect initial selection size (x0, y0, width, height)
            o_get = Get(parent=self.parent)
            [x0, y0, x1, y1, width, height] = o_get.selection_roi_dimension()

            name_of_ascii_file = ExportHandler.makeup_name_of_profile_ascii_file(
                base_name=str(base_folder.name),
                export_folder=_export_folder,
                x0=x0,
                y0=y0,
                width=width,
                height=height)

            make_ascii_file(metadata=metadata,
                            data=data,
                            output_file_name=name_of_ascii_file,
                            dim='1d')

            self.parent.ui.statusbar.showMessage(
                "{} has been created!".format(name_of_ascii_file),
                10000)  # 10s
            self.parent.ui.statusbar.setStyleSheet("color: green")
Beispiel #8
0
    def slot_getAndSetPath(self):
        new_path = QFileDialog.getExistingDirectory(self, self.tr("Set Path"),
                                                    self.ui.le_folder.text(),
                                                    QFileDialog.ShowDirsOnly)

        if new_path:
            self.ui.le_folder.setText(new_path)
 def output_dir_button_clicked(self):
     _output_folder = QFileDialog.getExistingDirectory(caption="Select Output Folder ...",
                                                       directory=self.parent.output_folder,
                                                       options=QFileDialog.ShowDirsOnly)
     if _output_folder:
         self.ui.output_dir_label.setText(str(_output_folder))
         self.parent.output_folder = str(_output_folder)
Beispiel #10
0
 def cache_dir_button_clicked(self):
     _cache_folder = QFileDialog.getExistingDirectory(caption="Select Cache Folder ...",
                                                      directory=self.parent.cache_folder,
                                                      options=QFileDialog.ShowDirsOnly)
     if _cache_folder:
         self.ui.cache_dir_label.setText(str(_cache_folder))
         self.parent.cache_folder = str(_cache_folder)
Beispiel #11
0
 def _click_dirButton(self):
     directory = QFileDialog.getExistingDirectory(
         self, "Choose directory for saving new file", "",
         QFileDialog.DontUseNativeDialog)
     if directory:
         self.dirEdit.setText(directory)
         self.directory = str(directory)
 def cache_dir_button_clicked(self):
     _cache_folder = QFileDialog.getExistingDirectory(
         caption="Select Cache Folder ...",
         directory=self.parent.cache_folder,
         options=QFileDialog.ShowDirsOnly)
     if _cache_folder:
         self.ui.cache_dir_label.setText(str(_cache_folder))
         self.parent.cache_folder = str(_cache_folder)
Beispiel #13
0
 def __set_dir(self) -> None:
     """Choose path and it will be set as environment variable if accepted."""
     path = self.path_edit.text()
     if not isdir(path):
         path = self.path_edit.placeholderText()
     path = QFileDialog.getExistingDirectory(self, "Choose a directory", path)
     if path:
         self.path_edit.setText(path)
 def output_dir_button_clicked(self):
     _output_folder = QFileDialog.getExistingDirectory(
         caption="Select Output Folder ...",
         directory=self.parent.output_folder,
         options=QFileDialog.ShowDirsOnly)
     if _output_folder:
         self.ui.output_dir_label.setText(str(_output_folder))
         self.parent.output_folder = str(_output_folder)
Beispiel #15
0
 def get_brainreg_directory(self):
     options = QFileDialog.Options()
     options |= QFileDialog.DontUseNativeDialog
     self.brainreg_directory = QFileDialog.getExistingDirectory(
         self,
         "Select brainreg directory",
         options=options,
     )
Beispiel #16
0
 def select_file(self):
     name = QFileDialog.getExistingDirectory(
         self,
         self.tr("Select File"),
         os.path.dirname(self.get_value()),  # 起始路径
     )
     if name != '':
         self.ctrl.setText(name)
Beispiel #17
0
 def _open_folder(self):
     """Add a folder of files from the menubar."""
     folder = QFileDialog.getExistingDirectory(
         parent=self,
         caption='Select folder...',
         directory=self._last_visited_dir,  # home dir by default
     )
     if folder is not None:
         self._add_files([folder])
Beispiel #18
0
def choose_directory_dialog(parent=None, prompt="Select directory"):
    options = QFileDialog.Options()
    options |= QFileDialog.DontUseNativeDialog
    directory = QFileDialog.getExistingDirectory(
        parent,
        prompt,
        options=options,
    )
    return directory
Beispiel #19
0
 def _open_folder_dialog(self):
     """Add a folder of files from the menubar."""
     folder = QFileDialog.getExistingDirectory(
         parent=self,
         caption='Select folder...',
         directory=self._last_visited_dir,  # home dir by default
     )
     if folder not in {'', None}:
         self.viewer.open([folder])
Beispiel #20
0
 def dir_browse_dialog(self, title: str = 'Select Directory') -> str:
     r"""Pop up a directory dialog box.
     @param title: string to use as dialog's title
     @returns absolute path to directory
     """
     dirname = QFileDialog.getExistingDirectory(self, caption=title)
     if isinstance(dirname, tuple):
         dirname = dirname[0]
     return dirname
Beispiel #21
0
 def master_browse_button_clicked(self):
     _master_folder = QFileDialog.getExistingDirectory(
         caption="Select Output Folder ...",
         directory=self.parent.output_folder,
         options=QFileDialog.ShowDirsOnly)
     if _master_folder:
         self.ui.master_output_directory_label.setText(str(_master_folder))
         self.master_folder = _master_folder
         self.check_run_calibration_status()
 def _savedir_browse(self):
     save_dir = QFileDialog.getExistingDirectory(self, "Output Directory - Choose a directory",
                                                       os.path.expanduser('~'),
                                                       QFileDialog.ShowDirsOnly
                                                       | QFileDialog.DontResolveSymlinks)
     if not save_dir:
         return
     if isinstance(save_dir, tuple):
         save_dir = save_dir[0]
     self._content.savedir_edit.setText(save_dir)
Beispiel #23
0
 def get_directory_name_for_saving(self):
     """
     Pops up a directory selection dialogue
     :return : The path to the directory
     """
     # Note that the native dialog does not always show the files
     # in the directory on Linux, but using the non-native dialog
     # is not very pleasant on Windows or Mac
     directory = QFileDialog.getExistingDirectory(caption='Select folder for exported plots')
     return directory
 def _savedir_browse(self):
     save_dir = QFileDialog.getExistingDirectory(
         self, "Output Directory - Choose a directory",
         os.path.expanduser('~'), QFileDialog.ShowDirsOnly
         | QFileDialog.DontResolveSymlinks)
     if not save_dir:
         return
     if isinstance(save_dir, tuple):
         save_dir = save_dir[0]
     self._content.savedir_edit.setText(save_dir)
Beispiel #25
0
 def get_directory_name_for_saving(self):
     """
     Pops up a directory selection dialogue
     :return : The path to the directory
     """
     # Note that the native dialog does not always show the files
     # in the directory on Linux, but using the non-native dialog
     # is not very pleasant on Windows or Mac
     directory = QFileDialog.getExistingDirectory(caption='Select folder for exported plots')
     return directory
Beispiel #26
0
 def get_output_directory(self):
     if self.output_directory is None:
         options = QFileDialog.Options()
         options |= QFileDialog.DontUseNativeDialog
         self.output_directory = QFileDialog.getExistingDirectory(
             self,
             "Select output directory",
             options=options,
         )
         self.output_directory = Path(self.output_directory)
Beispiel #27
0
 def local_output_dir_clicked(self, entry=""):
     _local_folder = QFileDialog.getExistingDirectory(
         caption="Select Output Folder ...",
         directory=self.master_folder,
         options=QFileDialog.ShowDirsOnly)
     if _local_folder:
         _master_list_ui = self.master_list_ui[entry]
         _local_label = _master_list_ui.output_dir_value
         _local_label.setText(str(_local_folder))
         self.check_run_calibration_status()
Beispiel #28
0
	def export_bragg_peak_profile(self):
		working_dir = str(Path(self.parent.working_dir).parent)
		_export_folder = QFileDialog.getExistingDirectory(self.parent,
		                                                  directory=working_dir,
		                                                  caption="Select Output Folder")

		QtGui.QGuiApplication.processEvents()  # to close QFileDialog

		if _export_folder:

			o_gui = GuiUtility(parent=self.parent)
			list_row_selected = o_gui.get_rows_of_table_selected(table_ui=self.parent.ui.bragg_edge_tableWidget)

			for row_selected in list_row_selected:

				# make up output file name
				name_of_row = o_gui.get_table_str_item(table_ui=self.parent.ui.bragg_edge_tableWidget,
				                                       row=row_selected,
				                                       column=0)
				[x0, y0, width, height] = name_of_row.split("; ")
				name_of_row_formatted = "x0{}_y0{}_width{}_height{}".format(x0,y0, width, height)
				file_name = "kropff_bragg_peak_profile_{}.txt".format(name_of_row_formatted)
				full_file_name = str(Path(_export_folder) / Path(file_name))

				o_fit = KropffFittingJobHandler(parent=self.parent)
				o_fit.prepare(kropff_tooldbox='bragg_peak')

				x_axis = o_fit.xaxis_to_fit
				y_axis = o_fit.list_yaxis_to_fit[row_selected]

				a0 = self.parent.fitting_input_dictionary['rois'][row_selected]['fitting']['kropff']['high']['a0']
				b0 = self.parent.fitting_input_dictionary['rois'][row_selected]['fitting']['kropff']['high']['b0']
				ahkl = self.parent.fitting_input_dictionary['rois'][row_selected]['fitting']['kropff']['low']['ahkl']
				bhkl = self.parent.fitting_input_dictionary['rois'][row_selected]['fitting']['kropff']['low']['bhkl']

				metadata = ["# Bragg peak fitting of row {}".format(row_selected+1)]
				metadata.append("# x0: {}".format(x0))
				metadata.append("# y0: {}".format(y0))
				metadata.append("# width: {}".format(width))
				metadata.append("# height: {}".format(height))
				metadata.append("# a0: {}".format(a0))
				metadata.append("# b0: {}".format(b0))
				metadata.append("# ahkl: {}".format(ahkl))
				metadata.append("# bhkl: {}".format(bhkl))
				metadata.append("#")
				metadata.append("# lambda (Angstroms), average transmission")

				make_ascii_file_from_2dim_array(metadata=metadata,
				                                col1=x_axis,
				                                col2=y_axis,
				                                output_file_name=full_file_name)

			message = "Exported {} file(s) in {}".format(len(list_row_selected), _export_folder)
			self.parent.ui.statusbar.showMessage(message, 15000)   # 15s
			self.parent.ui.statusbar.setStyleSheet("color: green")
 def file_open_click(self):
     """callback for file-open menu"""
     temp_path = self._last_path or Path("~").expanduser()
     new_path = QFileDialog.getExistingDirectory(self, "Select folder...",
                                                 str(temp_path))
     if not new_path:
         return
     self._last_path = Path(new_path)
     model = ImageModel(self._last_path)
     self.thumbnail_view.setModel(model)
     self.statusBar().showMessage(f"Loaded {model.max_count} images")
Beispiel #30
0
 def pb_set_wd_clicked(self):
     dir_current = self.le_wd.text()
     dir = QFileDialog.getExistingDirectory(
         self,
         "Select Working Directory",
         dir_current,
         QFileDialog.ShowDirsOnly | QFileDialog.DontResolveSymlinks,
     )
     if dir:
         self.gpc.set_current_working_directory(dir)
         self.le_wd.setText(dir)
Beispiel #31
0
 def _output_dir_browse(self):
     output_dir = QFileDialog.getExistingDirectory(self, "Output Directory - Choose a directory",
                                                         os.path.expanduser('~'),
                                                         QFileDialog.ShowDirsOnly
                                                         | QFileDialog.DontResolveSymlinks)
     if not output_dir:
         return
     if isinstance(output_dir, tuple):
         output_dir = output_dir[0]
     self._summary.output_dir_edit.setText(output_dir)
     self._settings.emit_key_value("OUTPUT_DIR", output_dir)
Beispiel #32
0
    def dir_browse_dialog(self, default_dir=''):
        """
            Pop up a directory dialog box.
        """
        dirname = QFileDialog.getExistingDirectory(
            self, "Select Directory", default_dir,
            QFileDialog.DontUseNativeDialog)
        if isinstance(dirname, tuple):
            dirname = dirname[0]

        return dirname
 def set_output_directory(self):
     self.status_label.setText("Loading...")
     options = QFileDialog.Options()
     options |= QFileDialog.DontUseNativeDialog
     self.directory = QFileDialog.getExistingDirectory(
         self,
         "Select output directory",
         options=options,
     )
     if self.directory != "":
         self.directory = Path(self.directory)
Beispiel #34
0
 def _browse_directory(self):
     direc = QFileDialog.getExistingDirectory(self, "Open Directory",
                                              self._settings.data_path)
     if not direc:
         return
     if isinstance(direc, tuple):
         direc = direc[0]
     # Store the location of the loaded file
     self._settings.data_path = str(direc)
     self._content.directory_edit.setText(direc)
     self._update_content()
 def target_autonom_clicked(self):
     _autonom_folder = QFileDialog.getExistingDirectory(caption="Select Output autoNOM Folder ...",
                                                        directory=self.parent.current_folder,
                                                        options=QFileDialog.ShowDirsOnly)
     if not _autonom_folder:
         return
     if isinstance(_autonom_folder, tuple):
         _autonom_folder = _autonom_folder[0]
     _autonom_folder = os.path.basename(_autonom_folder)
     self.ui.target_autonom_value.setText(str(_autonom_folder))
     self.check_status_transfer_button()
 def _output_dir_browse(self):
     output_dir = QFileDialog.getExistingDirectory(self, "Output Directory - Choose a directory",
                                                         os.path.expanduser('~'),
                                                         QFileDialog.ShowDirsOnly
                                                         | QFileDialog.DontResolveSymlinks)
     if not output_dir:
         return
     if isinstance(output_dir, tuple):
         output_dir = output_dir[0]
     self._summary.output_dir_edit.setText(output_dir)
     self._settings.emit_key_value("OUTPUT_DIR", output_dir)
Beispiel #37
0
 def move_to_folder(self):
     _new_folder = QFileDialog.getExistingDirectory(parent=self.main_window,
                                                    caption="Select working directory",
                                                    directory=self.current_folder)
     if not _new_folder:
         self.user_canceled = True
     else:
         if isinstance(_new_folder, tuple):
             _new_folder = _new_folder[0]
         os.chdir(_new_folder)
         self.main_window.current_folder = _new_folder
         self.main_window.setWindowTitle(_new_folder)
Beispiel #38
0
    def dir_browse_dialog(self):
        """
            Pop up a directory dialog box.
            @param data_type: string used to filter the files
            @param title: string to use as title
            @param multi: multiselection is enabled if True
        """
        dirname = QFileDialog.getExistingDirectory(self, "Select Directory")
        if isinstance(dirname, tuple):
            dirname = dirname[0]

        return dirname
    def browse_folder(self):
        _current_folder = self.current_folder
        _caption = "Select Output Folder"

        _folder = QFileDialog.getExistingDirectory(parent=self.parent,
                                                   caption=_caption,
                                                   directory=_current_folder)
        if not _folder:
            return
        if isinstance(_folder, tuple):
            _folder = _folder[0]

        self.parent.ui.mantid_output_directory_value.setText(str(_folder) + self._output_ext)
 def source_ipts_clicked(self):
     _ipts_folder = QFileDialog.getExistingDirectory(caption="Select Input IPTS Folder ...",
                                                     directory=self.ipts_folder,
                                                     options=QFileDialog.ShowDirsOnly)
     if not _ipts_folder:
         return
     if isinstance(_ipts_folder, tuple):
         _ipts_folder = _ipts_folder[0]
     self.ipts_folder = _ipts_folder
     _ipts_folder = os.path.basename(_ipts_folder)
     _ipts_number = _ipts_folder.split('-')[1]
     self.ui.source_ipts_value.setText(str(_ipts_number))
     self.check_status_transfer_button()
Beispiel #41
0
    def select_working_folder(self):
        _current_folder = self.main_window.current_folder
        _new_folder = QFileDialog.getExistingDirectory(parent=self.main_window,
                                                       caption="Select working directory",
                                                       directory=_current_folder)
        if not _new_folder:
            return
        if isinstance(_new_folder, tuple):
            _new_folder = _new_folder[0]
        self.main_window.current_folder = _new_folder
        # o_gui = Step1GuiHandler(parent=self.main_window)
        # o_gui.set_main_window_title()
        self.set_main_window_title()

        # move to new folder specifiy
        os.chdir(_new_folder)

        o_auto_populate = AutoPopulateWidgets(main_window=self.main_window)
        o_auto_populate.run()
Beispiel #42
0
    def do_browse_local_cache_dir(self):
        """ Browse local cache directory
        :return:
        """
        local_cache_dir = QFileDialog.getExistingDirectory(self, 'Get Local Cache Directory', self._homeSrcDir)
        if isinstance(local_cache_dir, tuple):
            local_cache_dir = local_cache_dir[0]

        # Set local directory to control
        status, error_message = self._myControl.set_local_data_dir(local_cache_dir)
        if status is False:
            self.pop_one_button_dialog(error_message)
            return

        # Synchronize to local data/spice directory and local cache directory
        # if str(self.ui.lineEdit_localSpiceDir.text()) != '':
        #     prev_dir = str(self.ui.lineEdit_localSrcDir.text())
        #     self.pop_one_button_dialog('Local data directory was set up as %s' %
        #                                prev_dir)
        self.ui.lineEdit_localSrcDir.setText(local_cache_dir)
Beispiel #43
0
def getexistingdirectory(parent=None, caption='', basedir='',
                         options=QFileDialog.ShowDirsOnly):
    """Wrapper around QtGui.QFileDialog.getExistingDirectory static method
    Compatible with PyQt >=v4.4 (API #1 and #2) and PySide >=v1.0"""
    # Calling QFileDialog static method
    if sys.platform == "win32":
        # On Windows platforms: redirect standard outputs
        _temp1, _temp2 = sys.stdout, sys.stderr
        sys.stdout, sys.stderr = None, None
    try:
        result = QFileDialog.getExistingDirectory(parent, caption, basedir,
                                                  options)
    finally:
        if sys.platform == "win32":
            # On Windows platforms: restore standard outputs
            sys.stdout, sys.stderr = _temp1, _temp2
    if not is_text_string(result):
        # PyQt API #1
        result = to_text_string(result)
    return result
    def do_browse_output_dir(self):
        """
        browse the output directory
        :return:
        """
        # get scan number or numbers
        try:
            exp_number = self.get_exp_number()
        except RuntimeError as run_err:
            gui_util.show_message(self, '[ERROR] {0}'.format(run_err))
            return

        default_dir = os.path.join('/HFIR/HB3A/Exp{0}/shared/'.format(exp_number))

        # get output directory
        output_dir = QFileDialog.getExistingDirectory(self, 'Outputs for pre-processed scans', default_dir)
        if not output_dir:
            return
        if isinstance(output_dir, tuple):
            output_dir = output_dir[0]
        self.ui.lineEdit_outputDir.setText(output_dir)