def model_updated(self, model): config = model.get_config() map_names = config.maps_to_show with blocked_signals(self.selectedMap): current_selected = self.selectedMap.currentData(Qt.UserRole) self.selectedMap.clear() self.selectedMap.addItems(map_names) for index, map_name in enumerate(map_names): self.selectedMap.setItemData(index, map_name, Qt.UserRole) if map_name in config.map_plot_options and config.map_plot_options[ map_name].title: title = config.map_plot_options[map_name].title self.selectedMap.setItemData(index, map_name + ' (' + title + ')', Qt.DisplayRole) for ind in range(self.selectedMap.count()): if self.selectedMap.itemData(ind, Qt.UserRole) == current_selected: self.selectedMap.setCurrentIndex(ind) break if self.selectedMap.count(): self._update_map_specifics( self.selectedMap.currentData(Qt.UserRole)) else: self._update_map_specifics(None)
def set_new_model(self, model): with blocked_signals(self.textConfigEdit): if not self._flags['updating_config_from_string']: non_default_only = self.viewSelectedOptions.isChecked() self.textConfigEdit.setPlainText(model.get_config().to_yaml( non_default_only=non_default_only)) self._update_status_indication(True)
def _update_data(self, data_info): sorted_keys = list(sorted(data_info.get_map_names())) if len(data_info.get_map_names()): self.general_info_nmr_maps.setText(str(len(data_info.get_map_names()))) else: self.general_info_nmr_maps.setText('0') with blocked_signals(self.general_map_selection): self.general_map_selection.clear() self.general_map_selection.addItems(sorted_keys) for index, map_name in enumerate(sorted_keys): item = self.general_map_selection.item(index) item.setData(Qt.UserRole, map_name) with blocked_signals(self.mask_name): self.mask_name.clear() self.mask_name.insertItem(0, '-- None --') self.mask_name.insertItems(1, sorted_keys)
def set_new_data(self, data_info): if data_info.directory: self.general_info_directory.setText(self._split_long_path_elements(data_info.directory)) else: self.general_info_directory.setText('-') if len(data_info.maps): self.general_info_nmr_maps.setText(str(len(data_info.maps))) else: self.general_info_nmr_maps.setText('0') with blocked_signals(self.general_map_selection): self.general_map_selection.clear() self.general_map_selection.addItems(data_info.sorted_keys) for index, map_name in enumerate(data_info.sorted_keys): item = self.general_map_selection.item(index) item.setData(Qt.UserRole, map_name) with blocked_signals(self.mask_name): self.mask_name.clear() self.mask_name.insertItem(0, '-- None --') self.mask_name.insertItems(1, data_info.sorted_keys)
def reset(self): """Set all the values to their defaults""" self._current_map = None self.colormap.setCurrentText('hot') with blocked_signals(self.map_title): self.map_title.document().setPlainText('') with blocked_signals(self.data_colorbar_label): self.data_colorbar_label.document().setPlainText('') with blocked_signals(self.data_clipping_min): self.data_clipping_min.setValue(0) with blocked_signals(self.data_clipping_max): self.data_clipping_max.setValue(0) with blocked_signals(self.data_scale_min): self.data_scale_min.setValue(0) with blocked_signals(self.data_scale_max): self.data_scale_max.setValue(0) with blocked_signals(self.use_data_clipping_min): self.use_data_clipping_min.setChecked(False) with blocked_signals(self.use_data_clipping_max): self.use_data_clipping_max.setChecked(False) with blocked_signals(self.use_data_scale_min): self.use_data_scale_min.setChecked(False) with blocked_signals(self.use_data_scale_max): self.use_data_scale_max.setChecked(False) self.info_file_location.setText('-') self.info_maximum.setText('-') self.info_minimum.setText('-') self.info_shape.setText('-')
def set_new_config(self, config): data_info = self._controller.get_data() map_names = config.maps_to_show with blocked_signals(self.general_dimension): try: max_dimension = data_info.get_max_dimension(map_names) self.general_dimension.setMaximum(max_dimension) self.maximumDimension.setText(str(max_dimension)) except ValueError: self.general_dimension.setMaximum(0) self.maximumDimension.setText(str(0)) self.general_dimension.setValue(config.dimension) with blocked_signals(self.general_slice_index): try: max_slice = data_info.get_max_slice_index(config.dimension, map_names) self.general_slice_index.setMaximum(max_slice) self.maximumIndex.setText(str(max_slice)) except ValueError: self.general_slice_index.setMaximum(0) self.maximumIndex.setText(str(0)) self.general_slice_index.setValue(config.slice_index) with blocked_signals(self.general_volume_index): try: max_volume = data_info.get_max_volume_index(map_names) self.general_volume_index.setMaximum(max_volume) self.maximumVolume.setText(str(max_volume)) except ValueError: self.general_volume_index.setMaximum(0) self.maximumVolume.setText(str(0)) self.general_volume_index.setValue(config.volume_index) with blocked_signals(self.general_colormap): self.general_colormap.setCurrentText(config.colormap) with blocked_signals(self.general_rotate): self.general_rotate.setCurrentText(str(config.rotate)) if self.general_map_selection.count(): for map_name, map_config in config.map_plot_options.items(): if map_config.title: index = data_info.sorted_keys.index(map_name) item = self.general_map_selection.item(index) item.setData(Qt.DisplayRole, map_name + ' (' + map_config.title + ')') self.general_map_selection.blockSignals(True) for index, map_name in enumerate(data_info.sorted_keys): item = self.general_map_selection.item(index) if item: item.setSelected(map_name in map_names) self.general_map_selection.blockSignals(False) try: max_x = data_info.get_max_x_index(config.dimension, config.rotate, map_names) max_y = data_info.get_max_y_index(config.dimension, config.rotate, map_names) with blocked_signals(self.general_zoom_x_0, self.general_zoom_x_1, self.general_zoom_y_0, self.general_zoom_y_1): self.general_zoom_x_0.setMaximum(max_x) self.general_zoom_x_0.setValue(config.zoom.p0.x) self.general_zoom_x_1.setMaximum(max_x) self.general_zoom_x_1.setMinimum(config.zoom.p0.x) self.general_zoom_x_1.setValue(config.zoom.p1.x) self.general_zoom_y_0.setMaximum(max_y) self.general_zoom_y_0.setValue(config.zoom.p0.y) self.general_zoom_y_1.setMaximum(max_y) self.general_zoom_y_1.setMinimum(config.zoom.p0.y) self.general_zoom_y_1.setValue(config.zoom.p1.y) if config.zoom.p0.x == 0 and config.zoom.p1.x == 0: self.general_zoom_x_1.setValue(max_x) if config.zoom.p0.y == 0 and config.zoom.p1.y == 0: self.general_zoom_y_1.setValue(max_y) except ValueError: pass with blocked_signals(self.plot_title): self.plot_title.setText(config.title) with blocked_signals(self.general_display_order): self.general_display_order.clear() self.general_display_order.addItems(map_names) for index, map_name in enumerate(map_names): item = self.general_display_order.item(index) item.setData(Qt.UserRole, map_name) if map_name in config.map_plot_options and config.map_plot_options[map_name].title: title = config.map_plot_options[map_name].title item.setData(Qt.DisplayRole, map_name + ' (' + title + ')') with blocked_signals(self.general_show_axis): self.general_show_axis.setChecked(config.show_axis) with blocked_signals(self.general_colorbar_nmr_ticks): self.general_colorbar_nmr_ticks.setValue(config.colorbar_nmr_ticks) with blocked_signals(self.general_font_family): self.general_font_family.setCurrentText(config.font.family) with blocked_signals(self.general_font_size): self.general_font_size.setValue(config.font.size) with blocked_signals(self.general_interpolation): self.general_interpolation.setCurrentText(config.interpolation) with blocked_signals(self.general_flipud): self.general_flipud.setChecked(config.flipud) with blocked_signals(self.mask_name): if config.mask_name and config.mask_name in data_info.maps: for ind in range(self.mask_name.count()): if self.mask_name.itemText(ind) == config.mask_name: self.mask_name.setCurrentIndex(ind) break else: self.mask_name.setCurrentIndex(0)
def use(self, map_name): """Load the settings of the given map""" self._current_map = map_name current_model = self._controller.get_model() try: map_info = current_model.get_config().map_plot_options[map_name] except KeyError: map_info = SingleMapConfig() data_info = current_model.get_data() vmin, vmax = data_info.get_single_map_info(map_name).min_max( mask=self._get_mask(data_info, map_name)) with blocked_signals(self.map_title): self.map_title.document().setPlainText( map_info.title if map_info.title else '') with blocked_signals(self.data_colorbar_label): self.data_colorbar_label.document().setPlainText( map_info.colorbar_label if map_info.colorbar_label else '') with blocked_signals(self.colormap): if map_info.colormap is None: self.colormap.setCurrentIndex(0) else: self.colormap.setCurrentText(map_info.colormap) with blocked_signals(self.data_clipping_min): self.data_clipping_min.setValue(map_info.clipping.vmin) with blocked_signals(self.data_clipping_max): self.data_clipping_max.setValue(map_info.clipping.vmax) with blocked_signals(self.data_scale_min): self.data_scale_min.setValue(map_info.scale.vmin) with blocked_signals(self.data_scale_max): self.data_scale_max.setValue(map_info.scale.vmax) with blocked_signals(self.data_set_use_scale): self.data_set_use_scale.setChecked(map_info.scale.use_min or map_info.scale.use_max) with blocked_signals(self.data_set_use_clipping): self.data_set_use_clipping.setChecked(map_info.clipping.use_min or map_info.clipping.use_max) with blocked_signals(self.use_data_clipping_min): self.use_data_clipping_min.setChecked(map_info.clipping.use_min) with blocked_signals(self.use_data_clipping_max): self.use_data_clipping_max.setChecked(map_info.clipping.use_max) with blocked_signals(self.use_data_scale_min): self.use_data_scale_min.setChecked(map_info.scale.use_min) with blocked_signals(self.use_data_scale_max): self.use_data_scale_max.setChecked(map_info.scale.use_max) map_filename = data_info.get_file_path(map_name) if map_filename: self.info_file_location.setText( split_long_path_elements(map_filename, 25)) self.info_minimum.setText(str(vmin)) self.info_maximum.setText(str(vmax)) self.info_has_nan.setText('Yes' if data_info.get_single_map_info( map_name).has_nan() else 'No') self.info_shape.setText( str(data_info.get_single_map_info(map_name).shape))
def set_new_model(self, model): with blocked_signals(self.textConfigEdit): if not self._flags['updating_config_from_string']: self.textConfigEdit.setPlainText(model.get_config().to_yaml()) self._update_status_indication(True)
def use(self, map_name): """Load the settings of the given map""" self._current_map = map_name try: map_info = self._controller.get_config().map_plot_options[map_name] except KeyError: map_info = SingleMapConfig() data_info = self._controller.get_data() vmin = data_info.maps[map_name].min() vmax = data_info.maps[map_name].max() with blocked_signals(self.map_title): self.map_title.setText(map_info.title if map_info.title else '') with blocked_signals(self.data_colorbar_label): self.data_colorbar_label.setText( map_info.colorbar_label if map_info.colorbar_label else '') with blocked_signals(self.colormap): if map_info.colormap is None: self.colormap.setCurrentIndex(0) else: self.colormap.setCurrentText(map_info.colormap) with blocked_signals(self.data_clipping_min): self.data_clipping_min.setValue(map_info.clipping.vmin) with blocked_signals(self.data_clipping_max): self.data_clipping_max.setValue(map_info.clipping.vmax) with blocked_signals(self.data_scale_min): self.data_scale_min.setValue(map_info.scale.vmin) with blocked_signals(self.data_scale_max): self.data_scale_max.setValue(map_info.scale.vmax) with blocked_signals(self.data_set_use_scale): self.data_set_use_scale.setChecked(map_info.scale.use_min or map_info.scale.use_max) with blocked_signals(self.data_set_use_clipping): self.data_set_use_clipping.setChecked(map_info.clipping.use_min or map_info.clipping.use_max) with blocked_signals(self.use_data_clipping_min): self.use_data_clipping_min.setChecked(map_info.clipping.use_min) with blocked_signals(self.use_data_clipping_max): self.use_data_clipping_max.setChecked(map_info.clipping.use_max) with blocked_signals(self.use_data_scale_min): self.use_data_scale_min.setChecked(map_info.scale.use_min) with blocked_signals(self.use_data_scale_max): self.use_data_scale_max.setChecked(map_info.scale.use_max) map_filename = data_info.get_file_name(map_name) if map_filename: self.info_file_location.setText(map_filename) self.info_maximum.setText(str(vmax)) self.info_minimum.setText(str(vmin)) self.info_shape.setText(str(data_info.maps[map_name].shape))