[evolution] EMailDisplay cleanups.



commit 046816123764f86f1b258195292abcdb7951fca3
Author: Matthew Barnes <mbarnes redhat com>
Date:   Tue Jun 4 10:26:01 2013 -0400

    EMailDisplay cleanups.

 mail/e-mail-browser.c |   10 ++--
 mail/e-mail-display.c |  137 +++++++++++++++++++++++++++----------------------
 mail/e-mail-display.h |    3 +-
 3 files changed, 83 insertions(+), 67 deletions(-)
---
diff --git a/mail/e-mail-browser.c b/mail/e-mail-browser.c
index c3d6899..6e5cde8 100644
--- a/mail/e-mail-browser.c
+++ b/mail/e-mail-browser.c
@@ -519,7 +519,6 @@ mail_browser_constructed (GObject *object)
        EMailReader *reader;
        EMailBackend *backend;
        EMailSession *session;
-       EMailDisplay *display;
        EShellBackend *shell_backend;
        EShell *shell;
        EFocusTracker *focus_tracker;
@@ -529,6 +528,7 @@ mail_browser_constructed (GObject *object)
        GtkAction *action;
        GtkUIManager *ui_manager;
        GtkWidget *container;
+       GtkWidget *display;
        GtkWidget *widget;
        const gchar *domain;
        const gchar *id;
@@ -567,9 +567,11 @@ mail_browser_constructed (GObject *object)
                browser->priv->message_list, "message-list-built",
                G_CALLBACK (mail_browser_message_list_built_cb), object);
 
