[gnome-builder: 4/7] python: use new get_icon_name() vfunc in GtkSourceCompletionProposal
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder: 4/7] python: use new get_icon_name() vfunc in GtkSourceCompletionProposal
- Date: Mon, 24 Aug 2015 23:41:33 +0000 (UTC)
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]