def _get_service_box(self, service_key): box = Gtk.Box( spacing=12, margin_right=12, margin_left=12, margin_top=12, margin_bottom=12, visible=True, ) service = SERVICES[service_key] pixbuf = get_icon(service.icon, icon_format="pixbuf", size=ICON_SIZE) if pixbuf: icon = Gtk.Image(visible=True) icon.set_from_pixbuf(pixbuf) else: icon = Gtk.Image.new_from_icon_name(service.id, Gtk.IconSize.DND) icon.show() box.pack_start(icon, False, False, 0) label = Gtk.Label(service.name, visible=True) label.set_alignment(0, 0.5) box.pack_start(label, True, True, 0) checkbox = Gtk.Switch(visible=True) if settings.read_setting(service_key, section="services").lower() == "true": checkbox.set_active(True) checkbox.connect("state-set", self._on_service_change, service_key) alignment = Gtk.Alignment.new(0.5, 0.5, 0, 0) alignment.show() alignment.add(checkbox) box.pack_start(alignment, False, False, 6) return box
def __init__(self, service): super().__init__(orientation=Gtk.Orientation.VERTICAL, visible=True) self.set_spacing(self.MARGIN) self.set_margin_top(self.MARGIN) self.set_margin_right(self.MARGIN) self.set_margin_left(self.MARGIN) self.set_margin_bottom(self.MARGIN) self.service = service self.identifier = service.id self.name = service.name button_box = Gtk.HBox() self.refresh_button = Gtk.Button() self.refresh_button.connect("clicked", self.on_refresh_clicked) self.refresh_button.set_tooltip_text(_("Reload")) self.refresh_button.set_image(Gtk.Image.new_from_icon_name("view-refresh-symbolic", Gtk.IconSize.MENU)) button_box.pack_start(self.refresh_button, False, False, self.MARGIN) self.connect_button = Gtk.Button() self.connect_button.connect("clicked", self.on_connect_clicked) if self.service.online: button_box.pack_start(self.connect_button, False, False, self.MARGIN) self.pack_start(button_box, False, False, 0) service_logo = get_icon(self.service.icon, size=(24, 24)) or Gtk.Label(self.name) service_logo.show() self.pack_start(service_logo, True, True, 0) self.show_all() if self.service.online: GLib.idle_add(self._connect_button_toggle)
def get_icon(self, size=None): """Return the icon for the service (used in tabs)""" if not size: size = (24, 24) icon = get_icon(self.service.ICON, size=size) if icon: return icon return Gtk.Label(self.name)
def get_icon(self, size=None): """Return the icon for the service (used in tabs)""" if not size: size = (24, 24) icon = get_icon(self.icon_name, size=size) if icon: return icon return Gtk.Label(self.name)
def __init__(self, runner_name): super().__init__(visible=True) self.connect("runner-installed", self.on_runner_installed) self.connect("runner-removed", self.on_runner_removed) self.set_margin_bottom(12) self.set_margin_top(12) self.set_margin_left(12) self.set_margin_right(12) self.runner = runners.import_runner(runner_name)() icon = get_icon(self.runner.name, icon_format='pixbuf', size=ICON_SIZE) if icon: runner_icon = Gtk.Image(visible=True) runner_icon.set_from_pixbuf(icon) else: runner_icon = Gtk.Image.new_from_icon_name( "package-x-generic-symbolic", Gtk.IconSize.DND) runner_icon.show() runner_icon.set_margin_right(12) self.pack_start(runner_icon, False, True, 6) self.runner_label_box = Gtk.VBox(visible=True) self.runner_label_box.set_margin_top(12) runner_label = Gtk.Label(visible=True) runner_label.set_alignment(0, 0.5) runner_label.set_markup("<b>%s</b>" % self.runner.human_name) self.runner_label_box.pack_start(runner_label, False, False, 0) desc_label = Gtk.Label(visible=True) desc_label.set_alignment(0, 0.5) desc_label.set_text(self.runner.description) self.runner_label_box.pack_start(desc_label, False, False, 0) self.pack_start(self.runner_label_box, True, True, 0) self.configure_button = Gtk.Button.new_from_icon_name( "preferences-system-symbolic", Gtk.IconSize.BUTTON) self.configure_button.set_margin_right(12) self.configure_button.connect("clicked", self.on_configure_clicked) self.pack_start(self.configure_button, False, False, 0) if not self.runner.is_installed(): self.runner_label_box.set_sensitive(False) self.configure_button.hide() else: self.configure_button.show() self.action_alignment = Gtk.Alignment.new(0.5, 0.5, 0, 0) self.action_alignment.show() self.action_alignment.add(self.get_action_button()) self.pack_start(self.action_alignment, False, False, 0)
def get_runner_hbox(self, runner_name): # Get runner details runner = runners.import_runner(runner_name)() platform_list = sorted(list(set(runner.platforms))) if len(platform_list) > 4: platform = _("Multiple platforms") else: platform = ", ".join(platform_list) builder = Gtk.Builder() builder.add_from_file(self.runner_entry_ui) hbox = builder.get_object('runner_entry') hbox.show() # Icon runner_icon = builder.get_object('runner_icon') runner_icon.set_from_pixbuf( get_icon(runner_name, icon_format='pixbuf', size=ICON_SIZE)) # Label runner_name = builder.get_object('runner_name') runner_name.set_text(runner.human_name) runner_description = builder.get_object('runner_description') runner_description.set_text(runner.description) runner_platform = builder.get_object('runner_platform') runner_platform.set_text(platform) runner_label = builder.get_object('runner_label') if not runner.is_installed(): runner_label.set_sensitive(False) # Buttons self.versions_button = builder.get_object('manage_versions') self.versions_button.connect("clicked", self.on_versions_clicked, runner, runner_label) self.install_button = builder.get_object('install_runner') self.install_button.connect("clicked", self.on_install_clicked, runner, runner_label) self.remove_button = builder.get_object('remove_runner') self.remove_button.connect("clicked", self.on_remove_clicked, runner, runner_label) self.configure_button = builder.get_object('configure_runner') self.configure_button.connect("clicked", self.on_configure_clicked, runner, runner_label) self.set_button_display(runner) return hbox
def get_runner_hbox(self, runner_name): # Get runner details runner = runners.import_runner(runner_name)() platform = ", ".join(sorted(list(set(runner.platforms)))) builder = Gtk.Builder() builder.add_from_file(self.runner_entry_ui) hbox = builder.get_object('runner_entry') hbox.show() # Icon runner_icon = builder.get_object('runner_icon') runner_icon.set_from_pixbuf(get_icon(runner_name, format='pixbuf', size=ICON_SIZE)) # Label runner_name = builder.get_object('runner_name') runner_name.set_text(runner.human_name) runner_description = builder.get_object('runner_description') runner_description.set_text(runner.description) runner_platform = builder.get_object('runner_platform') runner_platform.set_text(platform) runner_label = builder.get_object('runner_label') if not runner.is_installed(): runner_label.set_sensitive(False) # Buttons self.versions_button = builder.get_object('manage_versions') self.versions_button.connect("clicked", self.on_versions_clicked, runner, runner_label) self.install_button = builder.get_object('install_runner') self.install_button.connect("clicked", self.on_install_clicked, runner, runner_label) self.remove_button = builder.get_object('remove_runner') self.remove_button.connect("clicked", self.on_remove_clicked, runner, runner_label) self.configure_button = builder.get_object('configure_runner') self.configure_button.connect("clicked", self.on_configure_clicked, runner, runner_label) self.set_button_display(runner) return hbox
def get_icon(self): """Return the runner icon widget""" icon = get_icon(self.script["runner"], size=(32, 32)) icon.set_margin_left(6) return icon