From 970f199e2c34edb92e5e67080365926ef51e63d4 Mon Sep 17 00:00:00 2001
From: Rui Matos <tiagomatos@gmail.com>
Date: Thu, 7 Nov 2013 21:40:56 +0100
Subject: [PATCH 4/6] Add tweaks for shell extensions installed after startup
---
gtweak/tweaks/tweak_shell_extensions.py | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)
diff --git a/gtweak/tweaks/tweak_shell_extensions.py b/gtweak/tweaks/tweak_shell_extensions.py
index 648a4ca..e3ef7b6 100644
--- a/gtweak/tweaks/tweak_shell_extensions.py
+++ b/gtweak/tweaks/tweak_shell_extensions.py
@@ -203,14 +203,22 @@ class ShellExtensionTweakGroup(TweakGroup):
def __init__(self):
TweakGroup.__init__(self, N_("Shell Extensions"))
+ self._shell = None
+ self._uuids = set()
+
extension_tweaks = []
sg = build_horizontal_sizegroup()
+ self._sg = sg
#check the shell is running
try:
shell = GnomeShellFactory().get_shell()
if shell is None:
raise Exception("Shell not running or DBus service not available")
+ else:
+ self._shell = shell
+
+ shell.extensions_proxy.connect('g-signal', self._extensions_signal)
#add the extension installer
extension_tweaks.append(
@@ -223,6 +231,7 @@ class ShellExtensionTweakGroup(TweakGroup):
try:
extension_tweaks.append(
_ShellExtensionTweak(shell, extension, size_group=sg))
+ self._uuids.add(extension["uuid"])
except:
logging.warning("Invalid extension", exc_info=True)
except:
@@ -232,6 +241,26 @@ class ShellExtensionTweakGroup(TweakGroup):
self.set_tweaks(*extension_tweaks)
+ def _extensions_signal(self, proxy, sender, signal, params):
+ if signal != 'ExtensionStatusChanged':
+ return
+
+ uuid = params[0]
+ if uuid in self._uuids:
+ return
+
+ try:
+ extension = self._shell.extensions_proxy.GetExtensionInfo('(s)', uuid)
+ try:
+ self.set_tweaks(_ShellExtensionTweak(self._shell, extension, size_group=self._sg))
+ self._uuids.add(uuid)
+ self.model.tweaks_changed(self)
+ except:
+ logging.warning("Invalid extension", exc_info=True)
+ except:
+ logging.warning("Error getting extension info", exc_info=True)
+
+
TWEAK_GROUPS = (
ShellExtensionTweakGroup(),
)
--
1.8.3.1