示例#1
0
    def __init__(self, parent=None, name=None, fl=0):
        qt.QWidget.__init__(self, parent, name, fl)

        # Attributes
        self.ready_event = False
        self.checked_items = []
        self.sample_items = []
        self.files_to_be_written = []
        self.item_run_number_list = []
        self.queue_model_hwobj = None

        # Layout
        qt.QVBoxLayout(self)
        self.dialog_layout_widget = ConfirmDialogWidgetVerticalLayout(self)
        # self.dialog_layout_widget.child('take_snapshosts_cbx').hide()
        self.dialog_layout_widget.child("file_list_view").setSorting(-1)
        self.layout().addWidget(self.dialog_layout_widget)

        qt.QObject.connect(
            self.dialog_layout_widget.continue_button,
            qt.SIGNAL("clicked()"),
            self.continue_button_click,
        )

        qt.QObject.connect(
            self.dialog_layout_widget.cancel_button,
            qt.SIGNAL("clicked()"),
            self.cancel_button_click,
        )

        self.dialog_layout_widget.force_dark_cbx.setOn(True)

        self.dialog_layout_widget.missing_one_cbx.hide()
        self.dialog_layout_widget.missing_two_cbx.hide()
        self.setCaption("Confirm collection")
示例#2
0
class ConfirmDialog(qt.QDialog):
    def __init__(self, parent=None, name=None, fl=0):
        qt.QWidget.__init__(self, parent, name, fl)

        # Attributes
        self.ready_event = False
        self.checked_items = []
        self.sample_items = []
        self.files_to_be_written = []
        self.item_run_number_list = []
        self.queue_model_hwobj = None

        # Layout
        qt.QVBoxLayout(self)
        self.dialog_layout_widget = ConfirmDialogWidgetVerticalLayout(self)
        # self.dialog_layout_widget.child('take_snapshosts_cbx').hide()
        self.dialog_layout_widget.child("file_list_view").setSorting(-1)
        self.layout().addWidget(self.dialog_layout_widget)

        qt.QObject.connect(
            self.dialog_layout_widget.continue_button,
            qt.SIGNAL("clicked()"),
            self.continue_button_click,
        )

        qt.QObject.connect(
            self.dialog_layout_widget.cancel_button,
            qt.SIGNAL("clicked()"),
            self.cancel_button_click,
        )

        self.dialog_layout_widget.force_dark_cbx.setOn(True)

        self.dialog_layout_widget.missing_one_cbx.hide()
        self.dialog_layout_widget.missing_two_cbx.hide()
        self.setCaption("Confirm collection")

    def set_plate_mode(self, plate_mode):
        self.dialog_layout_widget.snapshots_list = (
            [1, 0] if plate_mode else [4, 1, 2, 0]
        )
        self.dialog_layout_widget.languageChange()

    def disable_dark_current_cbx(self):
        self.dialog_layout_widget.force_dark_cbx.setEnabled(False)
        self.dialog_layout_widget.force_dark_cbx.setOn(False)

    def enable_dark_current_cbx(self):
        self.dialog_layout_widget.force_dark_cbx.setEnabled(True)
        self.dialog_layout_widget.force_dark_cbx.setOn(True)

    def set_items(self, checked_items):
        self.sample_items = []
        self.files_to_be_written = []
        self.checked_items = checked_items
        collection_items = []
        current_sample_item = None
        num_images = 0

        self.dialog_layout_widget.file_list_view.clear()

        for item in checked_items:
            if isinstance(item, queue_item.SampleQueueItem):
                self.sample_items.append(item)
                current_sample_item = item

            path_template = item.get_model().get_path_template()

            if path_template:
                #                 if item.get_model().is_executed():
                #                     self.item_run_number_list.append((item, path_template.run_number))

                #                     # Increase the run-number for re-collect
                #                     new_run_number = self.queue_model_hwobj.\
                #                                      get_next_run_number(path_template,
                #                                                          exclude_current = False)
                #                     item.get_model().set_number(new_run_number)
                #                     path_template.run_number = new_run_number

                collection_items.append(item)
                file_paths = path_template.get_files_to_be_written()
                num_images += len(file_paths)

                for fp in file_paths:
                    (dir_name, f_name) = os.path.split(fp)
                    sample_name = current_sample_item.get_model().get_display_name()

                    if sample_name is "":
                        sample_name = current_sample_item.get_model().loc_str

                    last_item = self.dialog_layout_widget.child(
                        "file_list_view"
                    ).lastItem()
                    fl = FileListViewItem(
                        self.dialog_layout_widget.file_list_view,
                        last_item,
                        sample_name,
                        dir_name,
                        f_name,
                    )

                    if os.path.isfile(fp):
                        fl.set_brush(qt.QBrush(qt.Qt.red))

        num_samples = len(self.sample_items)
        num_collections = len(collection_items)

        self.dialog_layout_widget.summary_label.setText(
            "Collecting "
            + str(num_collections)
            + " collection(s) on "
            + str(num_samples)
            + " sample(s) resulting in "
            + str(num_images)
            + " image(s)."
        )

    def continue_button_click(self):
        for item in self.checked_items:
            acq_params = None
            if isinstance(item.get_model(), queue_model_objects.DataCollection):
                acq_params = item.get_model().acquisitions[0].acquisition_parameters
            elif isinstance(item.get_model(), queue_model_objects.Characterisation):
                acq_params = (
                    item.get_model()
                    .reference_image_collection.acquisitions[0]
                    .acquisition_parameters
                )
            if acq_params is None:
                continue
            acq_params.take_snapshots = int(
                self.dialog_layout_widget.take_snapshots_cbox.currentText()
            )
            acq_params.take_dark_current = (
                self.dialog_layout_widget.force_dark_cbx.isOn()
            )
            acq_params.skip_existing_images = (
                self.dialog_layout_widget.skip_existing_images_cbx.isOn()
            )

        self.emit(
            qt.PYSIGNAL("continue_clicked"), (self.sample_items, self.checked_items)
        )
        self.accept()

    def cancel_button_click(self):
        #         for item, run_number in self.item_run_number_list:
        #             item.get_model().set_number(run_number)
        #             path_template = item.get_model().get_path_template()
        #             path_template.run_number = run_number

        self.reject()