def on_command_execute(self, button: Gtk.Button): if button.get_label() == 'Execute': cmd = self.builder.get_object('command_entry').get_text() try: self.instrument.services['interpreter'].execute_command(cmd) except CommandError as ce: error_message(self.widget, 'Cannot execute command', str(ce)) else: button.set_label('Stop') if (not self._commandhistory) or (self._commandhistory and self._commandhistory[-1] != cmd): self._commandhistory.append(self.builder.get_object('command_entry').get_text()) elif button.get_label() == 'Stop': self.instrument.services['interpreter'].kill() else: raise ValueError(button.get_label())
def on_execute(self, button: Gtk.Button): if button.get_label() == 'Execute': pinholesizes = [float(x[0]) for x in self.builder.get_object('pinhole_store') if x[0]] spacers = [float(x[0]) for x in self.builder.get_object('spacers_store') if x[0]] self.instrument.config['gui']['optimizegeometry']['pinholes'] = pinholesizes self.instrument.config['gui']['optimizegeometry']['spacers'] = spacers mindist_l1 = self.builder.get_object('l1baselength_adjustment').get_value() mindist_l2 = self.builder.get_object('l2baselength_adjustment').get_value() wavelength = self.builder.get_object('wavelength_adjustment').get_value() sealringwidth = self.builder.get_object('sealingringwidth_adjustment').get_value() sd = self.builder.get_object('distance_sd_adjustment').get_value() lbs = self.builder.get_object('distance_dbs_adjustment').get_value() ls = self.builder.get_object('distance_ph3s_adjustment').get_value() self.limits_samplesize = ( self.builder.get_object('diameter_sample_min_adjustment').get_value(), self.builder.get_object('diameter_sample_max_adjustment').get_value() ) self.limits_beamstopsize = ( self.builder.get_object('diameter_beamstop_min_adjustment').get_value(), self.builder.get_object('diameter_beamstop_max_adjustment').get_value() ) self.limit_l1min = self.builder.get_object('min_l1_adjustment').get_value() self.limit_l2min = self.builder.get_object('min_l2_adjustment').get_value() self.pinholegenerator = PinholeConfiguration.enumerate( spacers, pinholesizes, ls, lbs, sd, mindist_l1, mindist_l2, sealringwidth, wavelength) self.builder.get_object('results_store').clear() button.set_label('Stop') button.get_image().set_from_icon_name('gtk-stop', Gtk.IconSize.BUTTON) self.set_sensitive(False, 'Filtering possible pinhole configurations', ['inputframe']) self.builder.get_object('work_progress').show() self.builder.get_object('work_progress').set_fraction(0) self.workdone = 0 self.worksize = self._executor.submit(estimate_worksize_C, spacers, pinholesizes, sealringwidth) state = {'pinholesizes': pinholesizes, 'spacers': spacers, 'mindist_l1': mindist_l1, 'mindist_l2': mindist_l2, 'wavelength': wavelength, 'sealringwidth': sealringwidth, 'sd': sd, 'lbs': lbs, 'ls': ls, 'limits_samplesize': self.limits_samplesize, 'limits_beamstopsize': self.limits_beamstopsize, 'limit_l1min': self.limit_l1min, 'limit_l2min': self.limit_l2min } self.instrument.config['gui']['optimizegeometry'].update(state) self._idle_handler = GLib.idle_add(self._idle_func) else: self.end_work()
def _on_start(self, widget: Gtk.Button, event: Gdk.EventButton) -> bool: if self.going: return True self.going = True self.spin.set_range(self.iterc, self.iterc) self.progr1.set_opacity(1) self.progr2.set_opacity(1) self.set_progress(0, True) self.set_progress(0, False) timings = TIMINGS[widget.get_label()] cache = {timing[0]: [] for timing in timings} iterc = self.iterc for i in range(1, iterc + 1): for name, val in zip(*self.measure(timings)): cache[name].append(val) self.set_bars(cache) self.set_progress(i / iterc, True) self.progr1.set_opacity(0) self.progr2.set_opacity(0) self.going = False self.spin.set_range(1, 2**16) return True
def get_string_from_button(button: Gtk.Button) -> str: """ Returns the displayed string from a button :return: the button string """ return button.get_label()