aboutsummaryrefslogtreecommitdiffstats
path: root/modules/addressbook
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@redhat.com>2009-11-13 10:27:40 +0800
committerMatthew Barnes <mbarnes@redhat.com>2009-11-14 00:26:43 +0800
commitc5e04ca04066ae2d92d3999626ef91d5d0606cab (patch)
tree4c4cc28faa947d29d9f6e575680549daf95ae753 /modules/addressbook
parentba89f0b2c4993c562a1bdb0f5ce90b654c3b68b5 (diff)
downloadgsoc2013-evolution-c5e04ca04066ae2d92d3999626ef91d5d0606cab.tar.gz
gsoc2013-evolution-c5e04ca04066ae2d92d3999626ef91d5d0606cab.tar.zst
gsoc2013-evolution-c5e04ca04066ae2d92d3999626ef91d5d0606cab.zip
EWebView popup menu enhancements.
Bumps the GtkHtml dependency to 3.29.2 for gtk_html_unselect_all().
Diffstat (limited to 'modules/addressbook')
-rw-r--r--modules/addressbook/e-book-shell-content.c30
-rw-r--r--modules/addressbook/e-book-shell-content.h3
-rw-r--r--modules/addressbook/e-book-shell-view-actions.c57
3 files changed, 70 insertions, 20 deletions
diff --git a/modules/addressbook/e-book-shell-content.c b/modules/addressbook/e-book-shell-content.c
index 4eccc971df..1c121adc61 100644
--- a/modules/addressbook/e-book-shell-content.c
+++ b/modules/addressbook/e-book-shell-content.c
@@ -26,6 +26,7 @@
#include "e-util/e-binding.h"
#include "e-util/e-selection.h"
#include "e-util/gconf-bridge.h"
+#include "shell/e-shell-utils.h"
#include "widgets/misc/e-paned.h"
#define E_BOOK_SHELL_CONTENT_GET_PRIVATE(obj) \
@@ -182,6 +183,10 @@ static void
book_shell_content_constructed (GObject *object)
{
EBookShellContentPrivate *priv;
+ EShell *shell;
+ EShellView *shell_view;
+ EShellWindow *shell_window;
+ EShellContent *shell_content;
GConfBridge *bridge;
GtkWidget *container;
GtkWidget *widget;
@@ -192,6 +197,11 @@ book_shell_content_constructed (GObject *object)
/* Chain up to parent's constructed() method. */
G_OBJECT_CLASS (parent_class)->constructed (object);
+ shell_content = E_SHELL_CONTENT (object);
+ shell_view = e_shell_content_get_shell_view (shell_content);
+ shell_window = e_shell_view_get_shell_window (shell_view);
+ shell = e_shell_window_get_shell (shell_window);
+
container = GTK_WIDGET (object);
widget = e_paned_new (GTK_ORIENTATION_VERTICAL);
@@ -199,9 +209,7 @@ book_shell_content_constructed (GObject *object)
priv->paned = g_object_ref (widget);
gtk_widget_show (widget);
- e_binding_new (
- object, "orientation",
- widget, "orientation");
+ e_binding_new (object, "orientation", widget, "orientation");
container = widget;
@@ -221,9 +229,7 @@ book_shell_content_constructed (GObject *object)
gtk_paned_pack2 (GTK_PANED (container), widget, FALSE, FALSE);
gtk_widget_show (widget);
- e_binding_new (
- object, "preview-visible",
- widget, "visible");
+ e_binding_new (object, "preview-visible", widget, "visible");
container = widget;
@@ -231,12 +237,13 @@ book_shell_content_constructed (GObject *object)
eab_contact_display_set_mode (
EAB_CONTACT_DISPLAY (widget),
EAB_CONTACT_DISPLAY_RENDER_NORMAL);
+ e_shell_configure_web_view (shell, E_WEB_VIEW (widget));
gtk_container_add (GTK_CONTAINER (container), widget);
priv->preview = g_object_ref (widget);
gtk_widget_show (widget);
g_signal_connect_swapped (
- priv->preview, "send-message",
+ widget, "send-message",
G_CALLBACK (book_shell_content_send_message_cb), object);
/* Bind GObject properties to GConf keys. */
@@ -474,6 +481,15 @@ e_book_shell_content_set_current_view (EBookShellContent *book_shell_content,
g_object_notify (G_OBJECT (book_shell_content), "current-view");
}
+EABContactDisplay *
+e_book_shell_content_get_preview (EBookShellContent *book_shell_content)
+{
+ g_return_val_if_fail (
+ E_IS_BOOK_SHELL_CONTENT (book_shell_content), NULL);
+
+ return EAB_CONTACT_DISPLAY (book_shell_content->priv->preview);
+}
+
EContact *
e_book_shell_content_get_preview_contact (EBookShellContent *book_shell_content)
{
diff --git a/modules/addressbook/e-book-shell-content.h b/modules/addressbook/e-book-shell-content.h
index 31f8c35838..138b60d175 100644
--- a/modules/addressbook/e-book-shell-content.h
+++ b/modules/addressbook/e-book-shell-content.h
@@ -93,6 +93,9 @@ EAddressbookView *
void e_book_shell_content_set_current_view
(EBookShellContent *book_shell_content,
EAddressbookView *addressbook_view);
+EABContactDisplay *
+ e_book_shell_content_get_preview
+ (EBookShellContent *book_shell_content);
EContact * e_book_shell_content_get_preview_contact
(EBookShellContent *book_shell_content);
void e_book_shell_content_set_preview_contact
diff --git a/modules/addressbook/e-book-shell-view-actions.c b/modules/addressbook/e-book-shell-view-actions.c
index 0ec4eac2e6..495aed6f1d 100644
--- a/modules/addressbook/e-book-shell-view-actions.c
+++ b/modules/addressbook/e-book-shell-view-actions.c
@@ -830,18 +830,11 @@ static GtkActionEntry contact_entries[] = {
{ "contact-open",
NULL,
- N_("_Open"),
+ N_("_Open Contact"),
"<Control>o",
N_("View the current contact"),
G_CALLBACK (action_contact_open_cb) },
- { "contact-save-as",
- GTK_STOCK_SAVE_AS,
- N_("Save as vCard..."),
- NULL,
- N_("Save selected contacts as a vCard"),
- G_CALLBACK (action_contact_save_as_cb) },
-
{ "contact-select-all",
GTK_STOCK_SELECT_ALL,
NULL,
@@ -923,10 +916,6 @@ static EPopupActionEntry contact_popup_entries[] = {
NULL,
"contact-open" },
- { "contact-popup-save-as",
- NULL,
- "contact-save-as" },
-
{ "contact-popup-send-message",
NULL,
"contact-send-message" },
@@ -1035,11 +1024,30 @@ static EPopupActionEntry lockdown_printing_popup_entries[] = {
"contact-print" }
};
+static GtkActionEntry lockdown_save_to_disk_entries[] = {
+
+ { "contact-save-as",
+ GTK_STOCK_SAVE_AS,
+ N_("Save as vCard..."),
+ NULL,
+ N_("Save selected contacts as a vCard"),
+ G_CALLBACK (action_contact_save_as_cb) }
+};
+
+static EPopupActionEntry lockdown_save_to_disk_popup_entries[] = {
+
+ { "contact-popup-save-as",
+ NULL,
+ "contact-save-as" }
+};
+
void
e_book_shell_view_actions_init (EBookShellView *book_shell_view)
{
EShellView *shell_view;
EShellWindow *shell_window;
+ EBookShellContent *book_shell_content;
+ EABContactDisplay *contact_preview;
GtkActionGroup *action_group;
GConfBridge *bridge;
GtkAction *action;
@@ -1049,6 +1057,9 @@ e_book_shell_view_actions_init (EBookShellView *book_shell_view)
shell_view = E_SHELL_VIEW (book_shell_view);
shell_window = e_shell_view_get_shell_window (shell_view);
+ book_shell_content = book_shell_view->priv->book_shell_content;
+ contact_preview = e_book_shell_content_get_preview (book_shell_content);
+
/* Contact Actions */
action_group = ACTION_GROUP (CONTACTS);
gtk_action_group_add_actions (
@@ -1074,11 +1085,22 @@ e_book_shell_view_actions_init (EBookShellView *book_shell_view)
action_group = ACTION_GROUP (LOCKDOWN_PRINTING);
gtk_action_group_add_actions (
action_group, lockdown_printing_entries,
- G_N_ELEMENTS (lockdown_printing_entries), book_shell_view);
+ G_N_ELEMENTS (lockdown_printing_entries),
+ book_shell_view);
e_action_group_add_popup_actions (
action_group, lockdown_printing_popup_entries,
G_N_ELEMENTS (lockdown_printing_popup_entries));
+ /* Lockdown Save-to-Disk Actions */
+ action_group = ACTION_GROUP (LOCKDOWN_SAVE_TO_DISK);
+ gtk_action_group_add_actions (
+ action_group, lockdown_save_to_disk_entries,
+ G_N_ELEMENTS (lockdown_save_to_disk_entries),
+ book_shell_view);
+ e_action_group_add_popup_actions (
+ action_group, lockdown_save_to_disk_popup_entries,
+ G_N_ELEMENTS (lockdown_save_to_disk_popup_entries));
+
/* Bind GObject properties to GConf keys. */
bridge = gconf_bridge_get ();
@@ -1107,6 +1129,15 @@ e_book_shell_view_actions_init (EBookShellView *book_shell_view)
e_binding_new (
ACTION (CONTACT_PREVIEW), "active",
ACTION (CONTACT_VIEW_VERTICAL), "sensitive");
+
+ e_web_view_set_open_proxy (
+ E_WEB_VIEW (contact_preview), ACTION (CONTACT_OPEN));
+
+ e_web_view_set_print_proxy (
+ E_WEB_VIEW (contact_preview), ACTION (CONTACT_PRINT));
+
+ e_web_view_set_save_as_proxy (
+ E_WEB_VIEW (contact_preview), ACTION (CONTACT_SAVE_AS));
}
void