diff options
author | Jan Lukas Gernert <jangernert@gmail.com> | 2017-10-14 18:47:14 +0300 |
---|---|---|
committer | Jan Lukas Gernert <jangernert@gmail.com> | 2017-10-14 18:47:14 +0300 |
commit | 35eed6e6dc3b6401f59ff29b950803f547788e20 (patch) | |
tree | 3b164873dd7fcdcdc2c78154708737c04eac6b31 | |
parent | ee1bcc67d70f9e117b6e7a9e8eda2cdb7bef615c (diff) |
use feed model to get icon from FavIconManager to have iconURL available in case it has to be downloaded
-rw-r--r-- | plugins/backend/local/SuggestedFeedRow.vala | 2 | ||||
-rw-r--r-- | src/FavIconManager.vala | 20 | ||||
-rw-r--r-- | src/Widgets/ArticleRow.vala | 3 | ||||
-rw-r--r-- | src/Widgets/FeedRow.vala | 2 |
4 files changed, 14 insertions, 13 deletions
diff --git a/plugins/backend/local/SuggestedFeedRow.vala b/plugins/backend/local/SuggestedFeedRow.vala index 28600f49..9e8f1e2d 100644 --- a/plugins/backend/local/SuggestedFeedRow.vala +++ b/plugins/backend/local/SuggestedFeedRow.vala @@ -75,7 +75,7 @@ public class FeedReader.SuggestedFeedRow : Gtk.ListBoxRow { Gtk.Image? icon = null; if(success) { - var pixBuf = yield FavIconManager.get_default().getIcon(feed.getFeedID()); + var pixBuf = yield FavIconManager.get_default().getIcon(feed); if(pixBuf != null) icon = new Gtk.Image.from_pixbuf(pixBuf); } diff --git a/src/FavIconManager.vala b/src/FavIconManager.vala index afcc55d6..2974fbe7 100644 --- a/src/FavIconManager.vala +++ b/src/FavIconManager.vala @@ -31,9 +31,9 @@ public class FeedReader.FavIconManager : GLib.Object { m_map = new Gee.HashMap<string, Gdk.Pixbuf>(); } - private async void load(string feedID) + private async void load(Feed feed) { - var fileName = GLib.Base64.encode(feedID.data) + ".ico"; + var fileName = GLib.Base64.encode(feed.getFeedID().data) + ".ico"; try { var file = File.new_for_path(GLib.Environment.get_user_data_dir() + "/feedreader/data/feed_icons/" + fileName); @@ -47,7 +47,7 @@ public class FeedReader.FavIconManager : GLib.Object { } pixbuf = pixbuf.scale_simple(24, 24, Gdk.InterpType.BILINEAR); - m_map.set(feedID, pixbuf); + m_map.set(feed.getFeedID(), pixbuf); } catch (IOError.NOT_FOUND e) { @@ -63,7 +63,7 @@ public class FeedReader.FavIconManager : GLib.Object { } } - private bool hasIcon(string iconName) + private bool hasIcon(Feed feed) { if(m_map == null) { @@ -71,19 +71,19 @@ public class FeedReader.FavIconManager : GLib.Object { return false; } - return m_map.has_key(iconName); + return m_map.has_key(feed.getFeedID()); } - public async Gdk.Pixbuf? getIcon(string name, bool firstTry = true) + public async Gdk.Pixbuf? getIcon(Feed feed, bool firstTry = true) { - if(hasIcon(name)) + if(hasIcon(feed)) { - return m_map.get(name).copy(); + return m_map.get(feed.getFeedID()).copy(); } else if(firstTry) { - yield load(name); - return yield getIcon(name, false); + yield load(feed); + return yield getIcon(feed, false); } return null; diff --git a/src/Widgets/ArticleRow.vala b/src/Widgets/ArticleRow.vala index c7fbffed..6cdf9af9 100644 --- a/src/Widgets/ArticleRow.vala +++ b/src/Widgets/ArticleRow.vala @@ -242,7 +242,8 @@ public class FeedReader.ArticleRow : Gtk.ListBoxRow { public async void reloadFavIcon(Gtk.Image? inIcon = null) { - var icon = yield FavIconManager.get_default().getIcon(m_article.getFeedID()); + Feed feed = DataBase.readOnly().read_feed(m_article.getFeedID()); + var icon = yield FavIconManager.get_default().getIcon(feed); if(icon != null) { if(inIcon == null) diff --git a/src/Widgets/FeedRow.vala b/src/Widgets/FeedRow.vala index 3bca071c..0fb7c5de 100644 --- a/src/Widgets/FeedRow.vala +++ b/src/Widgets/FeedRow.vala @@ -144,7 +144,7 @@ public class FeedReader.FeedRow : Gtk.ListBoxRow { public async void reloadFavIcon(Gtk.Image? inIcon = null) { - var icon = yield FavIconManager.get_default().getIcon(m_feed.getFeedID()); + var icon = yield FavIconManager.get_default().getIcon(m_feed); if(icon == null) return; |