[rhythmbox] put symbolic icons for plugins into proper theme directories
- From: Jonathan Matthew <jmatthew src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [rhythmbox] put symbolic icons for plugins into proper theme directories
- Date: Mon, 23 Feb 2015 12:18:23 +0000 (UTC)
commit c0f4b203d96cbaa80428014f94ed439fad28afbc
Author: Jonathan Matthew <jonathan d14n org>
Date: Sun Feb 22 23:37:22 2015 +1000
put symbolic icons for plugins into proper theme directories
plugins/magnatune/Makefile.am | 8 ++++--
.../scalable/places}/magnatune-symbolic.svg | 0
plugins/magnatune/magnatune.py | 5 ++-
plugins/rb/rb.py | 22 +++++++++++++------
plugins/soundcloud/Makefile.am | 7 ++++-
.../scalable/places}/soundcloud-symbolic.svg | 0
plugins/soundcloud/soundcloud.py | 7 ++---
7 files changed, 31 insertions(+), 18 deletions(-)
---
diff --git a/plugins/magnatune/Makefile.am b/plugins/magnatune/Makefile.am
index 53e62b6..51a9aa0 100644
--- a/plugins/magnatune/Makefile.am
+++ b/plugins/magnatune/Makefile.am
@@ -21,9 +21,11 @@ gtkbuilder_DATA = \
magnatune-prefs.ui \
magnatune-toolbar.ui \
magnatune_logo_color_small.png \
- magnatune_logo_color_tiny.png \
- magnatune-symbolic.svg
+ magnatune_logo_color_tiny.png
-EXTRA_DIST = $(plugin_in_files) $(gtkbuilder_DATA)
+icondir = $(plugindatadir)/icons/hicolor/scalable/places
+icon_DATA = icons/hicolor/scalable/places/magnatune-symbolic.svg
+
+EXTRA_DIST = $(plugin_in_files) $(gtkbuilder_DATA) $(icon_DATA)
CLEANFILES = $(plugin_DATA)
DISTCLEANFILES = $(plugin_DATA)
diff --git a/plugins/magnatune/magnatune-symbolic.svg
b/plugins/magnatune/icons/hicolor/scalable/places/magnatune-symbolic.svg
similarity index 100%
rename from plugins/magnatune/magnatune-symbolic.svg
rename to plugins/magnatune/icons/hicolor/scalable/places/magnatune-symbolic.svg
diff --git a/plugins/magnatune/magnatune.py b/plugins/magnatune/magnatune.py
index d9456c8..27a0058 100644
--- a/plugins/magnatune/magnatune.py
+++ b/plugins/magnatune/magnatune.py
@@ -89,6 +89,8 @@ class Magnatune(GObject.GObject, Peas.Activatable):
shell = self.object
self.db = shell.props.db
+ rb.append_plugin_source_path(self, "icons")
+
self.entry_type = MagnatuneEntryType()
self.db.register_entry_type(self.entry_type)
@@ -110,11 +112,10 @@ class Magnatune(GObject.GObject, Peas.Activatable):
group = RB.DisplayPageGroup.get_by_id ("stores")
settings = Gio.Settings("org.gnome.rhythmbox.plugins.magnatune")
- iconfile = Gio.File.new_for_path(rb.find_plugin_file(self, "magnatune-symbolic.svg"))
self.source = GObject.new(MagnatuneSource,
shell=shell,
entry_type=self.entry_type,
- icon=Gio.FileIcon.new(iconfile),
+ icon=Gio.ThemedIcon.new("magnatune-symbolic"),
plugin=self,
settings=settings.get_child("source"),
name=_("Magnatune"),
diff --git a/plugins/rb/rb.py b/plugins/rb/rb.py
index 3bb0819..0a42ac9 100644
--- a/plugins/rb/rb.py
+++ b/plugins/rb/rb.py
@@ -31,7 +31,7 @@ import os.path
import os
import time
-from gi.repository import RB
+from gi.repository import RB, Gtk
# rb classes
from Loader import Loader
@@ -46,16 +46,24 @@ def try_load_icon(theme, icon, size, flags):
except:
return None
-def append_plugin_source_path(theme, iconpath):
- # check for a Makefile.am in the dir the file was loaded from
+def append_plugin_source_path(plugin, iconpath):
+ theme = Gtk.IconTheme.get_default()
+
+ # get plugin data dir
+ datadir = plugin.plugin_info.get_data_dir()
+ icondir = os.path.join(datadir, iconpath)
+ if os.path.exists(icondir):
+ theme.append_search_path(icondir)
+
+ # where was the caller loaded from?
fr = sys._getframe(1)
co = fr.f_code
filename = co.co_filename
- # and if found, append the icon path
- dir = filename[:filename.rfind(os.sep)]
- if os.path.exists(dir + "/Makefile.am"):
- icondir = dir + iconpath
+ # if the calling plugin has an icons dir, add it to the search path
+ plugindir = filename[:filename.rfind(os.sep)]
+ icondir = os.path.join(plugindir, iconpath)
+ if os.path.exists(icondir):
theme.append_search_path(icondir)
def entry_equal(a, b):
diff --git a/plugins/soundcloud/Makefile.am b/plugins/soundcloud/Makefile.am
index 1032380..ef14c45 100644
--- a/plugins/soundcloud/Makefile.am
+++ b/plugins/soundcloud/Makefile.am
@@ -8,9 +8,12 @@ plugin_in_files = soundcloud.plugin.in
plugin_DATA = $(plugin_in_files:.plugin.in=.plugin)
gtkbuilderdir = $(plugindatadir)
-gtkbuilder_DATA = soundcloud.ui powered-by-soundcloud.png soundcloud-symbolic.svg
+gtkbuilder_DATA = soundcloud.ui powered-by-soundcloud.png
-EXTRA_DIST = $(plugin_in_files) $(gtkbuilder_DATA)
+icondir = $(plugindatadir)/icons/hicolor/scalable/places
+icon_DATA = icons/hicolor/scalable/places/soundcloud-symbolic.svg
+
+EXTRA_DIST = $(plugin_in_files) $(gtkbuilder_DATA) $(icon_DATA)
CLEANFILES = $(plugin_DATA)
DISTCLEANFILES = $(plugin_DATA)
diff --git a/plugins/soundcloud/soundcloud-symbolic.svg
b/plugins/soundcloud/icons/hicolor/scalable/places/soundcloud-symbolic.svg
similarity index 100%
rename from plugins/soundcloud/soundcloud-symbolic.svg
rename to plugins/soundcloud/icons/hicolor/scalable/places/soundcloud-symbolic.svg
diff --git a/plugins/soundcloud/soundcloud.py b/plugins/soundcloud/soundcloud.py
index fcc2396..65c66cb 100644
--- a/plugins/soundcloud/soundcloud.py
+++ b/plugins/soundcloud/soundcloud.py
@@ -59,14 +59,13 @@ class SoundCloudPlugin(GObject.Object, Peas.Activatable):
def do_activate(self):
shell = self.object
+ rb.append_plugin_source_path(self, "icons")
+
db = shell.props.db
self.entry_type = SoundCloudEntryType()
db.register_entry_type(self.entry_type)
- logofile = rb.find_plugin_file(self, "soundcloud-symbolic.svg")
- icon = Gio.FileIcon.new(Gio.File.new_for_path(logofile))
-
model = RB.RhythmDBQueryModel.new_empty(db)
self.source = GObject.new (SoundCloudSource,
shell=shell,
@@ -74,7 +73,7 @@ class SoundCloudPlugin(GObject.Object, Peas.Activatable):
plugin=self,
query_model=model,
entry_type=self.entry_type,
- icon=icon)
+ icon=Gio.ThemedIcon.new("soundcloud-symbolic"))
shell.register_entry_type_for_source(self.source, self.entry_type)
self.source.setup()
group = RB.DisplayPageGroup.get_by_id ("shared")
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]