[gnome-tweak-tool] extensions: Reveal details in Software when activated



commit f3ad1f0bbd0e5352cfb98c2855a4bcc44a9ceb4c
Author: Florian Müllner <fmuellner gnome org>
Date:   Wed Dec 14 18:23:34 2016 +0100

    extensions: Reveal details in Software when activated
    
    As Software gained support for shell extensions, it makes sense to
    integrate with that and open the corresponding details page when
    activating an extension row.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=778677

 gtweak/tweaks/tweak_group_shell_extensions.py |   16 ++++++++++++++++
 1 files changed, 16 insertions(+), 0 deletions(-)
---
diff --git a/gtweak/tweaks/tweak_group_shell_extensions.py b/gtweak/tweaks/tweak_group_shell_extensions.py
index 8ff6cd1..89a15e3 100644
--- a/gtweak/tweaks/tweak_group_shell_extensions.py
+++ b/gtweak/tweaks/tweak_group_shell_extensions.py
@@ -47,6 +47,8 @@ class _ShellExtensionTweak(Gtk.ListBoxRow, Tweak):
         state = ext.get("state")
         uuid = ext["uuid"]
 
+        self._app_id = uuid + ".shell-extension"
+
         shell._settings.bind("disable-user-extensions", self,
                              "sensitive", Gio.SettingsBindFlags.INVERT_BOOLEAN)
 
@@ -159,6 +161,16 @@ class _ShellExtensionTweak(Gtk.ListBoxRow, Tweak):
         btn.set_label(_("Updating"))
         self.set_sensitive(False)
         self._shell.install_remote_extension(uuid,self.reply_handler, self.error_handler, btn)
+
+    def do_activate(self):
+        bus = Gio.bus_get_sync(Gio.BusType.SESSION, None)
+        bus.call('org.gnome.Software',
+                 '/org/gnome/Software',
+                 'org.freedesktop.Application',
+                 'ActivateAction',
+                 GLib.Variant('(sava{sv})',
+                              ('details', [GLib.Variant('(ss)', (self._app_id, ''))], {})),
+                 None, 0, -1, None)
     
     def reply_handler(self, proxy_object, result, user_data):
         if result == 's':
@@ -310,6 +322,7 @@ class ShellExtensionTweakGroup(ListBoxTweakGroup):
                              "active", Gio.SettingsBindFlags.INVERT_BOOLEAN)
 
         self.set_header_func(self._list_header_func, None)
+        self.connect("row-activated", self._on_row_activated, None);
 
     def _got_info(self, ego, resp, uuid, extension, widget):
         if uuid == extension["uuid"]:
@@ -331,6 +344,9 @@ class ShellExtensionTweakGroup(ListBoxTweakGroup):
         if before and not row.get_header():
             row.set_header (Gtk.Separator(orientation=Gtk.Orientation.HORIZONTAL))
 
+    def _on_row_activated(self, list, row, user_data):
+        row.activate()
+
 TWEAK_GROUPS = [
         ShellExtensionTweakGroup(),
 ]


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]