[gnome-builder: 4/7] python: use new get_icon_name() vfunc in GtkSourceCompletionProposal



commit 2ad4dc01fa2e648ea8af23184b07563281deb5b1
Author: Christian Hergert <christian hergert me>
Date:   Mon Aug 24 16:26:24 2015 -0700

    python: use new get_icon_name() vfunc in GtkSourceCompletionProposal
    
    This saves us a bunch of wonky icon caching.

 plugins/jedi/jedi_plugin.py                        |   38 +++-----------------
 .../python_gi_imports_completion.py                |   33 +----------------
 2 files changed, 7 insertions(+), 64 deletions(-)
---
diff --git a/plugins/jedi/jedi_plugin.py b/plugins/jedi/jedi_plugin.py
index 621f9c5..f4bcfac 100644
--- a/plugins/jedi/jedi_plugin.py
+++ b/plugins/jedi/jedi_plugin.py
@@ -194,16 +194,16 @@ class JediCompletionProposal(GObject.Object, GtkSource.CompletionProposal):
     def do_get_text(self):
         return self.completion.complete
 
-    def do_get_icon(self):
+    def do_get_icon_name(self):
         if self.completion.type == 'class':
-            return load_icon(self.context, 'lang-class-symbolic')
+            return 'lang-class-symbolic'
         elif self.completion.type == 'instance':
-            return load_icon(self.context, 'lang-variable-symbolic')
+            return 'lang-variable-symbolic'
         elif self.completion.type in ('import', 'module'):
             # FIXME: Would be nice to do something better here.
-            return load_icon(self.context, 'lang-include-symbolic')
+            return 'lang-include-symbolic'
         elif self.completion.type == 'function':
-            return load_icon(self.context, 'lang-function-symbolic')
+            return 'lang-function-symbolic'
         elif self.completion.type == 'keyword':
             # FIXME: And here
             return None
@@ -218,31 +218,3 @@ class JediCompletionProposal(GObject.Object, GtkSource.CompletionProposal):
     def do_changed(self):
         pass
 
-_icon_cache = {}
-
-
-def purge_cache():
-    _icon_cache.clear()
-
-settings = Gtk.Settings.get_default()
-settings.connect('notify::gtk-theme-name', lambda *_: purge_cache())
-settings.connect('notify::gtk-application-prefer-dark-theme', lambda *_: purge_cache())
-
-
-def load_icon(context, name):
-    if name in _icon_cache:
-        return _icon_cache[name]
-
-    window = context.props.completion.get_info_window()
-    size = 16
-    style_context = window.get_style_context()
-    icon_theme = Gtk.IconTheme.get_default()
-    icon_info = icon_theme.lookup_icon(name, size, 0)
-    if not icon_info:
-        icon = None
-    else:
-        icon = icon_info.load_symbolic_for_context(style_context)
-
-    _icon_cache[name] = icon
-
-    return icon
diff --git a/plugins/python-gi-imports-completion/python_gi_imports_completion.py 
b/plugins/python-gi-imports-completion/python_gi_imports_completion.py
index 4cd231c..3790796 100644
--- a/plugins/python-gi-imports-completion/python_gi_imports_completion.py
+++ b/plugins/python-gi-imports-completion/python_gi_imports_completion.py
@@ -129,8 +129,8 @@ class CompletionProposal(GObject.Object, GtkSource.CompletionProposal):
     def do_get_text(self):
         return self.complete
 
-    def do_get_icon(self):
-        return load_icon(self.context, 'lang-include-symbolic')
+    def do_get_icon_name(self):
+        return 'lang-include-symbolic'
 
     def do_hash(self):
         return hash(self.completion)
@@ -140,32 +140,3 @@ class CompletionProposal(GObject.Object, GtkSource.CompletionProposal):
 
     def do_changed(self):
         pass
-
-_icon_cache = {}
-
-
-def purge_cache():
-    _icon_cache.clear()
-
-settings = Gtk.Settings.get_default()
-settings.connect('notify::gtk-theme-name', lambda *_: purge_cache())
-settings.connect('notify::gtk-application-prefer-dark-theme', lambda *_: purge_cache())
-
-
-def load_icon(context, name):
-    if name in _icon_cache:
-        return _icon_cache[name]
-
-    window = context.props.completion.get_info_window()
-    size = 16
-    style_context = window.get_style_context()
-    icon_theme = Gtk.IconTheme.get_default()
-    icon_info = icon_theme.lookup_icon(name, size, 0)
-    if not icon_info:
-        icon = None
-    else:
-        icon = icon_info.load_symbolic_for_context(style_context)
-
-    _icon_cache[name] = icon
-
-    return icon


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