示例#1
0
    def update_fit_peak_ranges_table(self, **kwargs):

        self.parent.ui.peak_range_table.blockSignals(True)

        def __get_kwargs_value(key='', data_type='boolean'):
            if data_type == 'boolean':
                _default = False
            elif data_type == 'array':
                _default = []
            return kwargs[key] if key in kwargs.keys() else _default

        # click = __get_kwargs_value('click', data_type='boolean')
        # move = __get_kwargs_value('move', data_type='boolean')
        # release = __get_kwargs_value('release', data_type='boolean')

        list_fit_peak_ranges = __get_kwargs_value('list_fit_peak_ranges',
                                                  data_type='array')
        # list_fit_peak_ranges_matplotlib_id = __get_kwargs_value('list_fit_peak_ranges_matplotlib_id',
        #                                                         data_type='array')
        list_fit_peak_labels = __get_kwargs_value('list_fit_peak_labels',
                                                  data_type='array')
        list_fit_peak_d0 = __get_kwargs_value('list_fit_peak_d0',
                                              data_type='array')

        o_gui = GuiUtilities(parent=self.parent)
        o_gui.reset_peak_range_table()
        o_gui.fill_peak_range_table(list_fit_peak_ranges=list_fit_peak_ranges,
                                    list_fit_peak_labels=list_fit_peak_labels,
                                    list_fit_peak_d0=list_fit_peak_d0)

        self.parent.ui.peak_range_table.blockSignals(False)
        o_gui.check_if_fitting_widgets_can_be_enabled()
示例#2
0
    def peak_range_table_right_click(self, position=-1):

        nbr_row = self.parent.ui.peak_range_table.rowCount()
        if nbr_row == 0:
            return

        menu = QMenu(self.parent)
        _remove_row = menu.addAction("Remove")
        action = menu.exec_(QCursor.pos())

        if action == _remove_row:
            self.remove_peak_range_table_row()

        o_gui = GuiUtilities(parent=self.parent)
        o_gui.check_if_fitting_widgets_can_be_enabled()
示例#3
0
    def load_and_plot(self, hidra_file_name):
        try:
            o_load = Load(parent=self.parent)
            o_load.load(project_file=hidra_file_name)

        except RuntimeError as run_err:
            pop_message(self, 'Failed to load {}'.format(hidra_file_name),
                        str(run_err), 'error')
        except KeyError as key_err:
            pop_message(self, 'Failed to load {}'.format(hidra_file_name),
                        str(key_err), 'error')

        self.parent.current_root_statusbar_message = "Working with: {} " \
                                                     "\t\t\t\t Project Name: {}" \
                                                     "".format(hidra_file_name,
                                                               self.parent._project_name)
        self.parent.ui.statusbar.showMessage(
            self.parent.current_root_statusbar_message)

        try:
            o_plot = Plot(parent=self.parent)
            o_plot.plot_diff_data(plot_model=False)
            o_plot.reset_fitting_plot()

        except RuntimeError as run_err:
            pop_message(self, 'Failed to plot {}'.format(hidra_file_name),
                        str(run_err), 'error')

        try:
            o_fit = Fit(parent=self.parent)
            o_fit.initialize_fitting_table()

            # enabled all fitting widgets and main plot
            o_gui = GuiUtilities(parent=self.parent)
            o_gui.check_if_fitting_widgets_can_be_enabled()
            o_gui.enabled_sub_runs_interation_widgets(True)
            # o_gui.enabled_fitting_widgets(True)
            o_gui.enabled_data_fit_plot(True)
            o_gui.enabled_peak_ranges_widgets(True)
            o_gui.enabled_1dplot_widgets(True)

        except RuntimeError as run_err:
            pop_message(
                self,
                'Failed to initialize widgets for {}'.format(hidra_file_name),
                str(run_err), 'error')
示例#4
0
    def browse_load_plot_hdf(self):
        if self.parent._core is None:
            raise RuntimeError('Not set up yet!')

        # o_utility = Utilities(parent=self.parent)
        # hydra_file_name = o_utility.get_default_hdf()
        hidra_file_name = None
        if hidra_file_name is None:
            # No default Hidra file: browse the file
            file_filter = 'HDF (*.hdf);H5 (*.h5)'
            hidra_file_name = browse_file(self.parent,
                                          'HIDRA Project File',
                                          os.getcwd(),
                                          file_filter,
                                          file_list=False,
                                          save_file=False)

            if hidra_file_name is None:
                return  # user clicked cancel

        self.parent.current_hidra_file_name = hidra_file_name
        try:
            o_load = Load(parent=self.parent)
            o_load.load(project_file=hidra_file_name)

        except RuntimeError as run_err:
            pop_message(self, 'Failed to load {}'.format(hidra_file_name),
                        str(run_err), 'error')
        except KeyError as key_err:
            pop_message(self, 'Failed to load {}'.format(hidra_file_name),
                        str(key_err), 'error')

        self.parent.current_root_statusbar_message = "Working with: {} " \
                                                     "\t\t\t\t Project Name: {}" \
                                                     "".format(hidra_file_name,
                                                               self.parent._project_name)
        self.parent.ui.statusbar.showMessage(
            self.parent.current_root_statusbar_message)

        try:
            o_plot = Plot(parent=self.parent)
            o_plot.plot_diff_data(plot_model=False)
            o_plot.reset_fitting_plot()

        except RuntimeError as run_err:
            pop_message(self, 'Failed to plot {}'.format(hidra_file_name),
                        str(run_err), 'error')

        try:
            o_fit = Fit(parent=self.parent)
            o_fit.initialize_fitting_table()

            # enabled all fitting widgets and main plot
            o_gui = GuiUtilities(parent=self.parent)
            o_gui.check_if_fitting_widgets_can_be_enabled()
            o_gui.enabled_sub_runs_interation_widgets(True)
            # o_gui.enabled_fitting_widgets(True)
            o_gui.enabled_data_fit_plot(True)
            o_gui.enabled_peak_ranges_widgets(True)
            o_gui.enabled_1dplot_widgets(True)

        except RuntimeError as run_err:
            pop_message(
                self,
                'Failed to initialize widgets for {}'.format(hidra_file_name),
                str(run_err), 'error')