Ejemplo n.º 1
0
    def from_session(cls, session, name):
        model = session.model()
        config = session.config

        # NOTE: using the plot_windows list as a stack with its top at 0:
        settings = (config.plot_windows and
                    config.plot_windows.pop(0) or {})

        # indicators require retrieving data for all elements which can be too
        # time consuming for large lattices:
        show_indicators = len(model.elements) < 500

        parent = session.window()
        widget = cls(
            session, model, name=name,
            show_indicators=show_indicators,
            settings=settings)
        dialog = Dialog(parent, widget)
        dialog.layout().setMenuBar(QMenuBar())
        widget.create_menu(dialog.layout().menuBar())

        size = settings.get('size')
        pos = settings.get('pos')
        if not size:
            size = (parent.size().width(), dialog.sizeHint().height())
        dialog.resize(*size)
        if pos:
            dialog.move(*pos)
        dialog.show()

        widget.update_window_title()
        session.model.changed_singleshot(dialog.close)
        return widget
Ejemplo n.º 2
0
    def from_session(cls, session, name):
        model = session.model()
        config = session.config

        # NOTE: using the plot_windows list as a stack with its top at 0:
        settings = (config.plot_windows and config.plot_windows.pop(0) or {})

        # indicators require retrieving data for all elements which can be too
        # time consuming for large lattices:
        show_indicators = len(model.elements) < 500

        parent = session.window()
        widget = cls(session,
                     model,
                     name=name,
                     show_indicators=show_indicators,
                     settings=settings)
        dialog = Dialog(parent, widget)
        dialog.layout().setMenuBar(QMenuBar())
        widget.create_menu(dialog.layout().menuBar())

        size = settings.get('size')
        pos = settings.get('pos')
        if not size:
            size = (parent.size().width(), dialog.sizeHint().height())
        dialog.resize(*size)
        if pos:
            dialog.move(*pos)
        dialog.show()

        widget.update_window_title()
        session.model.changed_singleshot(dialog.close)
        return widget
Ejemplo n.º 3
0
 def _show_sync_dialog(self, widget, apply):
     from madgui.online.dialogs import SyncParamItem
     from madgui.widget.dialog import Dialog
     model, live = self.model(), self.backend
     widget.data = [
         SyncParamItem(info, live.read_param(name), model.read_param(name))
         for name, info in self.get_knobs().items()
     ]
     widget.data_key = 'acs_parameters'
     dialog = Dialog(self.session.window())
     dialog.setExportWidget(widget, self.session.folder)
     dialog.serious.updateButtons()
     dialog.accepted.connect(apply)
     dialog.show()
     return dialog
Ejemplo n.º 4
0
 def _show_sync_dialog(self, widget, apply):
     from madgui.online.dialogs import SyncParamItem
     from madgui.widget.dialog import Dialog
     model, live = self.model(), self.backend
     widget.data = [
         SyncParamItem(info, live.read_param(name), model.read_param(name))
         for name, info in self.get_knobs().items()
     ]
     widget.data_key = 'acs_parameters'
     dialog = Dialog(self.session.window())
     dialog.setExportWidget(widget, self.session.folder)
     dialog.serious.addCustomButton('Sync Model',
                                    self.on_sync_model(self, dialog))
     dialog.serious.updateButtons()
     dialog.accepted.connect(apply)
     dialog.show()
     return dialog