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-shell-view-private.h | |
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-shell-view-private.h')
-rw-r--r-- | mail/e-mail-shell-view-private.h | 36 |
1 files changed, 20 insertions, 16 deletions
diff --git a/mail/e-mail-shell-view-private.h b/mail/e-mail-shell-view-private.h index 20094ed379..cdb3c72b9d 100644 --- a/mail/e-mail-shell-view-private.h +++ b/mail/e-mail-shell-view-private.h @@ -35,6 +35,8 @@ #include "widgets/misc/e-popup-action.h" #include "widgets/menus/gal-view-instance.h" +#include "e-mail-label-dialog.h" +#include "e-mail-label-list-store.h" #include "e-mail-reader.h" #include "em-composer-utils.h" #include "em-folder-properties.h" @@ -74,22 +76,21 @@ G_BEGIN_DECLS -/* Filter items are displayed in ascending order. */ +/* Filter items are displayed in ascending order. + * Labels are numbered from zero, so subsequent items must have + * sufficiently large values. Unfortunately this introduces an + * arbitrary upper bound on labels. */ enum { - MAIL_FILTER_ALL_MESSAGES, - MAIL_FILTER_UNREAD_MESSAGES, - MAIL_FILTER_NO_LABEL, - MAIL_FILTER_LABEL_IMPORTANT, - MAIL_FILTER_LABEL_WORK, - MAIL_FILTER_LABEL_PERSONAL, - MAIL_FILTER_LABEL_TO_DO, - MAIL_FILTER_LABEL_LATER, - MAIL_FILTER_READ_MESSAGES, - MAIL_FILTER_RECENT_MESSAGES, - MAIL_FILTER_LAST_5_DAYS_MESSAGES, - MAIL_FILTER_MESSAGES_WITH_ATTACHMENTS, - MAIL_FILTER_IMPORTANT_MESSAGES, - MAIL_FILTER_MESSAGES_NOT_JUNK + MAIL_FILTER_ALL_MESSAGES = -3, + MAIL_FILTER_UNREAD_MESSAGES = -2, + MAIL_FILTER_NO_LABEL = -1, + /* Labels go here */ + MAIL_FILTER_READ_MESSAGES = 5000, + MAIL_FILTER_RECENT_MESSAGES = 5001, + MAIL_FILTER_LAST_5_DAYS_MESSAGES = 5002, + MAIL_FILTER_MESSAGES_WITH_ATTACHMENTS = 5003, + MAIL_FILTER_IMPORTANT_MESSAGES = 5004, + MAIL_FILTER_MESSAGES_NOT_JUNK = 5005 }; /* Search items are displayed in ascending order. */ @@ -121,6 +122,7 @@ struct _EMailShellViewPrivate { /* For UI merging and unmerging. */ guint merge_id; + guint label_merge_id; }; void e_mail_shell_view_private_init @@ -145,10 +147,12 @@ void e_mail_shell_view_create_filter_from_selected void e_mail_shell_view_create_vfolder_from_selected (EMailShellView *mail_shell_view, gint vfolder_type); -void e_mail_shell_view_update_sidebar +void e_mail_shell_view_update_popup_labels (EMailShellView *mail_shell_view); void e_mail_shell_view_update_search_filter (EMailShellView *mail_shell_view); +void e_mail_shell_view_update_sidebar + (EMailShellView *mail_shell_view); G_END_DECLS |