Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/shell/ev-application.c
diff options
context:
space:
mode:
authorCarlos Garcia Campos <carlosgc@gnome.org>2005-07-05 17:02:52 (GMT)
committer Marco Pesenti Gritti <marco@src.gnome.org>2005-07-05 17:02:52 (GMT)
commit8d858ef399ef70a2c9efb391242e8c8be70e2109 (patch)
treefaccd24d5152eb6d604bb7b7516b8121beee6db3 /shell/ev-application.c
parentffd47fa767f69c0b534037a6e067534d7d2345c9 (diff)
Marco Pesenti Gritti <mpg@redhat.com>
2005-07-05 Carlos Garcia Campos <carlosgc@gnome.org> Marco Pesenti Gritti <mpg@redhat.com> * shell/Makefile.am: Add --prefix for dbus-binding-tool script * shell/ev-application.[ch], shell/ev-window.c: change dbus RPC functions to the format required by dbus * shell/main.c: use G_TYPE instead of DBUS_TYPE to fix compilation errors. Use the RPC parameters in the expected way
Diffstat (limited to 'shell/ev-application.c')
-rw-r--r--shell/ev-application.c42
1 files changed, 29 insertions, 13 deletions
diff --git a/shell/ev-application.c b/shell/ev-application.c
index 6b8ef37..aa5ea56 100644
--- a/shell/ev-application.c
+++ b/shell/ev-application.c
@@ -61,6 +61,9 @@ ev_application_register_service (EvApplication *application)
connection = dbus_g_bus_get (DBUS_BUS_STARTER, &err);
if (connection == NULL) {
g_warning ("Service registration failed.");
+ g_error_free (err);
+
+ return FALSE;
}
driver_proxy = dbus_g_proxy_new_for_name (connection,
@@ -70,24 +73,30 @@ ev_application_register_service (EvApplication *application)
if (!org_freedesktop_DBus_request_name (driver_proxy,
APPLICATION_SERVICE_NAME,
- 0, &request_name_result, &err))
- {
+ 0, &request_name_result, &err)) {
g_warning ("Service registration failed.");
+ g_clear_error (&err);
}
if (request_name_result == DBUS_REQUEST_NAME_REPLY_EXISTS) {
return FALSE;
}
+#if DBUS_VERSION == 33
dbus_g_object_class_install_info (G_OBJECT_GET_CLASS (application),
- &dbus_glib_ev_application_object_info);
+ &dbus_glib_ev_application_object_info);
+#else
+ dbus_g_object_type_install_info (EV_TYPE_APPLICATION,
+ &dbus_glib_ev_application_object_info);
+#endif
+
dbus_g_connection_register_g_object (connection,
"/org/gnome/evince/Evince",
G_OBJECT (application));
return TRUE;
}
-#endif
+#endif /* ENABLE_DBUS */
EvApplication *
ev_application_get_instance (void)
@@ -101,10 +110,13 @@ ev_application_get_instance (void)
return instance;
}
-void
-ev_application_open_window (EvApplication *application)
+gboolean
+ev_application_open_window (EvApplication *application,
+ GError **error)
{
gtk_widget_show (ev_window_new ());
+
+ return TRUE;
}
static EvWindow *
@@ -156,19 +168,21 @@ ev_application_get_uri_window (EvApplication *application, const char *uri)
return uri_window;
}
-void
-ev_application_open_uri (EvApplication *application,
- const char *uri,
- const char *page_label)
+gboolean
+ev_application_open_uri (EvApplication *application,
+ const char *uri,
+ const char *page_label,
+ GError **error)
{
EvWindow *new_window;
- g_return_if_fail (uri != NULL);
+ g_return_val_if_fail (uri != NULL, FALSE);
new_window = ev_application_get_uri_window (application, uri);
if (new_window != NULL) {
gtk_window_present (GTK_WINDOW (new_window));
- return;
+
+ return TRUE;
}
new_window = ev_application_get_empty_window (application);
@@ -184,6 +198,8 @@ ev_application_open_uri (EvApplication *application,
if (page_label != NULL) {
ev_window_open_page_label (new_window, page_label);
}
+
+ return TRUE;
}
void
@@ -192,7 +208,7 @@ ev_application_open_uri_list (EvApplication *application, GSList *uri_list)
GSList *l;
for (l = uri_list; l != NULL; l = l->next) {
- ev_application_open_uri (application, (char *)l->data, NULL);
+ ev_application_open_uri (application, (char *)l->data, NULL, NULL);
}
}