[gnome-tweak-tool] Asynchronous Update extensions using gdbus.



commit ae84c7c2b93016209d9fb67f7be4f1199087ea80
Author: Alex Muñoz <alexmudoz gmail com>
Date:   Thu Aug 15 13:55:20 2013 -0400

    Asynchronous Update extensions using gdbus.

 gnome-tweak-tool                              |    2 --
 gtweak/gshellwrapper.py                       |    4 ++--
 gtweak/tweaks/tweak_group_shell_extensions.py |   22 +++++++++++-----------
 3 files changed, 13 insertions(+), 15 deletions(-)
---
diff --git a/gnome-tweak-tool b/gnome-tweak-tool
index 23c99f6..a47fa5c 100755
--- a/gnome-tweak-tool
+++ b/gnome-tweak-tool
@@ -24,8 +24,6 @@ import gi
 gi.require_version("Gtk", "3.0")
 
 import gtweak
-from gi.repository import GObject
-GObject.threads_init()
 
 if __name__ == '__main__':
     parser = optparse.OptionParser()
diff --git a/gtweak/gshellwrapper.py b/gtweak/gshellwrapper.py
index f585467..b28c5e5 100644
--- a/gtweak/gshellwrapper.py
+++ b/gtweak/gshellwrapper.py
@@ -164,8 +164,8 @@ class GnomeShell36(GnomeShell34):
     def uninstall_extension(self, uuid):
         return self._proxy.proxy_extensions.UninstallExtension('(s)', uuid)
 
-    def install_remote_extension(self, uuid):
-        return self._proxy.proxy_extensions.InstallRemoteExtension('(s)', uuid)
+    def install_remote_extension(self, uuid, reply_handler, error_handler, user_data):
+        self._proxy.proxy_extensions.InstallRemoteExtension('(s)', uuid, result_handler=reply_handler, 
error_handler=error_handler, user_data=user_data)
 
 @gtweak.utils.singleton
 class GnomeShellFactory:
diff --git a/gtweak/tweaks/tweak_group_shell_extensions.py b/gtweak/tweaks/tweak_group_shell_extensions.py
index 7120611..f995c6f 100644
--- a/gtweak/tweaks/tweak_group_shell_extensions.py
+++ b/gtweak/tweaks/tweak_group_shell_extensions.py
@@ -3,11 +3,9 @@ import zipfile
 import tempfile
 import logging
 import json
-import threading
 
 from gi.repository import Gtk
 from gi.repository import GLib
-from gi.repository import GObject
 from gi.repository import Pango
 
 from operator import itemgetter
@@ -146,15 +144,17 @@ class _ShellExtensionTweak(Gtk.ListBoxRow, Tweak):
         btn.get_style_context().remove_class("suggested-action")
         btn.set_label("Updating")
         self.set_sensitive(False)
-        thread = threading.Thread(target=self.download_extension, args=(btn,uuid,))
-        thread.start()
-
-    def download_extension(self, btn,uuid):
-        status = self._shell.install_remote_extension(uuid)
-        if status == 's':
-            GObject.idle_add(self.deleteButton.show)
-            GObject.idle_add(btn.hide)
-            GObject.idle_add(self.set_sensitive, True) 
+        self._shell.install_remote_extension(uuid,self.reply_handler, self.error_handler, btn)
+    
+    def reply_handler(self, proxy_object, result, user_data):
+        if result == 's':
+            self.deleteButton.show()
+            user_data.hide()
+            self.set_sensitive(True) 
+
+    def error_handler(self, proxy_object, result, user_data):
+        user_data.set_label("Error")
+        print result
 
     def add_update_button(self, uuid):
         self.deleteButton.hide()


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