def register_widget(
        self,
        widget: Gtk.Widget,
        param_name: str,
        exportable: bool = True,
        desensitized: bool = False,
    ):

        if param_name in self._params:
            raise ValueError(
                "register_widget cannot overwrite existing parameters!"
            )

        if isinstance(widget, Gtk.Switch):
            self._params[param_name] = widget.get_active()
            self._signal_ids[param_name] = widget.connect(
                "notify::active", self._switch_value_changed_cb, param_name
            )
        elif isinstance(widget, Gtk.SpinButton):
            self._params[param_name] = widget.get_value()
            self._signal_ids[param_name] = widget.connect(
                "value-changed", self._spinbutton_value_changed_cb, param_name
            )
        elif isinstance(widget, Gtk.CheckButton):
            self._params[param_name] = widget.get_active()
            self._signal_ids[param_name] = widget.connect(
                "toggled", self._checkbutton_toggled_cb, param_name
            )
        elif isinstance(widget, Gtk.FileChooserButton):
            self._params[param_name] = widget.get_filename()
            self._signal_ids[param_name] = widget.connect(
                "selection-changed",
                self._filechooserbutton_selection_changed_cb,
                param_name,
            )
        elif isinstance(widget, Gtk.Entry):
            self._params[param_name] = widget.get_text().strip()
            self._signal_ids[param_name] = widget.connect(
                "changed", self._entry_changed_cb, param_name
            )
        elif isinstance(widget, Gtk.ComboBoxText):
            self._params[param_name] = widget.get_active_text()
            self._signal_ids[param_name] = widget.connect(
                "changed", self._combobox_changed_cb, param_name
            )
        else:
            raise NotImplementedError(
                f"register_widget: no support for {type(widget).__name__}"
            )

        self._widgets[param_name] = widget

        if exportable:
            self._exportable_params.append(param_name)

        if desensitized:
            self._desensitized_widgets.append(widget)

        return widget
Exemple #2
0
 def filter_library(self, widget: Gtk.Widget = None):
     self.__load_tile_states()
     if isinstance(widget, Gtk.Switch):
         self.show_installed_only = widget.get_active()
     elif isinstance(widget, Gtk.SearchEntry):
         self.search_string = widget.get_text()
     self.flowbox.set_filter_func(self.__filter_library_func)
Exemple #3
0
    def register_widget(self,
                        widget: Gtk.Widget,
                        param_name: str,
                        exportable: bool = True):

        if param_name in self._params:
            raise ValueError(
                "register_widget cannot overwrite existing parameters!")

        if isinstance(widget, Gtk.SpinButton):
            self._params[param_name] = widget.get_value()
            self._signal_ids[param_name] = widget.connect(
                "value-changed", self._spinbutton_value_changed_cb, param_name)
        elif isinstance(widget, Gtk.CheckButton):
            self._params[param_name] = widget.get_active()
            self._signal_ids[param_name] = widget.connect(
                "toggled", self._checkbutton_toggled_cb, param_name)
        elif isinstance(widget, Gtk.FileChooserButton):
            self._params[param_name] = widget.get_filename()
            self._signal_ids[param_name] = widget.connect(
                "selection-changed",
                self._filechooserbutton_selection_changed_cb, param_name)
        elif isinstance(widget, Gtk.Entry):
            #pylint: disable=used-before-assignment
            self._params[param_name] = tmp if (tmp := widget.get_text().strip(
            )) != "" else widget.get_placeholder_text()
            self._signal_ids[param_name] = widget.connect(
                "changed", self._entry_changed_cb, param_name)