diff options
-rw-r--r-- | filter/ChangeLog | 8 | ||||
-rw-r--r-- | filter/filter-label.c | 49 | ||||
-rw-r--r-- | filter/filter-label.h | 5 | ||||
-rw-r--r-- | filter/libfilter-i18n.h | 44 | ||||
-rw-r--r-- | filter/vfolder-rule.c | 5 |
5 files changed, 86 insertions, 25 deletions
diff --git a/filter/ChangeLog b/filter/ChangeLog index 9571bfb928..12abd29ea0 100644 --- a/filter/ChangeLog +++ b/filter/ChangeLog @@ -1,3 +1,11 @@ +2002-11-13 Not Zed <NotZed@Ximian.com> + + * vfolder-rule.c (source_add): comment out gtk_destroyed check. + + * filter-label.c: Added back some of the guts. Might not work but + some of the code uses it :-/. Gives u a fixed set of non-editable + labels. + 2002-11-08 Jeffrey Stedfast <fejj@ximian.com> * rule-editor.c (rule_edit): Use weak_ref instead of connecting to diff --git a/filter/filter-label.c b/filter/filter-label.c index a249a8adf3..d6521a94d8 100644 --- a/filter/filter-label.c +++ b/filter/filter-label.c @@ -113,12 +113,59 @@ filter_label_new (void) return (FilterLabel *) g_object_new (FILTER_TYPE_LABEL, NULL, NULL); } + +static struct { + char *path; + char *title; + char *value; +} labels[] = { + { "/Mail/Labels/label_0", N_("Important"), "important" }, + { "/Mail/Labels/label_1", N_("Work"), "work" }, + { "/Mail/Labels/label_2", N_("Personal"), "personal" }, + { "/Mail/Labels/label_3", N_("To Do"), "todo" }, + { "/Mail/Labels/label_4", N_("Later"), "later" }, +}; + +int filter_label_count(void) +{ + return sizeof(labels)/sizeof(labels[0]); +} + +const char *filter_label_label(int i) +{ + if (i<0 || i >= sizeof(labels)/sizeof(labels[0])) + return NULL; + else + return labels[i].value; +} + +int filter_label_index(const char *label) +{ + int i; + + for (i=0;i<sizeof(labels)/sizeof(labels[0]);i++) { + if (strcmp(labels[i].value, label) == 0) + return i; + } + + return -1; +} + static void xml_create (FilterElement *fe, xmlNodePtr node) { FilterOption *fo = (FilterOption *) fe; - + int i; + FILTER_ELEMENT_CLASS (parent_class)->xml_create (fe, node); /* FIXME: probably use gconf_client_get_list() here? */ + + /* just hardcode some stuff for now */ + for (i=0;i<sizeof(labels)/sizeof(labels[0]);i++) { + const char *title; + + title = _(labels[i].title); + filter_option_add(fo, labels[i].value, title, NULL); + } } diff --git a/filter/filter-label.h b/filter/filter-label.h index bde83811ce..395ce07d48 100644 --- a/filter/filter-label.h +++ b/filter/filter-label.h @@ -58,6 +58,11 @@ GType filter_label_get_type (void); FilterLabel *filter_label_new (void); +/* Sigh, this is a mess, but its cleaner than the original mess */ +int filter_label_count(void); +const char *filter_label_label(int i); +int filter_label_index(const char *label); + #ifdef __cplusplus } #endif /* __cplusplus */ diff --git a/filter/libfilter-i18n.h b/filter/libfilter-i18n.h index d965e03184..ea7ff03b0e 100644 --- a/filter/libfilter-i18n.h +++ b/filter/libfilter-i18n.h @@ -4,34 +4,17 @@ char *s = N_("Assign Color"); char *s = N_("Assign Score"); char *s = N_("Attachments"); char *s = N_("Beep"); -char *s = N_("contains"); char *s = N_("Copy to Folder"); char *s = N_("Date received"); char *s = N_("Date sent"); char *s = N_("Delete"); char *s = N_("Deleted"); -char *s = N_("does not contain"); -char *s = N_("does not end with"); -char *s = N_("does not exist"); -char *s = N_("does not return"); -char *s = N_("does not sound like"); -char *s = N_("does not start with"); char *s = N_("Do Not Exist"); char *s = N_("Draft"); -char *s = N_("ends with"); char *s = N_("Exist"); -char *s = N_("exists"); char *s = N_("Expression"); char *s = N_("Follow Up"); char *s = N_("Important"); -char *s = N_("is"); -char *s = N_("is after"); -char *s = N_("is before"); -char *s = N_("is Flagged"); -char *s = N_("is greater than"); -char *s = N_("is less than"); -char *s = N_("is not"); -char *s = N_("is not Flagged"); char *s = N_("Label"); char *s = N_("Mailing list"); char *s = N_("Message Body"); @@ -43,19 +26,36 @@ char *s = N_("Read"); char *s = N_("Recipients"); char *s = N_("Regex Match"); char *s = N_("Replied to"); -char *s = N_("returns"); -char *s = N_("returns greater than"); -char *s = N_("returns less than"); char *s = N_("Score"); char *s = N_("Sender"); char *s = N_("Set Status"); char *s = N_("Shell Command"); char *s = N_("Size (kB)"); -char *s = N_("sounds like"); char *s = N_("Source Account"); char *s = N_("Specific header"); -char *s = N_("starts with"); char *s = N_("Status"); char *s = N_("Stop Processing"); char *s = N_("Subject"); char *s = N_("Unset Status"); +char *s = N_("contains"); +char *s = N_("does not contain"); +char *s = N_("does not end with"); +char *s = N_("does not exist"); +char *s = N_("does not return"); +char *s = N_("does not sound like"); +char *s = N_("does not start with"); +char *s = N_("ends with"); +char *s = N_("exists"); +char *s = N_("is Flagged"); +char *s = N_("is after"); +char *s = N_("is before"); +char *s = N_("is greater than"); +char *s = N_("is less than"); +char *s = N_("is not Flagged"); +char *s = N_("is not"); +char *s = N_("is"); +char *s = N_("returns greater than"); +char *s = N_("returns less than"); +char *s = N_("returns"); +char *s = N_("sounds like"); +char *s = N_("starts with"); diff --git a/filter/vfolder-rule.c b/filter/vfolder-rule.c index 19de3074f7..d634c0c6f8 100644 --- a/filter/vfolder-rule.c +++ b/filter/vfolder-rule.c @@ -394,13 +394,14 @@ source_add (GtkWidget *widget, struct _source_data *data) GTK_WINDOW (gtk_widget_get_toplevel (widget)), _("Select Folder"), def, allowed_types, &folder); - +#warning "gtk_object_destroyed?" +#if 0 if (GTK_OBJECT_DESTROYED (widget)) { if (folder) CORBA_free (folder); return; } - +#endif gtk_widget_set_sensitive (widget, TRUE); if (folder) { |