class Qt4_AdvancedBrick(BlissWidget): def __init__(self, *args): BlissWidget.__init__(self, *args) # Hardware objects ---------------------------------------------------- self.session_hwobj = None # Internal values ----------------------------------------------------- # Properties ---------------------------------------------------------- self.addProperty("session", "string", "/session") self.addProperty("beamline_setup", "string", "/Qt4_beamline-setup") # Signals ------------------------------------------------------------- # Slots --------------------------------------------------------------- self.defineSlot("populate_advanced_widget", ({})) # Graphic elements ---------------------------------------------------- self.stacked_widget = QtGui.QStackedWidget(self) self.parameters_widget = AdvancedParametersWidget(self) self.results_widget = AdvancedResultsWidget(self) self.toggle_page_button = QtGui.QPushButton('View Results', self) self.toggle_page_button.setFixedWidth(120) self.stacked_widget.addWidget(self.parameters_widget) self.stacked_widget.addWidget(self.results_widget) # Layout -------------------------------------------------------------- _main_vlayout = QtGui.QVBoxLayout(self) _main_vlayout.addWidget(self.stacked_widget) _main_vlayout.addStretch(0) _main_vlayout.addWidget(self.toggle_page_button) # SizePolicies -------------------------------------------------------- # Qt signal/slot connections ------------------------------------------ self.toggle_page_button.clicked.connect(self.toggle_page) # Other --------------------------------------------------------------- self.stacked_widget.setCurrentWidget(self.parameters_widget) self.toggle_page_button.setEnabled(True) def populate_advanced_widget(self, item): self.parameters_widget._data_path_widget._base_image_dir = \ self.session_hwobj.get_base_image_directory() self.parameters_widget._data_path_widget._base_process_dir = \ self.session_hwobj.get_base_process_directory() self.parameters_widget.populate_widget(item) self.results_widget.populate_widget(item) data_collection = item.get_model() executed = data_collection.is_executed() if executed: self.stacked_widget.setCurrentWidget(self.results_widget) self.toggle_page_button.setText("View parameters") def propertyChanged(self, property_name, old_value, new_value): """ Overriding BaseComponents.BlissWidget (propertyChanged object) run method. """ if property_name == 'session': self.session_hwobj = self.getHardwareObject(new_value) elif property_name == 'beamline_setup': bl_setup = self.getHardwareObject(new_value) self.parameters_widget.set_beamline_setup(bl_setup) self.results_widget.set_beamline_setup(bl_setup) def toggle_page(self): if self.stacked_widget.currentWidget() is self.parameters_widget: self.stacked_widget.setCurrentWidget(self.results_widget) self.toggle_page_button.setText("View parameters") else: self.stacked_widget.setCurrentWidget(self.parameters_widget) self.toggle_page_button.setText("View Results")
class Qt4_AdvancedBrick(BlissWidget): def __init__(self, *args): BlissWidget.__init__(self, *args) # Hardware objects ---------------------------------------------------- self.session_hwobj = None # Internal values ----------------------------------------------------- # Properties ---------------------------------------------------------- self.addProperty("beamline_setup", "string", "/beamline-setup") # Signals ------------------------------------------------------------- # Slots --------------------------------------------------------------- self.defineSlot("populate_advanced_widget", ({})) # Graphic elements ---------------------------------------------------- self.tool_box = QToolBox(self) self.parameters_widget = AdvancedParametersWidget(self) self.results_widget = AdvancedResultsWidget(self) self.line_parameters_widget = AdvancedParametersWidget(self) self.line_results_widget = AdvancedResultsWidget(self) self.snapshot_widget = SnapshotWidget(self) self.tool_box.addItem(self.parameters_widget, "2D Heat map: Parameters") self.tool_box.addItem(self.results_widget, "2D Heat map: Results") self.tool_box.addItem(self.line_parameters_widget, "Line scan: Parameters") self.tool_box.addItem(self.line_results_widget, "Line scan: Results") # Layout -------------------------------------------------------------- _main_vlayout = QHBoxLayout(self) _main_vlayout.addWidget(self.tool_box) _main_vlayout.addWidget(self.snapshot_widget) # SizePolicies -------------------------------------------------------- # Qt signal/slot connections ------------------------------------------ # Other --------------------------------------------------------------- def populate_advanced_widget(self, item): self.parameters_widget._data_path_widget._base_image_dir = \ self.session_hwobj.get_base_image_directory() self.parameters_widget._data_path_widget._base_process_dir = \ self.session_hwobj.get_base_process_directory() self.line_parameters_widget._data_path_widget._base_image_dir = \ self.session_hwobj.get_base_image_directory() self.line_parameters_widget._data_path_widget._base_process_dir = \ self.session_hwobj.get_base_process_directory() #self.parameters_widget.populate_widget(item) #self.results_widget.populate_widget(item) if isinstance(item, Qt4_queue_item.XrayCenteringQueueItem): data_collection = item.get_model().reference_image_collection self.parameters_widget.populate_widget(item, data_collection) self.results_widget.populate_widget(item, data_collection) self.line_parameters_widget.populate_widget(item, item.get_model().line_collection) self.line_results_widget.populate_widget(item, item.get_model().line_collection) else: data_collection = item.get_model() self.parameters_widget.populate_widget(item, data_collection) self.results_widget.populate_widget(item, data_collection) self.line_parameters_widget.setEnabled(isinstance(item, Qt4_queue_item.XrayCenteringQueueItem)) self.line_results_widget.setEnabled(isinstance(item, Qt4_queue_item.XrayCenteringQueueItem)) try: self.snapshot_widget.display_snapshot(\ data_collection.grid.get_snapshot()) except: pass self.tool_box.setCurrentWidget(self.results_widget) def propertyChanged(self, property_name, old_value, new_value): """ Overriding BaseComponents.BlissWidget (propertyChanged object) run method. """ if property_name == 'beamline_setup': bl_setup = self.getHardwareObject(new_value) self.session_hwobj = bl_setup.session_hwobj self.parameters_widget.set_beamline_setup(bl_setup) self.results_widget.set_beamline_setup(bl_setup) self.line_parameters_widget.set_beamline_setup(bl_setup) self.line_results_widget.set_beamline_setup(bl_setup)
class Qt4_AdvancedBrick(BlissWidget): def __init__(self, *args): BlissWidget.__init__(self, *args) # Hardware objects ---------------------------------------------------- self.session_hwobj = None # Internal values ----------------------------------------------------- # Properties ---------------------------------------------------------- self.addProperty("beamline_setup", "string", "/beamline-setup") # Signals ------------------------------------------------------------- # Slots --------------------------------------------------------------- self.defineSlot("populate_advanced_widget", ({})) # Graphic elements ---------------------------------------------------- self.tool_box = QToolBox(self) self.parameters_widget = AdvancedParametersWidget(self) self.results_widget = AdvancedResultsWidget(self) self.snapshot_widget = SnapshotWidget(self) self.tool_box.addItem(self.parameters_widget, "Parameters") self.tool_box.addItem(self.results_widget, "Results - Heat map") # Layout -------------------------------------------------------------- _main_vlayout = QHBoxLayout(self) _main_vlayout.addWidget(self.tool_box) _main_vlayout.addWidget(self.snapshot_widget) # SizePolicies -------------------------------------------------------- # Qt signal/slot connections ------------------------------------------ # Other --------------------------------------------------------------- def populate_advanced_widget(self, item): self.parameters_widget._data_path_widget._base_image_dir = \ self.session_hwobj.get_base_image_directory() self.parameters_widget._data_path_widget._base_process_dir = \ self.session_hwobj.get_base_process_directory() self.parameters_widget.populate_widget(item) self.results_widget.populate_widget(item) if isinstance(item, Qt4_queue_item.XrayCenteringQueueItem): data_collection = item.get_model().reference_image_collection else: data_collection = item.get_model() self.snapshot_widget.display_snapshot(\ data_collection.grid.get_snapshot()) self.tool_box.setCurrentWidget(self.results_widget) def propertyChanged(self, property_name, old_value, new_value): """ Overriding BaseComponents.BlissWidget (propertyChanged object) run method. """ if property_name == 'beamline_setup': bl_setup = self.getHardwareObject(new_value) self.session_hwobj = bl_setup.session_hwobj self.parameters_widget.set_beamline_setup(bl_setup) self.results_widget.set_beamline_setup(bl_setup)