Esempio n. 1
0
    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
Esempio n. 2
0
    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)
Esempio n. 3
0
 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)
Esempio n. 4
0
 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)
Esempio n. 5
0
    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)
Esempio n. 6
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
Esempio n. 7
0
    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
Esempio n. 8
0
 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