aboutsummaryrefslogtreecommitdiffstats
path: root/mail/e-mail-shell-view-private.h
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@src.gnome.org>2009-02-08 04:04:52 +0800
committerMatthew Barnes <mbarnes@src.gnome.org>2009-02-08 04:04:52 +0800
commit14e8637d6b1a98b4ed6bedc70d0fca744b7b3e0f (patch)
treeec49b42bc6e0cfb3115ca56f41106e63a0b67d85 /mail/e-mail-shell-view-private.h
parentfee5916b60c605ff5086d8fdc2a85c5ea21351f6 (diff)
downloadgsoc2013-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.h36
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