-       display = g_object_new (
-               E_TYPE_MAIL_DISPLAY,
-               "display-mode", browser->priv->display_mode, NULL);
+       display = e_mail_display_new ();
+
+       e_mail_display_set_mode (
+               E_MAIL_DISPLAY (display),
+               browser->priv->display_mode);
 
        g_signal_connect_swapped (
                display, "popup-event",
diff --git a/mail/e-mail-display.c b/mail/e-mail-display.c
index ac9eda0..08bf520 100644
--- a/mail/e-mail-display.c
+++ b/mail/e-mail-display.c
@@ -19,22 +19,20 @@
  *
  */
 
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
 #include "e-mail-display.h"
 
+#include <config.h>
 #include <glib/gi18n.h>
-#include <gdk/gdk.h>
 
+#include <gdk/gdk.h>
 #include <camel/camel.h>
 
-#include "em-format/e-mail-part-utils.h"
-#include "em-format/e-mail-formatter-extension.h"
-#include "em-format/e-mail-extension-registry.h"
-#include "em-format/e-mail-part-attachment.h"
-#include "em-format/e-mail-formatter-print.h"
+#include <em-format/e-mail-extension-registry.h>
+#include <em-format/e-mail-formatter-enumtypes.h>
+#include <em-format/e-mail-formatter-extension.h>
+#include <em-format/e-mail-formatter-print.h>
+#include <em-format/e-mail-part-attachment.h>
+#include <em-format/e-mail-part-utils.h>
 
 #include "e-http-request.h"
 #include "e-mail-display-popup-extension.h"
@@ -66,11 +64,11 @@ struct _EMailDisplayPrivate {
 
 enum {
        PROP_0,
-       PROP_MODE,
-       PROP_PART_LIST,
+       PROP_FORMATTER,
        PROP_HEADERS_COLLAPSABLE,
        PROP_HEADERS_COLLAPSED,
-       PROP_FORMATTER
+       PROP_MODE,
+       PROP_PART_LIST
 };
 
 static CamelDataCache *emd_global_http_cache = NULL;
@@ -1270,26 +1268,29 @@ mail_display_set_property (GObject *object,
                            GParamSpec *pspec)
 {
        switch (property_id) {
-               case PROP_PART_LIST:
-                       e_mail_display_set_parts_list (
-                               E_MAIL_DISPLAY (object),
-                               g_value_get_pointer (value));
-                       return;
-               case PROP_MODE:
-                       e_mail_display_set_mode (
-                               E_MAIL_DISPLAY (object),
-                               g_value_get_int (value));
-                       return;
                case PROP_HEADERS_COLLAPSABLE:
                        e_mail_display_set_headers_collapsable (
                                E_MAIL_DISPLAY (object),
                                g_value_get_boolean (value));
                        return;
+
                case PROP_HEADERS_COLLAPSED:
                        e_mail_display_set_headers_collapsed (
                                E_MAIL_DISPLAY (object),
                                g_value_get_boolean (value));
                        return;
+
+               case PROP_MODE:
+                       e_mail_display_set_mode (
+                               E_MAIL_DISPLAY (object),
+                               g_value_get_enum (value));
+                       return;
+
+               case PROP_PART_LIST:
+                       e_mail_display_set_parts_list (
+                               E_MAIL_DISPLAY (object),
+                               g_value_get_pointer (value));
+                       return;
        }
 
        G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
@@ -1304,27 +1305,36 @@ mail_display_get_property (GObject *object,
        switch (property_id) {
                case PROP_FORMATTER:
                        g_value_set_object (
-                               value, e_mail_display_get_formatter (
-                               E_MAIL_DISPLAY (object)));
-                       return;
-               case PROP_PART_LIST:
-                       g_value_set_pointer (
-                               value, e_mail_display_get_parts_list (
-                               E_MAIL_DISPLAY (object)));
-                       return;
-               case PROP_MODE:
-                       g_value_set_int (
-                               value, e_mail_display_get_mode (
+                               value,
+                               e_mail_display_get_formatter (
                                E_MAIL_DISPLAY (object)));
                        return;
+
                case PROP_HEADERS_COLLAPSABLE:
                        g_value_set_boolean (
-                               value, e_mail_display_get_headers_collapsable (
+                               value,
+                               e_mail_display_get_headers_collapsable (
                                E_MAIL_DISPLAY (object)));
                        return;
+
                case PROP_HEADERS_COLLAPSED:
                        g_value_set_boolean (
-                               value, e_mail_display_get_headers_collapsed (
+                               value,
+                               e_mail_display_get_headers_collapsed (
+                               E_MAIL_DISPLAY (object)));
+                       return;
+
+               case PROP_MODE:
+                       g_value_set_enum (
+                               value,
+                               e_mail_display_get_mode (
+                               E_MAIL_DISPLAY (object)));
+                       return;
+
+               case PROP_PART_LIST:
+                       g_value_set_pointer (
+                               value,
+                               e_mail_display_get_parts_list (
                                E_MAIL_DISPLAY (object)));
                        return;
        }
@@ -1352,16 +1362,14 @@ mail_display_dispose (GObject *object)
                priv->widgets = NULL;
        }
 
-       if (priv->settings != NULL) {
+       if (priv->settings != NULL)
                g_signal_handlers_disconnect_matched (
                        priv->settings, G_SIGNAL_MATCH_DATA,
                        0, 0, NULL, NULL, object);
-               g_object_unref (priv->settings);
-               priv->settings = NULL;
-       }
 
        g_clear_object (&priv->part_list);
        g_clear_object (&priv->formatter);
+       g_clear_object (&priv->settings);
 
        /* Chain up to parent's dispose() method. */
        G_OBJECT_CLASS (e_mail_display_parent_class)->dispose (object);
@@ -1522,46 +1530,45 @@ e_mail_display_class_init (EMailDisplayClass *class)
 
        g_object_class_install_property (
                object_class,
-               PROP_PART_LIST,
-               g_param_spec_pointer (
-                       "part-list",
-                       "Part List",
+               PROP_HEADERS_COLLAPSABLE,
+               g_param_spec_boolean (
+                       "headers-collapsable",
+                       "Headers Collapsable",
                        NULL,
+                       FALSE,
                        G_PARAM_READWRITE |
                        G_PARAM_STATIC_STRINGS));
 
        g_object_class_install_property (
                object_class,
-               PROP_MODE,
-               g_param_spec_int (
-                       "mode",
-                       "Display Mode",
+               PROP_HEADERS_COLLAPSED,
+               g_param_spec_boolean (
+                       "headers-collapsed",
+                       "Headers Collapsed",
                        NULL,
-                       E_MAIL_FORMATTER_MODE_INVALID,
-                       G_MAXINT,
-                       E_MAIL_FORMATTER_MODE_NORMAL,
+                       FALSE,
                        G_PARAM_READWRITE |
                        G_PARAM_STATIC_STRINGS));
 
        g_object_class_install_property (
                object_class,
-               PROP_HEADERS_COLLAPSABLE,
-               g_param_spec_boolean (
-                       "headers-collapsable",
-                       "Headers Collapsable",
+               PROP_MODE,
+               g_param_spec_enum (
+                       "mode",
+                       "Mode",
                        NULL,
-                       FALSE,
+                       E_TYPE_MAIL_FORMATTER_MODE,
+                       E_MAIL_FORMATTER_MODE_NORMAL,
                        G_PARAM_READWRITE |
                        G_PARAM_STATIC_STRINGS));
 
        g_object_class_install_property (
                object_class,
-               PROP_HEADERS_COLLAPSED,
-               g_param_spec_boolean (
-                       "headers-collapsed",
-                       "Headers Collapsed",
+               PROP_PART_LIST,
+               g_param_spec_pointer (
+                       "part-list",
+                       "Part List",
                        NULL,
-                       FALSE,
                        G_PARAM_READWRITE |
                        G_PARAM_STATIC_STRINGS));
 }
@@ -1663,12 +1670,18 @@ e_mail_display_init (EMailDisplay *display)
        }
 }
 
+GtkWidget *
+e_mail_display_new (void)
+{
+       return g_object_new (E_TYPE_MAIL_DISPLAY, NULL);
+}
+
 EMailFormatterMode
 e_mail_display_get_mode (EMailDisplay *display)
 {
        g_return_val_if_fail (
                E_IS_MAIL_DISPLAY (display),
-               E_MAIL_FORMATTER_MODE_NORMAL);
+               E_MAIL_FORMATTER_MODE_INVALID);
 
        return display->priv->mode;
 }
diff --git a/mail/e-mail-display.h b/mail/e-mail-display.h
index 39516a8..c503a39 100644
--- a/mail/e-mail-display.h
+++ b/mail/e-mail-display.h
@@ -61,7 +61,8 @@ struct _EMailDisplayClass {
 
 };
 
-GType          e_mail_display_get_type         (void);
+GType          e_mail_display_get_type         (void) G_GNUC_CONST;
+GtkWidget *    e_mail_display_new              (void);
 EMailFormatterMode
                e_mail_display_get_mode         (EMailDisplay *display);
 void           e_mail_display_set_mode         (EMailDisplay *display,


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]