[epiphany-extensions] rss: update and enable again
- From: Diego Escalante Urrelo <diegoe src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [epiphany-extensions] rss: update and enable again
- Date: Sat, 19 Dec 2009 20:19:20 +0000 (UTC)
commit b1e961e906e434fa8e243b8fff729d4705b05d1f
Author: Estêvão Samuel Procópio <tevaum gmail com>
Date: Sat Dec 19 15:12:34 2009 -0500
rss: update and enable again
Signed-off-by: Diego Escalante Urrelo <diegoe gnome org>
Bug #604921
configure.ac | 2 +-
extensions/rss/Makefile.am | 6 +-
extensions/rss/ephy-rss-extension.c | 44 +++++---
extensions/rss/rss-ui.c | 4 +-
extensions/rss/rss-ui.glade | 216 -----------------------------------
extensions/rss/rss-ui.ui | 149 ++++++++++++++++++++++++
6 files changed, 183 insertions(+), 238 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index 13879c4..62fb859 100644
--- a/configure.ac
+++ b/configure.ac
@@ -173,7 +173,7 @@ AC_MSG_CHECKING([which extensions to build])
ALL_EXTENSIONS="actions adblock auto-reload auto-scroller certificates error-viewer extensions-manager-ui gestures greasemonkey java-console livehttpheaders page-info permissions push-scroller rss sample select-stylesheet sidebar smart-bookmarks soup-fly tab-groups tab-states"
USEFUL_EXTENSIONS="actions adblock auto-reload auto-scroller certificates error-viewer extensions-manager-ui java-console page-info push-scroller select-stylesheet smart-bookmarks soup-fly tab-groups tab-states"
-DEFAULT_EXTENSIONS="actions adblock auto-scroller certificates error-viewer extensions-manager-ui java-console page-info push-scroller select-stylesheet smart-bookmarks soup-fly tab-groups tab-states greasemonkey"
+DEFAULT_EXTENSIONS="actions adblock auto-scroller certificates error-viewer extensions-manager-ui java-console page-info push-scroller select-stylesheet smart-bookmarks soup-fly tab-groups tab-states greasemonkey rss"
MOZILLA_ALL_EXTENSIONS="error-viewer java-console livehttpheaders page-info select-stylesheet smart-bookmarks"
diff --git a/extensions/rss/Makefile.am b/extensions/rss/Makefile.am
index 727d895..31959fe 100644
--- a/extensions/rss/Makefile.am
+++ b/extensions/rss/Makefile.am
@@ -25,8 +25,8 @@ librssextension_la_LDFLAGS = \
-export-symbols $(top_srcdir)/ephy-extension.symbols \
$(AM_LDFLAGS)
-gladedir = $(pkgdatadir)/glade
-glade_DATA = rss-ui.glade
+uidir = $(pkgdatadir)/ui
+ui_DATA = rss-ui.ui
extensioninidir = $(extensiondir)
extensionini_in_files = rss.ephy-extension.in.in
@@ -44,4 +44,4 @@ DISTCLEANFILES = $(extensionini_DATA)
EXTRA_DIST = \
$(extensionini_in_files) \
- $(glade_DATA)
+ $(ui_DATA)
diff --git a/extensions/rss/ephy-rss-extension.c b/extensions/rss/ephy-rss-extension.c
index 832b0e8..d672838 100644
--- a/extensions/rss/ephy-rss-extension.c
+++ b/extensions/rss/ephy-rss-extension.c
@@ -92,7 +92,7 @@ static const GtkActionEntry action_entries [] =
/* We got an rss feed from a tab */
static void
-ephy_rss_ge_feed_cb (EphyEmbed *embed,
+ephy_rss_ge_feed_cb (EphyWebView *view,
const char *type,
const char *title,
const char *address,
@@ -100,9 +100,9 @@ ephy_rss_ge_feed_cb (EphyEmbed *embed,
{
FeedList *list;
- list = (FeedList *) g_object_steal_data (G_OBJECT (embed), FEEDLIST_DATA_KEY);
+ list = (FeedList *) g_object_steal_data (G_OBJECT (view), FEEDLIST_DATA_KEY);
list = rss_feedlist_add (list, type, title, address);
- g_object_set_data_full (G_OBJECT (embed), FEEDLIST_DATA_KEY, list,
+ g_object_set_data_full (G_OBJECT (view), FEEDLIST_DATA_KEY, list,
(GDestroyNotify) rss_feedlist_free);
LOG ("Got a new feed for the site: type=%s, title=%s, address=%s\nWe now have %d feeds", type, title, address, rss_feedlist_length (list));
@@ -114,7 +114,7 @@ static void
ephy_rss_feed_subscribe_cb (GtkAction *action,
EphyWindow *window)
{
- const GValue *value;
+ GValue value = { 0, };
GError *error = NULL;
EphyEmbedEvent *event;
gboolean success;
@@ -127,10 +127,10 @@ ephy_rss_feed_subscribe_cb (GtkAction *action,
event = ephy_window_get_context_event (window);
if (event == NULL) return;
- value = ephy_embed_event_get_property (event, "link");
+ ephy_embed_event_get_property (event, "link", &value);
if (!dbus_g_proxy_call (extension->priv->proxy, RSS_DBUS_SUBSCRIBE, &error,
- G_TYPE_STRING, g_value_get_string (value),
+ G_TYPE_STRING, g_value_get_string (&value),
G_TYPE_INVALID,
G_TYPE_BOOLEAN, &success,
G_TYPE_INVALID))
@@ -140,27 +140,28 @@ ephy_rss_feed_subscribe_cb (GtkAction *action,
}
g_object_set(action, "sensitive", FALSE, "visible", FALSE, NULL);
+ g_value_unset (&value);
}
static gboolean
-ephy_rss_ge_context_cb (EphyEmbed *embed,
- EphyEmbedEvent *event,
- EphyWindow *window)
+ephy_rss_ge_context_cb (EphyWebView *view,
+ EphyEmbedEvent *event,
+ EphyWindow *window)
{
WindowData *data;
- const GValue *value;
+ GValue *value = NULL;
const char *address;
FeedList *list;
gboolean active = FALSE;
- list = (FeedList *) g_object_get_data (G_OBJECT (embed), FEEDLIST_DATA_KEY);
- if ((ephy_embed_event_get_context (event) & EPHY_EMBED_CONTEXT_LINK) && (list != NULL))
+ list = (FeedList *) g_object_get_data (G_OBJECT (view), FEEDLIST_DATA_KEY);
+ if ((ephy_embed_event_get_context (event) & WEBKIT_HIT_TEST_RESULT_CONTEXT_LINK) && (list != NULL))
{
LOG ("Context menu on a link");
data = (WindowData *) g_object_get_data (G_OBJECT (window), WINDOW_DATA_KEY);
g_return_val_if_fail (data != NULL, FALSE);
- value = ephy_embed_event_get_property (event, "link");
+ ephy_embed_event_get_property (event, "link", value);
address = g_value_get_string (value);
active = rss_feedlist_contains (list, address);
@@ -177,6 +178,7 @@ ephy_rss_dialog_display (EphyWindow *window)
{
EphyRssExtensionPrivate *priv;
EphyEmbed *embed;
+ EphyWebView *view;
FeedList *list;
WindowData *data;
@@ -187,8 +189,10 @@ ephy_rss_dialog_display (EphyWindow *window)
embed = ephy_embed_container_get_active_child (EPHY_EMBED_CONTAINER (window));
g_return_if_fail (embed != NULL);
+ view = ephy_embed_get_web_view (embed);
+ g_return_if_fail (view != NULL);
- list = (FeedList *) g_object_get_data (G_OBJECT (embed), FEEDLIST_DATA_KEY);
+ list = (FeedList *) g_object_get_data (G_OBJECT (view), FEEDLIST_DATA_KEY);
if (list == NULL)
return;
@@ -253,11 +257,15 @@ ephy_rss_update_action (EphyWindow *window)
FeedList *list;
gboolean show = TRUE;
EphyEmbed *embed;
+ EphyWebView *view;
embed = ephy_embed_container_get_active_child (EPHY_EMBED_CONTAINER (window));
+ g_return_if_fail (embed != NULL);
+ view = ephy_embed_get_web_view (embed);
+ g_return_if_fail (view != NULL);
/* The page is loaded, do we have a feed ? */
- list = (FeedList *) g_object_get_data (G_OBJECT (embed), FEEDLIST_DATA_KEY);
+ list = (FeedList *) g_object_get_data (G_OBJECT (view), FEEDLIST_DATA_KEY);
show = rss_feedlist_length (list) > 0;
@@ -295,15 +303,17 @@ impl_attach_tab (EphyExtension *extension,
g_return_if_fail (EPHY_IS_EMBED (embed));
- view = EPHY_GET_EPHY_WEB_VIEW_FROM_EMBED (embed);
+ view = ephy_embed_get_web_view (embed);
/* Notify when a new rss feed is parsed */
g_signal_connect_after (view, "new-document-now",
G_CALLBACK (ephy_rss_ge_content_cb), window);
g_signal_connect_after (view, "ge-feed-link",
G_CALLBACK (ephy_rss_ge_feed_cb), window);
+ /*
g_signal_connect (view, "ge-context-menu",
G_CALLBACK (ephy_rss_ge_context_cb), window);
+ */
}
/* Stop listening for the detached tab rss feeds */
@@ -323,8 +333,10 @@ impl_detach_tab (EphyExtension *extension,
g_signal_handlers_disconnect_by_func
(embed, G_CALLBACK (ephy_rss_ge_content_cb), window);
+ /*
g_signal_handlers_disconnect_by_func
(embed, G_CALLBACK (ephy_rss_ge_context_cb), window);
+ */
/* destroy data */
g_object_set_data (G_OBJECT (embed), FEEDLIST_DATA_KEY, NULL);
diff --git a/extensions/rss/rss-ui.c b/extensions/rss/rss-ui.c
index 50191fb..343ccfc 100644
--- a/extensions/rss/rss-ui.c
+++ b/extensions/rss/rss-ui.c
@@ -475,7 +475,7 @@ rss_ui_populate_store (RssUI *dialog)
* avoiding duplicate feeds
*/
location = ephy_web_view_get_location
- (EPHY_GET_EPHY_WEB_VIEW_FROM_EMBED (priv->embed), TRUE);
+ (ephy_embed_get_web_view (priv->embed), TRUE);
decision.hostname = g_strdup (ephy_string_get_host_name (location));
/* Fill the store, and select the appropriate feeds */
@@ -532,7 +532,7 @@ rss_ui_constructor (GType type,
ephy_dialog_construct (EPHY_DIALOG (edialog),
properties,
- SHARE_DIR "/glade/rss-ui.glade",
+ SHARE_DIR "/ui/rss-ui.ui",
"rss_ui",
GETTEXT_PACKAGE);
diff --git a/extensions/rss/rss-ui.ui b/extensions/rss/rss-ui.ui
new file mode 100644
index 0000000..52c7d55
--- /dev/null
+++ b/extensions/rss/rss-ui.ui
@@ -0,0 +1,149 @@
+<?xml version="1.0"?>
+<interface>
+ <!-- interface-requires gtk+ 2.6 -->
+ <!-- interface-naming-policy toplevel-contextual -->
+ <object class="GtkDialog" id="rss_ui">
+ <property name="border_width">5</property>
+ <property name="title" translatable="yes">News Feed Subscription</property>
+ <property name="window_position">center-on-parent</property>
+ <property name="destroy_with_parent">True</property>
+ <property name="type_hint">dialog</property>
+ <property name="skip_taskbar_hint">True</property>
+ <property name="skip_pager_hint">True</property>
+ <property name="has_separator">False</property>
+ <child internal-child="vbox">
+ <object class="GtkVBox" id="dialog-vbox1">
+ <property name="visible">True</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkVBox" id="vbox1">
+ <property name="visible">True</property>
+ <property name="border_width">5</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkLabel" id="title">
+ <property name="visible">True</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes"><b>Select Interesting Feeds</b></property>
+ <property name="use_markup">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkAlignment" id="alignment1">
+ <property name="visible">True</property>
+ <property name="left_padding">12</property>
+ <child>
+ <object class="GtkScrolledWindow" id="scrolledwindow1">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="hscrollbar_policy">never</property>
+ <property name="vscrollbar_policy">automatic</property>
+ <property name="shadow_type">etched-in</property>
+ <child>
+ <object class="GtkTreeView" id="feeds">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="headers_visible">False</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child internal-child="action_area">
+ <object class="GtkHButtonBox" id="dialog-action_area1">
+ <property name="visible">True</property>
+ <property name="layout_style">end</property>
+ <child>
+ <object class="GtkButton" id="close">
+ <property name="label">gtk-close</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="can_default">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_stock">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="subscribe">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="can_default">True</property>
+ <property name="receives_default">False</property>
+ <child>
+ <object class="GtkAlignment" id="alignment2">
+ <property name="visible">True</property>
+ <property name="xscale">0</property>
+ <property name="yscale">0</property>
+ <child>
+ <object class="GtkHBox" id="hbox1">
+ <property name="visible">True</property>
+ <property name="spacing">2</property>
+ <child>
+ <object class="GtkImage" id="image1">
+ <property name="visible">True</property>
+ <property name="stock">gtk-ok</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label2">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_Subscribe</property>
+ <property name="use_underline">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="pack_type">end</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="-7">close</action-widget>
+ <action-widget response="-5">subscribe</action-widget>
+ </action-widgets>
+ </object>
+</interface>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]