aboutsummaryrefslogtreecommitdiffstats
path: root/mail/e-mail-browser.c
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@redhat.com>2011-11-23 03:52:33 +0800
committerMatthew Barnes <mbarnes@redhat.com>2011-11-23 03:52:33 +0800
commit00e495279937c6495d6fab99fe7f89583859ecd1 (patch)
tree34b9779e6406e44a646bd8bf65a66dc55654f51a /mail/e-mail-browser.c
parent0c83b9b25d967ce6d6793ef851e86bc272a2f129 (diff)
parentf3abed7ac2c6099dbf5fd3e7c2483b6d75a637b5 (diff)
downloadgsoc2013-evolution-00e495279937c6495d6fab99fe7f89583859ecd1.tar
gsoc2013-evolution-00e495279937c6495d6fab99fe7f89583859ecd1.tar.gz
gsoc2013-evolution-00e495279937c6495d6fab99fe7f89583859ecd1.tar.bz2
gsoc2013-evolution-00e495279937c6495d6fab99fe7f89583859ecd1.tar.lz
gsoc2013-evolution-00e495279937c6495d6fab99fe7f89583859ecd1.tar.xz
gsoc2013-evolution-00e495279937c6495d6fab99fe7f89583859ecd1.tar.zst
gsoc2013-evolution-00e495279937c6495d6fab99fe7f89583859ecd1.zip
Merge branch 'master' into wip/gsettings
Conflicts: mail/e-mail-paned-view.c
Diffstat (limited to 'mail/e-mail-browser.c')
-rw-r--r--mail/e-mail-browser.c143
1 files changed, 44 insertions, 99 deletions
diff --git a/mail/e-mail-browser.c b/mail/e-mail-browser.c
index 1125510915..ec0e9251e0 100644
--- a/mail/e-mail-browser.c
+++ b/mail/e-mail-browser.c
@@ -30,12 +30,10 @@
#include "e-util/e-util.h"
#include "e-util/e-plugin-ui.h"
-#include "e-util/e-alert-dialog.h"
#include "e-util/gconf-bridge.h"
#include "shell/e-shell.h"
#include "shell/e-shell-utils.h"
#include "shell/e-shell-settings.h"
-#include "widgets/misc/e-alert-bar.h"
#include "widgets/misc/e-popup-action.h"
#include "widgets/misc/e-preview-pane.h"
@@ -45,6 +43,10 @@
#include "mail/em-format-html-display.h"
#include "mail/message-list.h"
+#define E_MAIL_BROWSER_GET_PRIVATE(obj) \
+ (G_TYPE_INSTANCE_GET_PRIVATE \
+ ((obj), E_TYPE_MAIL_BROWSER, EMailBrowserPrivate))
+
#define MAIL_BROWSER_GCONF_PREFIX "/apps/evolution/mail/mail_browser"
#define ACTION_GROUP_STANDARD "action-group-standard"
@@ -59,8 +61,7 @@ struct _EMailBrowserPrivate {
GtkWidget *main_menu;
GtkWidget *main_toolbar;
GtkWidget *message_list;
- GtkWidget *alert_bar;
- GtkWidget *search_bar;
+ GtkWidget *preview_pane;
GtkWidget *statusbar;
guint show_deleted : 1;
@@ -102,8 +103,6 @@ static const gchar *ui =
" </menubar>"
"</ui>";
-static void e_mail_browser_alert_sink_init
- (EAlertSinkInterface *interface);
static void e_mail_browser_reader_init
(EMailReaderInterface *interface);
@@ -112,8 +111,6 @@ G_DEFINE_TYPE_WITH_CODE (
e_mail_browser,
GTK_TYPE_WINDOW,
G_IMPLEMENT_INTERFACE (
- E_TYPE_ALERT_SINK, e_mail_browser_alert_sink_init)
- G_IMPLEMENT_INTERFACE (
E_TYPE_MAIL_READER, e_mail_browser_reader_init)
G_IMPLEMENT_INTERFACE (
E_TYPE_EXTENSIBLE, NULL))
@@ -482,7 +479,7 @@ mail_browser_dispose (GObject *object)
{
EMailBrowserPrivate *priv;
- priv = E_MAIL_BROWSER (object)->priv;
+ priv = E_MAIL_BROWSER_GET_PRIVATE (object);
if (priv->backend != NULL) {
g_object_unref (priv->backend);
@@ -520,14 +517,9 @@ mail_browser_dispose (GObject *object)
priv->message_list = NULL;
}
- if (priv->alert_bar != NULL) {
- g_object_unref (priv->alert_bar);
- priv->alert_bar = NULL;
- }
-
- if (priv->search_bar != NULL) {
- g_object_unref (priv->search_bar);
- priv->search_bar = NULL;
+ if (priv->preview_pane != NULL) {
+ g_object_unref (priv->preview_pane);
+ priv->preview_pane = NULL;
}
if (priv->statusbar != NULL) {
@@ -542,7 +534,7 @@ mail_browser_dispose (GObject *object)
static void
mail_browser_constructed (GObject *object)
{
- EMailBrowserPrivate *priv;
+ EMailBrowser *browser;
EMFormatHTML *formatter;
EMailReader *reader;
EMailBackend *backend;
@@ -565,7 +557,7 @@ mail_browser_constructed (GObject *object)
/* Chain up to parent's constructed() method. */
G_OBJECT_CLASS (parent_class)->constructed (object);
- priv = E_MAIL_BROWSER (object)->priv;
+ browser = E_MAIL_BROWSER (object);
reader = E_MAIL_READER (object);
backend = e_mail_reader_get_backend (reader);
@@ -576,7 +568,7 @@ mail_browser_constructed (GObject *object)
ui_manager = e_ui_manager_new ();
e_shell_configure_ui_manager (shell, E_UI_MANAGER (ui_manager));
- priv->ui_manager = ui_manager;
+ browser->priv->ui_manager = ui_manager;
domain = GETTEXT_PACKAGE;
gtk_application_add_window (
@@ -588,15 +580,15 @@ mail_browser_constructed (GObject *object)
/* The message list is a widget, but it is not shown in the browser.
* Unfortunately, the widget is inseparable from its model, and the
* model is all we need. */
- priv->message_list = message_list_new (backend);
- g_object_ref_sink (priv->message_list);
+ browser->priv->message_list = message_list_new (backend);
+ g_object_ref_sink (browser->priv->message_list);
g_signal_connect_swapped (
- priv->message_list, "message-selected",
+ browser->priv->message_list, "message-selected",
G_CALLBACK (mail_browser_message_selected_cb), object);
g_signal_connect_swapped (
- priv->message_list, "message-list-built",
+ browser->priv->message_list, "message-list-built",
G_CALLBACK (mail_browser_message_list_built_cb), object);
g_signal_connect_swapped (
@@ -661,7 +653,7 @@ mail_browser_constructed (GObject *object)
e_focus_tracker_set_paste_clipboard_action (focus_tracker, action);
action = e_mail_reader_get_action (reader, "select-all");
e_focus_tracker_set_select_all_action (focus_tracker, action);
- priv->focus_tracker = focus_tracker;
+ browser->priv->focus_tracker = focus_tracker;
/* Construct window widgets. */
@@ -674,40 +666,36 @@ mail_browser_constructed (GObject *object)
/* Create the status bar before connecting proxy widgets. */
widget = gtk_statusbar_new ();
gtk_box_pack_end (GTK_BOX (container), widget, FALSE, FALSE, 0);
- priv->statusbar = g_object_ref (widget);
+ browser->priv->statusbar = g_object_ref (widget);
gtk_widget_show (widget);
widget = gtk_ui_manager_get_widget (ui_manager, "/main-menu");
gtk_box_pack_start (GTK_BOX (container), widget, FALSE, FALSE, 0);
- priv->main_menu = g_object_ref (widget);
+ browser->priv->main_menu = g_object_ref (widget);
gtk_widget_show (widget);
widget = gtk_ui_manager_get_widget (ui_manager, "/main-toolbar");
gtk_box_pack_start (GTK_BOX (container), widget, FALSE, FALSE, 0);
- priv->main_toolbar = g_object_ref (widget);
+ browser->priv->main_toolbar = g_object_ref (widget);
gtk_widget_show (widget);
gtk_style_context_add_class (
gtk_widget_get_style_context (widget),
GTK_STYLE_CLASS_PRIMARY_TOOLBAR);
- widget = e_alert_bar_new ();
- gtk_box_pack_start (GTK_BOX (container), widget, FALSE, FALSE, 0);
- priv->alert_bar = g_object_ref (widget);
- /* EAlertBar controls its own visibility. */
-
gtk_widget_show (GTK_WIDGET (web_view));
widget = e_preview_pane_new (web_view);
gtk_box_pack_start (GTK_BOX (container), widget, TRUE, TRUE, 0);
+ browser->priv->preview_pane = g_object_ref (widget);
gtk_widget_show (widget);
search_bar = e_preview_pane_get_search_bar (E_PREVIEW_PANE (widget));
- priv->search_bar = g_object_ref (search_bar);
g_signal_connect_swapped (
search_bar, "changed",
- G_CALLBACK (em_format_queue_redraw), priv->formatter);
+ G_CALLBACK (em_format_queue_redraw),
+ browser->priv->formatter);
/* Bind GObject properties to GSettings keys. */
@@ -740,34 +728,6 @@ mail_browser_key_press_event (GtkWidget *widget,
key_press_event (widget, event);
}
-static void
-mail_browser_submit_alert (EAlertSink *alert_sink,
- EAlert *alert)
-{
- EMailBrowserPrivate *priv;
- EAlertBar *alert_bar;
- GtkWidget *dialog;
- GtkWindow *parent;
-
- priv = E_MAIL_BROWSER (alert_sink)->priv;
-
- switch (e_alert_get_message_type (alert)) {
- case GTK_MESSAGE_INFO:
- case GTK_MESSAGE_WARNING:
- case GTK_MESSAGE_ERROR:
- alert_bar = E_ALERT_BAR (priv->alert_bar);
- e_alert_bar_add_alert (alert_bar, alert);
- break;
-
- default:
- parent = GTK_WINDOW (alert_sink);
- dialog = e_alert_dialog_new (parent, alert);
- gtk_dialog_run (GTK_DIALOG (dialog));
- gtk_widget_destroy (dialog);
- break;
- }
-}
-
static GtkActionGroup *
mail_browser_get_action_group (EMailReader *reader,
EMailReaderActionGroup group)
@@ -788,20 +748,14 @@ mail_browser_get_action_group (EMailReader *reader,
return g_object_get_data (G_OBJECT (reader), group_name);
}
-static EAlertSink *
-mail_browser_get_alert_sink (EMailReader *reader)
-{
- return E_ALERT_SINK (reader);
-}
-
static EMailBackend *
mail_browser_get_backend (EMailReader *reader)
{
- EMailBrowserPrivate *priv;
+ EMailBrowser *browser;
- priv = E_MAIL_BROWSER (reader)->priv;
+ browser = E_MAIL_BROWSER (reader);
- return priv->backend;
+ return browser->priv->backend;
}
static gboolean
@@ -817,21 +771,21 @@ mail_browser_get_hide_deleted (EMailReader *reader)
static EMFormatHTML *
mail_browser_get_formatter (EMailReader *reader)
{
- EMailBrowserPrivate *priv;
+ EMailBrowser *browser;
- priv = E_MAIL_BROWSER (reader)->priv;
+ browser = E_MAIL_BROWSER (reader);
- return EM_FORMAT_HTML (priv->formatter);
+ return EM_FORMAT_HTML (browser->priv->formatter);
}
static GtkWidget *
mail_browser_get_message_list (EMailReader *reader)
{
- EMailBrowserPrivate *priv;
+ EMailBrowser *browser;
- priv = E_MAIL_BROWSER (reader)->priv;
+ browser = E_MAIL_BROWSER (reader);
- return priv->message_list;
+ return browser->priv->message_list;
}
static GtkMenu *
@@ -848,6 +802,16 @@ mail_browser_get_popup_menu (EMailReader *reader)
return GTK_MENU (widget);
}
+static EPreviewPane *
+mail_browser_get_preview_pane (EMailReader *reader)
+{
+ EMailBrowser *browser;
+
+ browser = E_MAIL_BROWSER (reader);
+
+ return E_PREVIEW_PANE (browser->priv->preview_pane);
+}
+
static GtkWindow *
mail_browser_get_window (EMailReader *reader)
{
@@ -883,16 +847,6 @@ mail_browser_set_message (EMailReader *reader,
}
static void
-mail_browser_show_search_bar (EMailReader *reader)
-{
- EMailBrowserPrivate *priv;
-
- priv = E_MAIL_BROWSER (reader)->priv;
-
- gtk_widget_show (priv->search_bar);
-}
-
-static void
e_mail_browser_class_init (EMailBrowserClass *class)
{
GObjectClass *object_class;
@@ -961,24 +915,17 @@ e_mail_browser_class_init (EMailBrowserClass *class)
}
static void
-e_mail_browser_alert_sink_init (EAlertSinkInterface *interface)
-{
- interface->submit_alert = mail_browser_submit_alert;
-}
-
-static void
e_mail_browser_reader_init (EMailReaderInterface *interface)
{
interface->get_action_group = mail_browser_get_action_group;
- interface->get_alert_sink = mail_browser_get_alert_sink;
interface->get_backend = mail_browser_get_backend;
interface->get_formatter = mail_browser_get_formatter;
interface->get_hide_deleted = mail_browser_get_hide_deleted;
interface->get_message_list = mail_browser_get_message_list;
interface->get_popup_menu = mail_browser_get_popup_menu;
+ interface->get_preview_pane = mail_browser_get_preview_pane;
interface->get_window = mail_browser_get_window;
interface->set_message = mail_browser_set_message;
- interface->show_search_bar = mail_browser_show_search_bar;
}
static void
@@ -987,9 +934,7 @@ e_mail_browser_init (EMailBrowser *browser)
GConfBridge *bridge;
const gchar *prefix;
- browser->priv = G_TYPE_INSTANCE_GET_PRIVATE (
- browser, E_TYPE_MAIL_BROWSER, EMailBrowserPrivate);
-
+ browser->priv = E_MAIL_BROWSER_GET_PRIVATE (browser);
browser->priv->formatter = em_format_html_display_new ();
bridge = gconf_bridge_get ();