示例#1
0
    def refresh(self):
        if self.data_collection is not None:
            acq = self.data_collection.acquisitions[0]
            paths = acq.get_preview_image_paths()
            if acq.acquisition_parameters.shutterless and len(paths) > 1:
                temp = [paths[0], paths[-1]]
                paths = temp

            self.image_path = acq.path_template.get_image_path()

            self.image_tracking_widget_layout.current_path_ledit.setText(
                self.image_path % acq.acquisition_parameters.first_image)
            self.image_tracking_widget_layout.image_num_spinbox.setValue(
                acq.acquisition_parameters.first_image)
            self.image_tracking_widget_layout.image_num_spinbox.setRange(
                acq.acquisition_parameters.first_image,
                acq.acquisition_parameters.first_image +
                acq.acquisition_parameters.num_images - 1,
            )

            self.image_tracking_widget_layout.first_image_label.setPixmap(
                qt_import.QPixmap(paths[0]))
            if len(paths) > 1:
                self.image_tracking_widget_layout.last_image_label.setPixmap(
                    qt_import.QPixmap(paths[1]))
示例#2
0
    def update_pin_icon(self):
        dc_tree_widget = self.listView().parent()

        if dc_tree_widget._loaded_sample_item:
            dc_tree_widget._loaded_sample_item.setIcon(0, qt_import.QPixmap())

        dc_tree_widget._loaded_sample_item = self
        self.setIcon(0, qt_import.QIcon(dc_tree_widget.pin_pixmap))
示例#3
0
    def __init__(self, *args):
        BaseWidget.__init__(self, *args)

        # Hardware objects ----------------------------------------------------

        # Internal values -----------------------------------------------------
        self.num_cols = None
        self.num_rows = None
        self.num_drops = None
        self.current_location = None
        self.plate_content = None
        self.xtal_map = None

        # Properties ----------------------------------------------------------
        self.add_property("icons", "string", "")

        # Signals -------------------------------------------------------------

        # Slots ---------------------------------------------------------------

        # Graphic elements ----------------------------------------------------
        self.plate_navigator_widget = PlateNavigatorWidget(self)
        self.crims_widget = qt_import.load_ui_file(
            "plate_crims_widget_layout.ui")

        # Layout --------------------------------------------------------------
        _main_vlayout = qt_import.QVBoxLayout(self)
        _main_vlayout.addWidget(self.plate_navigator_widget)
        _main_vlayout.addWidget(self.crims_widget)
        _main_vlayout.setSpacing(0)
        _main_vlayout.setContentsMargins(0, 0, 0, 0)

        # Qt signal/slot connections ------------------------------------------
        self.crims_widget.search_button.clicked.connect(
            self.search_button_clicked)
        self.crims_widget.move_button.clicked.connect(
            self.move_to_xtal_clicked)
        self.crims_widget.abort_button.clicked.connect(self.abort_clicked)

        self.crims_widget.xtal_treewidget.currentItemChanged.connect(
            self.xtal_treewidget_current_item_changed)

        # Other ---------------------------------------------------------------
        self.xtal_image_graphicsscene = qt_import.QGraphicsScene(self)
        self.crims_widget.xtal_image_graphicsview.setScene(
            self.xtal_image_graphicsscene)
        self.xtal_image_pixmap = qt_import.QPixmap()
        self.xtal_image_graphics_pixmap = qt_import.QGraphicsPixmapItem()
        self.xtal_image_graphicsscene.addItem(self.xtal_image_graphics_pixmap)

        if HWR.beamline.plate_manipulator is not None:
            self.connect(
                HWR.beamline.plate_manipulator,
                SampleChanger.INFO_CHANGED_EVENT,
                self.plate_navigator_widget.refresh_plate_location,
            )
示例#4
0
    def display_snapshot(self, image, width=None):
        if image is not None:
            if width is not None:
                ration = image.height() / float(image.width())
                image = image.scaled(
                    width, width * ration, qt_import.Qt.KeepAspectRatio, qt_import.Qt.SmoothTransformation
                )
                self.setFixedWidth(width)

            self.snapshot_label.setPixmap(qt_import.QPixmap(image))
示例#5
0
    def populate_parameter_widget(self, tree_view_item):
        """
        Descript. :
        """
        self._tree_view_item = tree_view_item
        self._char = tree_view_item.get_model()
        self._data_collection = self._char.reference_image_collection
        self._char_params = self._char.characterisation_parameters
        self._char_params_mib.set_model(self._char.characterisation_parameters)
        self._set_space_group(self._char_params.space_group)

        self.acq_widget.update_data_model(
            self._char.reference_image_collection.acquisitions[0].
            acquisition_parameters,
            self._char.reference_image_collection.acquisitions[0].
            path_template,
        )

        self.path_widget.update_data_model(
            self._char.reference_image_collection.acquisitions[0].path_template
        )

        if self._data_collection.acquisitions[
                0].acquisition_parameters.centred_position.snapshot_image:
            image = self._data_collection.acquisitions[
                0].acquisition_parameters.centred_position.snapshot_image
            ration = image.height() / float(image.width())
            image = image.scaled(
                400,
                400 * ration,
                qt_import.Qt.KeepAspectRatio,
                qt_import.Qt.SmoothTransformation,
            )
            self.position_widget.svideo.setPixmap(qt_import.QPixmap(image))

        self.toggle_permitted_range(self._char_params.use_permitted_rotation)
        self.enable_opt_parameters_widget(
            self._char_params.determine_rad_params)
        self.enable_maximum_res_ledit(self._char_params.use_aimed_resolution)
        self.enable_aimed_mult_ledit(self._char_params.use_aimed_multiplicity)

        item = self.char_type_widget.charact_type_tbox.widget(
            self._char_params.experiment_type)
        if item:
            self.char_type_widget.charact_type_tbox.setCurrentWidget(item)
        self.char_type_widget.toggle_time_dose()
        crystal = self._char.reference_image_collection.crystal
        self.acq_widget.set_energies(crystal.energy_scan_result)