diff options
author | Matthew Barnes <mbarnes@src.gnome.org> | 2009-02-08 04:04:52 +0800 |
---|---|---|
committer | Matthew Barnes <mbarnes@src.gnome.org> | 2009-02-08 04:04:52 +0800 |
commit | 14e8637d6b1a98b4ed6bedc70d0fca744b7b3e0f (patch) | |
tree | ec49b42bc6e0cfb3115ca56f41106e63a0b67d85 /mail/e-mail-browser.c | |
parent | fee5916b60c605ff5086d8fdc2a85c5ea21351f6 (diff) | |
download | gsoc2013-evolution-14e8637d6b1a98b4ed6bedc70d0fca744b7b3e0f.tar.gz gsoc2013-evolution-14e8637d6b1a98b4ed6bedc70d0fca744b7b3e0f.tar.zst gsoc2013-evolution-14e8637d6b1a98b4ed6bedc70d0fca744b7b3e0f.zip |
Rewrite the mail label code from top to bottom.
- Kill the e-util-labels API and read label information into a
single-column GtkListStore. Use GConfBridge to automatically
keep GConf synched with the list store.
- The list store (a singleton instance) is stored in EShellSettings
so it's available everywhere.
- The list store serves as the model for EMailLabelTreeView,
which itself is embedded in EMailLabelManager; a complete
label management UI as seen in the preferences dialog.
- EMailLabelDialog is used to add or edit a label. Avoid using a
color button, instead embed a GtkColorSelection directly in the
dialog so everything is in one window.
Open issues:
- The weird toggle/color/text menu items in the popup menu aren't
there. For now they're just regular toggle items. I'll deal
with it later.
- Filter intergration is broken at the moment.
svn path=/branches/kill-bonobo/; revision=37233
Diffstat (limited to 'mail/e-mail-browser.c')
-rw-r--r-- | mail/e-mail-browser.c | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/mail/e-mail-browser.c b/mail/e-mail-browser.c index 0bc40f13ab..0e4239d4a7 100644 --- a/mail/e-mail-browser.c +++ b/mail/e-mail-browser.c @@ -338,12 +338,22 @@ mail_browser_constructed (GObject *object) ui_manager = priv->ui_manager; domain = GETTEXT_PACKAGE; - e_mail_reader_init (reader); - shell_module = e_mail_reader_get_shell_module (reader); shell = e_shell_module_get_shell (shell_module); e_shell_watch_window (shell, GTK_WINDOW (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 (shell_module); + g_object_ref_sink (priv->message_list); + + g_signal_connect_swapped ( + priv->message_list, "message-selected", + G_CALLBACK (mail_browser_message_selected_cb), object); + + e_mail_reader_init (reader); + action_group = priv->action_group; gtk_action_group_set_translation_domain (action_group, domain); gtk_action_group_add_actions ( @@ -560,16 +570,6 @@ mail_browser_init (EMailBrowser *browser) browser->priv->action_group = gtk_action_group_new ("mail-browser"); browser->priv->html_display = em_format_html_display_new (); - /* 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. */ - browser->priv->message_list = message_list_new (); - g_object_ref_sink (browser->priv->message_list); - - g_signal_connect_swapped ( - browser->priv->message_list, "message-selected", - G_CALLBACK (mail_browser_message_selected_cb), browser); - bridge = gconf_bridge_get (); prefix = "/apps/evolution/mail/mail_browser"; gconf_bridge_bind_window_size (bridge, prefix, GTK_WINDOW (browser)); |