aboutsummaryrefslogtreecommitdiffstats
path: root/e-util
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@redhat.com>2009-01-11 21:55:04 +0800
committerMatthew Barnes <mbarnes@src.gnome.org>2009-01-11 21:55:04 +0800
commit2b820fc4e2d6404ca281e279761cd5f877fdbf54 (patch)
tree58ca39179f9e117dea79e67217e53303ea1f996b /e-util
parent577f9fdffbbb9e57b44b0290f1aea8088c6f0976 (diff)
downloadgsoc2013-evolution-2b820fc4e2d6404ca281e279761cd5f877fdbf54.tar.gz
gsoc2013-evolution-2b820fc4e2d6404ca281e279761cd5f877fdbf54.tar.zst
gsoc2013-evolution-2b820fc4e2d6404ca281e279761cd5f877fdbf54.zip
New convenience function calls gtk_show_uri() and displays an error dialog
2009-01-11 Matthew Barnes <mbarnes@redhat.com> * e-util/e-util.c (e_show_uri): New convenience function calls gtk_show_uri() and displays an error dialog if the URI cannot be shown. * addressbook/gui/widgets/eab-contact-display.c (eab_uri_popup_link_open), (on_link_clicked): * calendar/gui/e-cal-component-preview (on_link_clicked): * calendar/gui/e-cal-component-memo-preview (on_link_clicked): * calendar/gui/e-memo-table.c (open_url_cb): * calendar/gui/dialogs/comp-editor.c (open_attachment): * composer/e-msg-composer.c (msg_composer_link_clicked): * mail/em-folder-view.c (emfv_format_link_clicked): * mail/em-popup.c (emp_uri_popup_link_open): * plugins/mailing-list-actions/mailing-list-actions.c (emla_list_action_do): * shell/e-shell-window-commands.c (command_open_faq): * widgets/misc/e-attachment-bar.c (eab_icon_clicked_cb): * widgets/misc/e-url-entry.c (button_clicked_cb): Call e_show_uri() instead of gnome_url_show(). * e-util/e-error.c (ee_response): Call e_display_help() instead of gnome_url_show(). * mail/em-config.c: * mail/em-menu.c: Remove unneeded #include <libgnome/gnome-url.h> svn path=/trunk/; revision=37037
Diffstat (limited to 'e-util')
-rw-r--r--e-util/ChangeLog9
-rw-r--r--e-util/e-error.c10
-rw-r--r--e-util/e-util.c44
-rw-r--r--e-util/e-util.h2
4 files changed, 57 insertions, 8 deletions
diff --git a/e-util/ChangeLog b/e-util/ChangeLog
index a23eb07533..365589f575 100644
--- a/e-util/ChangeLog
+++ b/e-util/ChangeLog
@@ -1,3 +1,12 @@
+2009-01-11 Matthew Barnes <mbarnes@redhat.com>
+
+ * e-error.c (ee_response):
+ Call e_display_help() instead of gnome_url_show().
+
+ * e-util.c (e_show_uri):
+ New convenience function calls gtk_show_uri() and displays an
+ error dialog if the URI cannot be shown.
+
2009-01-10 Matthew Barnes <mbarnes@redhat.com>
* e-dialog-utils.c:
diff --git a/e-util/e-error.c b/e-util/e-error.c
index 763a9ca540..da4d034606 100644
--- a/e-util/e-error.c
+++ b/e-util/e-error.c
@@ -30,10 +30,10 @@
#include <gtk/gtk.h>
#include <glib/gi18n.h>
-#include <libgnome/gnome-url.h>
#include <libedataserver/e-xml-utils.h>
+#include "e-util.h"
#include "e-util-private.h"
#include "e-error.h"
@@ -395,15 +395,9 @@ ee_build_label(GString *out, const char *fmt, GPtrArray *args,
static void
ee_response(GtkWidget *w, guint button, struct _e_error *e)
{
- GError *err = NULL;
-
if (button == GTK_RESPONSE_HELP) {
g_signal_stop_emission_by_name(w, "response");
- gnome_url_show(e->help_uri, &err);
- if (err) {
- g_warning("Unable to run help uri: %s", err->message);
- g_error_free(err);
- }
+ e_display_help (GTK_WINDOW (w), e->help_uri);
}
}
diff --git a/e-util/e-util.c b/e-util/e-util.c
index 0e43f092b2..d4bded2d6b 100644
--- a/e-util/e-util.c
+++ b/e-util/e-util.c
@@ -92,6 +92,50 @@ e_get_accels_filename (void)
}
/**
+ * e_show_uri:
+ * @parent: a parent #GtkWindow or %NULL
+ * @uri: the URI to show
+ *
+ * Launches the default application to show the given URI. The URI must
+ * be of a form understood by GIO. If the URI cannot be shown, it presents
+ * a dialog describing the error. The dialog is set as transient to @parent
+ * if @parent is non-%NULL.
+ **/
+void
+e_show_uri (GtkWindow *parent,
+ const gchar *uri)
+{
+ GtkWidget *dialog;
+ GdkScreen *screen = NULL;
+ GError *error = NULL;
+ guint32 timestamp;
+
+ g_return_if_fail (uri != NULL);
+
+ timestamp = gtk_get_current_event_time ();
+
+ if (parent != NULL)
+ screen = gtk_widget_get_screen (GTK_WIDGET (parent));
+
+ if (gtk_show_uri (screen, uri, timestamp, &error))
+ return;
+
+ dialog = gtk_message_dialog_new_with_markup (
+ parent, GTK_DIALOG_DESTROY_WITH_PARENT,
+ GTK_MESSAGE_ERROR, GTK_BUTTONS_OK,
+ "<big><b>%s</b></big>",
+ _("Could not open the link."));
+
+ gtk_message_dialog_format_secondary_text (
+ GTK_MESSAGE_DIALOG (dialog), "%s", error->message);
+
+ gtk_dialog_run (GTK_DIALOG (dialog));
+
+ gtk_widget_destroy (dialog);
+ g_error_free (error);
+}
+
+/**
* e_display_help:
* @parent: a parent #GtkWindow or %NULL
* @link_id: help section to present or %NULL
diff --git a/e-util/e-util.h b/e-util/e-util.h
index e2eafacd75..4f82df471b 100644
--- a/e-util/e-util.h
+++ b/e-util/e-util.h
@@ -42,6 +42,8 @@ typedef enum {
const gchar * e_get_user_data_dir (void);
const gchar * e_get_accels_filename (void);
+void e_show_uri (GtkWindow *parent,
+ const gchar *uri);
void e_display_help (GtkWindow *parent,
const gchar *link_id);