commit 811daf73de8faae068f1881551ddb92dedad8c8f
parent c88174a91be3f6b0f8fe8f2cc39576170e4962de
Author: Oliver Lowe <o@olowe.co>
Date: Sat, 16 Aug 2025 10:08:36 +1000
Remove more tags, colour labels, newsgroup stuff
Diffstat:
8 files changed, 38 insertions(+), 730 deletions(-)
diff --git a/src/edittags.c b/src/edittags.c
@@ -250,10 +250,6 @@ static void tags_popup_delete (GtkAction *action, gpointer data)
return;
gtk_list_store_remove(GTK_LIST_STORE(model), &sel);
- if (mainwindow_get_mainwindow() != NULL)
- summaryview = mainwindow_get_mainwindow()->summaryview;
- if (summaryview)
- summary_set_tag(summaryview, -id, NULL);
tags_remove_tag(id);
tags_write_tags();
TAGS_WINDOW_UNLOCK();
@@ -276,15 +272,6 @@ static void tags_popup_delete_all (GtkAction *action, gpointer data)
model = gtk_tree_view_get_model(GTK_TREE_VIEW(tagswindow.taglist));
gtk_list_store_clear(GTK_LIST_STORE(model));
- if (mainwindow_get_mainwindow() != NULL)
- summaryview = mainwindow_get_mainwindow()->summaryview;
- cur = tags = tags_get_list();
- for (; cur; cur = cur->next) {
- gint id = GPOINTER_TO_INT(cur->data);
- if (summaryview)
- summary_set_tag(summaryview, -id, NULL);
- tags_remove_tag(id);
- }
g_slist_free(tags);
tags_write_tags();
@@ -444,10 +431,6 @@ static void tags_window_add_tag(void)
if (id == -1) {
id = tags_add_tag(new_tag);
tags_write_tags();
- if (mainwindow_get_mainwindow())
- summary_set_tag(
- mainwindow_get_mainwindow()->summaryview,
- id, NULL);
tags_window_list_view_insert_tag(tagswindow.taglist, NULL, id);
}
fis.tag_id = id;
@@ -462,10 +445,6 @@ static void tags_window_add_tag(void)
GtkTreeModel *model = gtk_tree_view_get_model(
GTK_TREE_VIEW(tagswindow.taglist));
- if (mainwindow_get_mainwindow())
- summary_set_tag(
- mainwindow_get_mainwindow()->summaryview,
- id, NULL);
selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(tagswindow.taglist));
gtk_tree_selection_select_iter(selection, &fis.iter);
path = gtk_tree_model_get_path(model, &fis.iter);
@@ -691,8 +670,6 @@ static void tags_selected_toggled(GtkCellRendererToggle *widget,
-1);
TAGS_WINDOW_LOCK();
- if (summaryview)
- summary_set_tag(summaryview, set ? tag_id : -tag_id, NULL);
TAGS_WINDOW_UNLOCK();
}
@@ -727,23 +704,12 @@ static void tags_selected_edited(GtkCellRendererText *widget,
tag_id = GPOINTER_TO_INT(tmp);
TAGS_WINDOW_LOCK();
- if (selected) {
- if (summaryview)
- summary_set_tag(summaryview, -tag_id, NULL);
- }
tags_update_tag(tag_id, new_text);
gtk_list_store_set(GTK_LIST_STORE(model), &iter,
TAG_NAME, new_text,
-1);
- if (selected) {
- if (summaryview)
- summary_set_tag(summaryview, tag_id, NULL);
- } else {
- if (summaryview)
- summary_set_tag(summaryview, 0, NULL);
- }
TAGS_WINDOW_UNLOCK();
}
diff --git a/src/filtering.c b/src/filtering.c
@@ -325,23 +325,6 @@ static gboolean filteringaction_apply(FilteringAction * action, MsgInfo * info)
info->to_filter_folder = dest_folder;
return TRUE;
- case MATCHACTION_SET_TAG:
- case MATCHACTION_UNSET_TAG:
- val = tags_get_id_for_str(action->destination);
- if (val == -1) {
- debug_print("*** tag '%s' not found\n",
- action->destination ?action->destination :"(null)");
- return FALSE;
- }
- FLUSH_COPY_IF_NEEDED(info);
- procmsg_msginfo_update_tags(info, (action->type == MATCHACTION_SET_TAG), val);
- return TRUE;
-
- case MATCHACTION_CLEAR_TAGS:
- FLUSH_COPY_IF_NEEDED(info);
- procmsg_msginfo_clear_tags(info);
- return TRUE;
-
case MATCHACTION_DELETE:
FLUSH_COPY_IF_NEEDED(info);
info->filter_op = IS_DELE;
diff --git a/src/headerview.c b/src/headerview.c
@@ -185,8 +185,6 @@ void headerview_init(HeaderView *headerview)
void headerview_show(HeaderView *headerview, MsgInfo *msginfo)
{
- gchar *tags = procmsg_msginfo_get_tags_str(msginfo);
-
headerview_clear(headerview);
gtk_label_set_text(GTK_LABEL(headerview->from_body_label),
@@ -197,22 +195,9 @@ void headerview_show(HeaderView *headerview, MsgInfo *msginfo)
gtk_widget_show(headerview->to_header_label);
gtk_widget_show(headerview->to_body_label);
}
- if (msginfo->newsgroups) {
- gtk_label_set_text(GTK_LABEL(headerview->ng_body_label),
- msginfo->newsgroups);
- gtk_widget_show(headerview->ng_header_label);
- gtk_widget_show(headerview->ng_body_label);
- }
gtk_label_set_text(GTK_LABEL(headerview->subject_body_label),
msginfo->subject ? msginfo->subject :
_("(No Subject)"));
- if (tags) {
- gtk_label_set_text(GTK_LABEL(headerview->tags_body_label),
- tags);
- gtk_widget_show(headerview->tags_header_label);
- gtk_widget_show(headerview->tags_body_label);
- g_free(tags);
- }
if (!headerview_show_avatar(headerview, msginfo))
return;
diff --git a/src/mainwindow.c b/src/mainwindow.c
@@ -665,10 +665,6 @@ static GtkActionEntry mainwin_entries[] =
{"Message/Marks/Lock", NULL, N_("Lock"), NULL, NULL, G_CALLBACK(lock_msgs_cb) },
{"Message/Marks/Unlock", NULL, N_("Unlock"), NULL, NULL, G_CALLBACK(unlock_msgs_cb) },
- {"Message/ColorLabel", NULL, N_("Color la_bel"), NULL, NULL, NULL },
- {"Message/Tags", NULL, N_("Ta_gs"), NULL, NULL, NULL },
- /*{"Message/---", NULL, "---", NULL, NULL, NULL },*/
-
{"Message/Reedit", NULL, N_("Re-_edit"), NULL, NULL, G_CALLBACK(reedit_cb) },
/*{"Message/---", NULL, "---", NULL, NULL, NULL },*/
@@ -791,8 +787,6 @@ static GtkRadioActionEntry mainwin_sort_radio_entries[] = { /* sort_summary_cb *
{"View/Sort/From", NULL, N_("By _From"), NULL, NULL, SORT_BY_FROM }, /* radio SORT_BY_FROM */
{"View/Sort/To", NULL, N_("By _To"), NULL, NULL, SORT_BY_TO }, /* radio SORT_BY_TO */
{"View/Sort/Subject", NULL, N_("By s_ubject"), NULL, NULL, SORT_BY_SUBJECT }, /* radio SORT_BY_SUBJECT */
- {"View/Sort/Color", NULL, N_("By _color label"), NULL, NULL, SORT_BY_LABEL }, /* radio SORT_BY_LABEL */
- {"View/Sort/Tag", NULL, N_("By tag"), NULL, NULL, SORT_BY_TAGS }, /* radio SORT_BY_TAGS */
{"View/Sort/Mark", NULL, N_("By _mark"), NULL, NULL, SORT_BY_MARK }, /* radio SORT_BY_MARK */
{"View/Sort/Status", NULL, N_("By _status"), NULL, NULL, SORT_BY_STATUS }, /* radio SORT_BY_STATUS */
{"View/Sort/Attachment", NULL, N_("By a_ttachment"), NULL, NULL, SORT_BY_MIME }, /* radio SORT_BY_MIME */
@@ -1137,8 +1131,6 @@ MainWindow *main_window_create()
MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/View/Sort", "From", "View/Sort/From", GTK_UI_MANAGER_MENUITEM)
MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/View/Sort", "To", "View/Sort/To", GTK_UI_MANAGER_MENUITEM)
MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/View/Sort", "Subject", "View/Sort/Subject", GTK_UI_MANAGER_MENUITEM)
- MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/View/Sort", "Color", "View/Sort/Color", GTK_UI_MANAGER_MENUITEM)
- MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/View/Sort", "Tag", "View/Sort/Tag", GTK_UI_MANAGER_MENUITEM)
MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/View/Sort", "Mark", "View/Sort/Mark", GTK_UI_MANAGER_MENUITEM)
MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/View/Sort", "Status", "View/Sort/Status", GTK_UI_MANAGER_MENUITEM)
MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/View/Sort", "Attachment", "View/Sort/Attachment", GTK_UI_MANAGER_MENUITEM)
@@ -1336,8 +1328,6 @@ MainWindow *main_window_create()
MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/Message/Marks", "Separator5", "Message/Marks/---", GTK_UI_MANAGER_SEPARATOR)
MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/Message/Marks", "Lock", "Message/Marks/Lock", GTK_UI_MANAGER_MENUITEM)
MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/Message/Marks", "Unlock", "Message/Marks/Unlock", GTK_UI_MANAGER_MENUITEM)
- MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/Message", "ColorLabel", "Message/ColorLabel", GTK_UI_MANAGER_MENUITEM)
- MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/Message", "Tags", "Message/Tags", GTK_UI_MANAGER_MENUITEM)
MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/Message", "Separator5", "Message/---", GTK_UI_MANAGER_SEPARATOR)
MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/Message", "Reedit", "Message/Reedit", GTK_UI_MANAGER_MENUITEM)
@@ -1408,7 +1398,6 @@ MainWindow *main_window_create()
MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/Configuration", "Filtering", "Configuration/Filtering", GTK_UI_MANAGER_MENUITEM)
MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/Configuration", "Templates", "Configuration/Templates", GTK_UI_MANAGER_MENUITEM)
MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/Configuration", "Actions", "Configuration/Actions", GTK_UI_MANAGER_MENUITEM)
- MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/Configuration", "Tags", "Configuration/Tags", GTK_UI_MANAGER_MENUITEM)
MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/Configuration", "Separator2", "Configuration/---", GTK_UI_MANAGER_SEPARATOR)
@@ -2631,8 +2620,6 @@ void main_window_set_menu_sensitive(MainWindow *mainwin)
SET_SENSITIVE("Menu/Message/Marks/UnignoreThread", M_TARGET_EXIST);
SET_SENSITIVE("Menu/Message/Marks/Lock", M_TARGET_EXIST);
SET_SENSITIVE("Menu/Message/Marks/Unlock", M_TARGET_EXIST);
- SET_SENSITIVE("Menu/Message/ColorLabel", M_TARGET_EXIST);
- SET_SENSITIVE("Menu/Message/Tags", M_TARGET_EXIST);
SET_SENSITIVE("Menu/Message/Reedit", M_HAVE_ACCOUNT, M_ALLOW_REEDIT);
SET_SENSITIVE("Menu/Message/CheckSignature", M_SINGLE_TARGET_EXIST);
@@ -2699,8 +2686,6 @@ void main_window_set_menu_sensitive(MainWindow *mainwin)
menu_path = "Menu/View/Sort/To"; break;
case SORT_BY_SUBJECT:
menu_path = "Menu/View/Sort/Subject"; break;
- case SORT_BY_LABEL:
- menu_path = "Menu/View/Sort/Color"; break;
case SORT_BY_MARK:
menu_path = "Menu/View/Sort/Mark"; break;
case SORT_BY_STATUS:
@@ -2711,8 +2696,6 @@ void main_window_set_menu_sensitive(MainWindow *mainwin)
menu_path = "Menu/View/Sort/Score"; break;
case SORT_BY_LOCKED:
menu_path = "Menu/View/Sort/Locked"; break;
- case SORT_BY_TAGS:
- menu_path = "Menu/View/Sort/Tag"; break;
case SORT_BY_NONE:
default:
menu_path = "Menu/View/Sort/DontSort"; break;
diff --git a/src/prefs_matcher.c b/src/prefs_matcher.c
@@ -50,7 +50,6 @@
#include "combobox.h"
#include "matcher_parser.h"
-#include "tags.h"
#include "addressbook.h"
static void prefs_matcher_addressbook_select(void);
@@ -111,7 +110,6 @@ static struct Matcher {
GtkTreeModel *model_set;
GtkTreeModel *model_size;
GtkTreeModel *model_size_units;
- GtkTreeModel *model_tags;
GtkTreeModel *model_test;
GtkTreeModel *model_thread;
@@ -311,8 +309,6 @@ static int header_name_to_crit(const gchar *header)
return CRITERIA_MESSAGEID;
if (!strcasecmp(header, "In-Reply-To"))
return CRITERIA_INREPLYTO;
- if (!strcasecmp(header, "Newsgroups"))
- return CRITERIA_NEWSGROUPS;
if (!strcasecmp(header, "References"))
return CRITERIA_REFERENCES;
@@ -371,7 +367,6 @@ static void prefs_matcher_models_create(void)
COMBOBOX_ADD(store, "To or Cc", CRITERIA_TO_OR_CC);
COMBOBOX_ADD(store, "Message-ID", CRITERIA_MESSAGEID);
COMBOBOX_ADD(store, "In-Reply-To", CRITERIA_INREPLYTO);
- COMBOBOX_ADD(store, "Newsgroups", CRITERIA_NEWSGROUPS);
COMBOBOX_ADD(store, "References", CRITERIA_REFERENCES);
COMBOBOX_ADD(store, "Sender", CRITERIA_HEADER);
COMBOBOX_ADD(store, "X-ML-Name", CRITERIA_HEADER);
@@ -414,11 +409,6 @@ static void prefs_matcher_models_create(void)
matcher.model_partial = GTK_TREE_MODEL(store);
store = gtk_list_store_new(3, G_TYPE_STRING, G_TYPE_INT, G_TYPE_BOOLEAN);
- COMBOBOX_ADD(store, _("Any tags"), CRITERIA_TAGGED);
- COMBOBOX_ADD(store, _("Specific tag"), CRITERIA_TAG);
- matcher.model_tags = GTK_TREE_MODEL(store);
-
- store = gtk_list_store_new(3, G_TYPE_STRING, G_TYPE_INT, G_TYPE_BOOLEAN);
COMBOBOX_ADD(store, _("ignored"), CRITERIA_IGNORE_THREAD);
COMBOBOX_ADD(store, _("not ignored"), CRITERIA_IGNORE_THREAD);
COMBOBOX_ADD(store, _("watched"), CRITERIA_WATCH_THREAD);
@@ -631,7 +621,6 @@ static void prefs_matcher_create(void)
COMBOBOX_ADD(store, _("Size"), MATCH_SIZE);
COMBOBOX_ADD(store, _("Partially downloaded"), MATCH_PARTIAL);
COMBOBOX_ADD(store, _("Address book"), MATCH_ABOOK);
- COMBOBOX_ADD(store, _("Tags"), MATCH_TAGS);
COMBOBOX_ADD(store, _("External program test"), MATCH_TEST);
COMBOBOX_ADD(store, _("Date"), MATCH_DATE);
@@ -920,7 +909,6 @@ static gboolean match_combo2_model_set(void)
model == matcher.model_phrase ||
model == matcher.model_set ||
model == matcher.model_size_units ||
- model == matcher.model_tags ||
model == matcher.model_thread)
return TRUE;
else
@@ -997,9 +985,6 @@ static void prefs_matcher_set_dialog(MatcherList *matchers)
gtk_combo_box_set_active(GTK_COMBO_BOX(matcher.bool_op_combo), bool_op);
prefs_matcher_reset_condition();
-
- combobox_set_sensitive(GTK_COMBO_BOX(matcher.criteria_combo), MATCH_TAGS,
- (tags_get_size() > 0) ? TRUE : FALSE);
}
/*!
@@ -1099,9 +1084,6 @@ static gint prefs_matcher_get_criteria_from_matching(gint matching_id)
case MATCHCRITERIA_PARTIAL:
case MATCHCRITERIA_NOT_PARTIAL:
return CRITERIA_PARTIAL;
- case MATCHCRITERIA_COLORLABEL:
- case MATCHCRITERIA_NOT_COLORLABEL:
- return CRITERIA_COLORLABEL;
case MATCHCRITERIA_IGNORE_THREAD:
case MATCHCRITERIA_NOT_IGNORE_THREAD:
return CRITERIA_IGNORE_THREAD;
@@ -1120,9 +1102,6 @@ static gint prefs_matcher_get_criteria_from_matching(gint matching_id)
case MATCHCRITERIA_NOT_CC:
case MATCHCRITERIA_CC:
return CRITERIA_CC;
- case MATCHCRITERIA_NOT_NEWSGROUPS:
- case MATCHCRITERIA_NEWSGROUPS:
- return CRITERIA_NEWSGROUPS;
case MATCHCRITERIA_NOT_MESSAGEID:
case MATCHCRITERIA_MESSAGEID:
return CRITERIA_MESSAGEID;
@@ -1135,12 +1114,6 @@ static gint prefs_matcher_get_criteria_from_matching(gint matching_id)
case MATCHCRITERIA_NOT_TO_AND_NOT_CC:
case MATCHCRITERIA_TO_OR_CC:
return CRITERIA_TO_OR_CC;
- case MATCHCRITERIA_NOT_TAG:
- case MATCHCRITERIA_TAG:
- return CRITERIA_TAG;
- case MATCHCRITERIA_NOT_TAGGED:
- case MATCHCRITERIA_TAGGED:
- return CRITERIA_TAGGED;
case MATCHCRITERIA_NOT_BODY_PART:
case MATCHCRITERIA_BODY_PART:
return CRITERIA_BODY_PART;
@@ -1226,8 +1199,6 @@ static gint prefs_matcher_get_matching_from_criteria(gint criteria_id)
return MATCHCRITERIA_SIGNED;
case CRITERIA_PARTIAL:
return MATCHCRITERIA_PARTIAL;
- case CRITERIA_COLORLABEL:
- return MATCHCRITERIA_COLORLABEL;
case CRITERIA_IGNORE_THREAD:
return MATCHCRITERIA_IGNORE_THREAD;
case CRITERIA_WATCH_THREAD:
@@ -1242,12 +1213,6 @@ static gint prefs_matcher_get_matching_from_criteria(gint criteria_id)
return MATCHCRITERIA_CC;
case CRITERIA_TO_OR_CC:
return MATCHCRITERIA_TO_OR_CC;
- case CRITERIA_TAG:
- return MATCHCRITERIA_TAG;
- case CRITERIA_TAGGED:
- return MATCHCRITERIA_TAGGED;
- case CRITERIA_NEWSGROUPS:
- return MATCHCRITERIA_NEWSGROUPS;
case CRITERIA_MESSAGEID:
return MATCHCRITERIA_MESSAGEID;
case CRITERIA_INREPLYTO:
@@ -1330,8 +1295,6 @@ static gint prefs_matcher_not_criteria(gint matcher_criteria)
return MATCHCRITERIA_NOT_SIGNED;
case MATCHCRITERIA_PARTIAL:
return MATCHCRITERIA_NOT_PARTIAL;
- case MATCHCRITERIA_COLORLABEL:
- return MATCHCRITERIA_NOT_COLORLABEL;
case MATCHCRITERIA_IGNORE_THREAD:
return MATCHCRITERIA_NOT_IGNORE_THREAD;
case MATCHCRITERIA_WATCH_THREAD:
@@ -1346,12 +1309,6 @@ static gint prefs_matcher_not_criteria(gint matcher_criteria)
return MATCHCRITERIA_NOT_CC;
case MATCHCRITERIA_TO_OR_CC:
return MATCHCRITERIA_NOT_TO_AND_NOT_CC;
- case MATCHCRITERIA_TAG:
- return MATCHCRITERIA_NOT_TAG;
- case MATCHCRITERIA_TAGGED:
- return MATCHCRITERIA_NOT_TAGGED;
- case MATCHCRITERIA_NEWSGROUPS:
- return MATCHCRITERIA_NOT_NEWSGROUPS;
case MATCHCRITERIA_MESSAGEID:
return MATCHCRITERIA_NOT_MESSAGEID;
case MATCHCRITERIA_INREPLYTO:
@@ -1398,14 +1355,11 @@ static gint prefs_matcher_get_criteria(void)
case MATCH_HEADER:
header = gtk_entry_get_text(GTK_ENTRY(matcher.header_entry));
return header_name_to_crit(header);
- case MATCH_LABEL:
- return CRITERIA_COLORLABEL;
case MATCH_PARTIAL:
return CRITERIA_PARTIAL;
case MATCH_TEST:
return CRITERIA_TEST;
case MATCH_PHRASE:
- case MATCH_TAGS:
case MATCH_THREAD:
return combobox_get_active_data(GTK_COMBO_BOX(
matcher.criteria_combo2));
@@ -1422,7 +1376,6 @@ static gint prefs_matcher_get_pred(const gint criteria)
case CRITERIA_TO:
case CRITERIA_CC:
case CRITERIA_TO_OR_CC:
- case CRITERIA_NEWSGROUPS:
case CRITERIA_MESSAGEID:
case CRITERIA_INREPLYTO:
case CRITERIA_REFERENCES:
@@ -1431,8 +1384,6 @@ static gint prefs_matcher_get_pred(const gint criteria)
case CRITERIA_HEADERS_CONT:
case CRITERIA_BODY_PART:
case CRITERIA_MESSAGE:
- case CRITERIA_TAG:
- case CRITERIA_TAGGED:
case CRITERIA_TEST:
return gtk_combo_box_get_active(GTK_COMBO_BOX(matcher.match_combo));
case CRITERIA_FOUND_IN_ADDRESSBOOK:
@@ -1446,7 +1397,6 @@ static gint prefs_matcher_get_pred(const gint criteria)
case CRITERIA_SPAM:
case CRITERIA_HAS_ATTACHMENT:
case CRITERIA_SIGNED:
- case CRITERIA_COLORLABEL:
return gtk_combo_box_get_active(GTK_COMBO_BOX(matcher.match_combo2));
case CRITERIA_WATCH_THREAD:
return gtk_combo_box_get_active(GTK_COMBO_BOX(matcher.criteria_combo2)) - 2;
@@ -1517,7 +1467,6 @@ static MatcherProp *prefs_matcher_dialog_to_matcher(void)
case CRITERIA_PARTIAL:
case CRITERIA_IGNORE_THREAD:
case CRITERIA_WATCH_THREAD:
- case CRITERIA_TAGGED:
break;
case CRITERIA_SUBJECT:
@@ -1525,8 +1474,6 @@ static MatcherProp *prefs_matcher_dialog_to_matcher(void)
case CRITERIA_TO:
case CRITERIA_CC:
case CRITERIA_TO_OR_CC:
- case CRITERIA_TAG:
- case CRITERIA_NEWSGROUPS:
case CRITERIA_MESSAGEID:
case CRITERIA_INREPLYTO:
case CRITERIA_REFERENCES:
@@ -1849,7 +1796,7 @@ static void prefs_matcher_second_criteria_sel(GtkWidget *widget,
gint criteria2 = combobox_get_active_data(GTK_COMBO_BOX(
matcher.criteria_combo2));
- if(criteria != MATCH_PHRASE && criteria != MATCH_TAGS) return;
+ if(criteria != MATCH_PHRASE) return;
if(criteria == MATCH_PHRASE) {
switch(criteria2) {
@@ -1871,26 +1818,6 @@ static void prefs_matcher_second_criteria_sel(GtkWidget *widget,
break;
}
}
-
- if(criteria == MATCH_TAGS) {
- if(criteria2 == CRITERIA_TAGGED) {
- prefs_matcher_enable_widget(matcher.upper_filler, FALSE);
- prefs_matcher_enable_widget(matcher.match_label2, TRUE);
- prefs_matcher_enable_widget(matcher.string_entry, FALSE);
- prefs_matcher_enable_widget(matcher.case_checkbtn, FALSE);
- prefs_matcher_enable_widget(matcher.regexp_checkbtn, FALSE);
- } else {
- prefs_matcher_enable_widget(matcher.upper_filler, TRUE);
- prefs_matcher_enable_widget(matcher.match_label2, FALSE);
- prefs_matcher_enable_widget(matcher.string_entry, TRUE);
- prefs_matcher_enable_widget(matcher.case_checkbtn, TRUE);
- prefs_matcher_enable_widget(matcher.regexp_checkbtn, TRUE);
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(
- matcher.regexp_checkbtn), FALSE);
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(
- matcher.case_checkbtn), FALSE);
- }
- }
}
#define MATCH_COMBO_IS_ENABLED(x) (x != MATCH_ALL && x != MATCH_ABOOK && \
@@ -1922,14 +1849,12 @@ static void prefs_matcher_criteria_select(GtkWidget *widget,
value == MATCH_PHRASE ||
value == MATCH_HEADER ||
value == MATCH_PARTIAL ||
- value == MATCH_TAGS ||
value == MATCH_THREAD));
prefs_matcher_enable_widget(matcher.headers_combo,
(value == MATCH_HEADER));
prefs_matcher_enable_widget(matcher.criteria_combo2,
(value == MATCH_PHRASE ||
value == MATCH_PARTIAL ||
- value == MATCH_TAGS ||
value == MATCH_THREAD));
prefs_matcher_enable_widget(matcher.match_combo2,
(value == MATCH_ABOOK ||
@@ -1940,8 +1865,7 @@ static void prefs_matcher_criteria_select(GtkWidget *widget,
prefs_matcher_enable_widget(matcher.match_label2,
(value == MATCH_ABOOK ||
value == MATCH_FLAG ||
- value == MATCH_LABEL ||
- value == MATCH_TAGS));
+ value == MATCH_LABEL));
prefs_matcher_enable_widget(matcher.header_addr_combo,
(value == MATCH_ABOOK));
prefs_matcher_enable_widget(matcher.string_entry,
@@ -2045,14 +1969,6 @@ static void prefs_matcher_criteria_select(GtkWidget *widget,
gtk_spin_button_set_value(GTK_SPIN_BUTTON(matcher.numeric_entry), 0);
gtk_label_set_text(GTK_LABEL(matcher.match_label), _("Size is"));
break;
- case MATCH_TAGS:
- prefs_matcher_set_model(matcher.criteria_combo2, matcher.model_tags);
- prefs_matcher_set_model(matcher.match_combo, matcher.model_contain);
- gtk_label_set_text(GTK_LABEL(matcher.criteria_label2), _("Scope:"));
- gtk_label_set_text(GTK_LABEL(matcher.match_label), _("Message"));
- gtk_label_set_text(GTK_LABEL(matcher.match_label2), _("tags"));
- prefs_matcher_second_criteria_sel(NULL, NULL);
- break;
case MATCH_THREAD:
prefs_matcher_set_model(matcher.criteria_combo2, matcher.model_thread);
gtk_label_set_text(GTK_LABEL(matcher.criteria_label2), _("type is"));
@@ -2337,7 +2253,6 @@ static void prefs_matcher_set_criteria(const gint criteria)
case CRITERIA_TO:
case CRITERIA_CC:
case CRITERIA_TO_OR_CC:
- case CRITERIA_NEWSGROUPS:
case CRITERIA_MESSAGEID:
case CRITERIA_INREPLYTO:
case CRITERIA_REFERENCES:
@@ -2353,13 +2268,6 @@ static void prefs_matcher_set_criteria(const gint criteria)
case CRITERIA_TEST:
match_criteria = MATCH_TEST;
break;
- case CRITERIA_COLORLABEL:
- match_criteria = MATCH_LABEL;
- break;
- case CRITERIA_TAG:
- case CRITERIA_TAGGED:
- match_criteria = MATCH_TAGS;
- break;
case CRITERIA_UNREAD:
case CRITERIA_NEW:
case CRITERIA_MARKED:
@@ -2400,7 +2308,6 @@ static void prefs_matcher_set_criteria(const gint criteria)
matcher.match_combo), criteria);
break;
case MATCH_PHRASE:
- case MATCH_TAGS:
combobox_select_by_data(GTK_COMBO_BOX(
matcher.criteria_combo2), criteria);
break;
@@ -2462,7 +2369,6 @@ static gboolean prefs_matcher_selected(GtkTreeSelection *selector,
case MATCHCRITERIA_HAS_NO_ATTACHMENT:
case MATCHCRITERIA_NOT_SIGNED:
case MATCHCRITERIA_NOT_PARTIAL:
- case MATCHCRITERIA_NOT_COLORLABEL:
case MATCHCRITERIA_NOT_IGNORE_THREAD:
case MATCHCRITERIA_NOT_WATCH_THREAD:
case MATCHCRITERIA_NOT_SUBJECT:
@@ -2470,9 +2376,6 @@ static gboolean prefs_matcher_selected(GtkTreeSelection *selector,
case MATCHCRITERIA_NOT_TO:
case MATCHCRITERIA_NOT_CC:
case MATCHCRITERIA_NOT_TO_AND_NOT_CC:
- case MATCHCRITERIA_NOT_TAG:
- case MATCHCRITERIA_NOT_TAGGED:
- case MATCHCRITERIA_NOT_NEWSGROUPS:
case MATCHCRITERIA_NOT_MESSAGEID:
case MATCHCRITERIA_NOT_INREPLYTO:
case MATCHCRITERIA_NOT_REFERENCES:
@@ -2496,8 +2399,6 @@ static gboolean prefs_matcher_selected(GtkTreeSelection *selector,
case MATCHCRITERIA_NOT_TO:
case MATCHCRITERIA_NOT_CC:
case MATCHCRITERIA_NOT_TO_AND_NOT_CC:
- case MATCHCRITERIA_NOT_TAG:
- case MATCHCRITERIA_NOT_NEWSGROUPS:
case MATCHCRITERIA_NOT_MESSAGEID:
case MATCHCRITERIA_NOT_INREPLYTO:
case MATCHCRITERIA_NOT_REFERENCES:
@@ -2511,8 +2412,6 @@ static gboolean prefs_matcher_selected(GtkTreeSelection *selector,
case MATCHCRITERIA_TO:
case MATCHCRITERIA_CC:
case MATCHCRITERIA_TO_OR_CC:
- case MATCHCRITERIA_TAG:
- case MATCHCRITERIA_NEWSGROUPS:
case MATCHCRITERIA_MESSAGEID:
case MATCHCRITERIA_INREPLYTO:
case MATCHCRITERIA_REFERENCES:
@@ -2623,7 +2522,6 @@ static gboolean prefs_matcher_selected(GtkTreeSelection *selector,
case CRITERIA_TO:
case CRITERIA_CC:
case CRITERIA_TO_OR_CC:
- case CRITERIA_NEWSGROUPS:
case CRITERIA_MESSAGEID:
case CRITERIA_INREPLYTO:
case CRITERIA_REFERENCES:
@@ -2632,8 +2530,6 @@ static gboolean prefs_matcher_selected(GtkTreeSelection *selector,
case CRITERIA_HEADERS_CONT:
case CRITERIA_BODY_PART:
case CRITERIA_MESSAGE:
- case CRITERIA_TAG:
- case CRITERIA_TAGGED:
case CRITERIA_TEST:
gtk_combo_box_set_active(GTK_COMBO_BOX(matcher.match_combo),
negative_cond ? PREDICATE_DOES_NOT_CONTAIN :
@@ -2650,7 +2546,6 @@ static gboolean prefs_matcher_selected(GtkTreeSelection *selector,
case CRITERIA_SPAM:
case CRITERIA_HAS_ATTACHMENT:
case CRITERIA_SIGNED:
- case CRITERIA_COLORLABEL:
gtk_combo_box_set_active(GTK_COMBO_BOX(matcher.match_combo2),
negative_cond ? PREDICATE_FLAG_DISABLED :
PREDICATE_FLAG_ENABLED);
diff --git a/src/procmsg.c b/src/procmsg.c
@@ -47,7 +47,6 @@
#include "mainwindow.h"
#include "summaryview.h"
#include "log.h"
-#include "tags.h"
#include "inc.h"
#include "privacy.h"
#include "file-utils.h"
@@ -1560,17 +1559,16 @@ static gint procmsg_send_message_queue_full(const gchar *file, gboolean keep_ses
{NULL, NULL, FALSE}};
FILE *fp;
gint filepos;
- gint mailval = 0, newsval = 0;
+ gint mailval = 0;
gchar *from = NULL;
gchar *smtpserver = NULL;
GSList *to_list = NULL;
- GSList *newsgroup_list = NULL;
gchar *savecopyfolder = NULL;
gchar *replymessageid = NULL;
gchar *fwdmessageid = NULL;
gchar *buf;
gint hnum;
- PrefsAccount *mailac = NULL, *newsac = NULL;
+ PrefsAccount *mailac = NULL;
gboolean encrypt = FALSE;
FolderItem *outbox;
@@ -1600,15 +1598,9 @@ static gint procmsg_send_message_queue_full(const gchar *file, gboolean keep_ses
case Q_RECIPIENTS:
to_list = address_list_append(to_list, p);
break;
- case Q_NEWSGROUPS:
- newsgroup_list = newsgroup_list_append(newsgroup_list, p);
- break;
case Q_MAIL_ACCOUNT_ID:
mailac = account_find_from_id(atoi(p));
break;
- case Q_NEWS_ACCOUNT_ID:
- newsac = account_find_from_id(atoi(p));
- break;
case Q_SAVE_COPY_FOLDER:
if (savecopyfolder == NULL)
savecopyfolder = g_strdup(p);
@@ -1690,7 +1682,7 @@ send_mail:
}
}
}
- } else if (!to_list && !newsgroup_list) {
+ } else if (!to_list) {
if (errstr) {
if (*errstr) g_free(*errstr);
*errstr = g_strdup(_("Couldn't determine sending information. "
@@ -1704,58 +1696,10 @@ send_mail:
mailval = -1;
}
- if (newsgroup_list && newsac && (mailval == 0)) {
- Folder *folder;
- gchar *tmp = NULL;
- gchar buf[BUFFSIZE];
- FILE *tmpfp;
-
- /* write to temporary file */
- tmp = g_strdup_printf("%s%cnntp%p", get_tmp_dir(),
- G_DIR_SEPARATOR, file);
- if ((tmpfp = g_fopen(tmp, "wb")) == NULL) {
- FILE_OP_ERROR(tmp, "g_fopen");
- newsval = -1;
- alertpanel_error(_("Couldn't create temporary file for news sending."));
- } else {
- if (change_file_mode_rw(tmpfp, tmp) < 0) {
- FILE_OP_ERROR(tmp, "chmod");
- g_warning("can't change file mode");
- }
-
- while ((newsval == 0) && fgets(buf, sizeof(buf), fp) != NULL) {
- if (fputs(buf, tmpfp) == EOF) {
- FILE_OP_ERROR(tmp, "fputs");
- newsval = -1;
- if (errstr) {
- if (*errstr) g_free(*errstr);
- *errstr = g_strdup_printf(_("Error when writing temporary file for news sending."));
- }
- }
- }
- safe_fclose(tmpfp);
-
- if (newsval == 0) {
- debug_print("Sending message by news\n");
-
- folder = FOLDER(newsac->folder);
-
- newsval = news_post(folder, tmp);
- if (newsval < 0 && errstr) {
- if (*errstr) g_free(*errstr);
- *errstr = g_strdup_printf(_("Error occurred while posting the message to %s."),
- newsac->nntp_server);
- }
- }
- unlink(tmp);
- }
- g_free(tmp);
- }
-
fclose(fp);
/* save message to outbox */
- if (mailval == 0 && newsval == 0 && savecopyfolder) {
+ if (mailval == 0 && savecopyfolder) {
debug_print("saving sent message to %s...\n", savecopyfolder);
if (!encrypt || !mailac->save_encrypted_as_clear_text) {
@@ -1842,12 +1786,11 @@ send_mail:
g_free(from);
g_free(smtpserver);
slist_free_strings_full(to_list);
- slist_free_strings_full(newsgroup_list);
g_free(savecopyfolder);
g_free(replymessageid);
g_free(fwdmessageid);
- return (newsval != 0 ? newsval : mailval);
+ return (mailval);
}
gint procmsg_send_message_queue(const gchar *file, gchar **errstr, FolderItem *queue, gint msgnum, gboolean *queued_removed)
@@ -2502,67 +2445,3 @@ gboolean procmsg_have_trashed_mails_fast (void)
return result;
}
-gchar *procmsg_msginfo_get_tags_str(MsgInfo *msginfo)
-{
- GSList *cur = NULL;
- gchar *tags = NULL;
-
- if (!msginfo)
- return NULL;
-
- if (msginfo->tags == NULL)
- return NULL;
- for (cur = msginfo->tags; cur; cur = cur->next) {
- const gchar *tag = tags_get_tag(GPOINTER_TO_INT(cur->data));
- if (!tag)
- continue;
- if (!tags)
- tags = g_strdup(tag);
- else {
- int olen = strlen(tags);
- int nlen = olen + strlen(tag) + 2 /* strlen(", ") */;
- tags = g_realloc(tags, nlen+1);
- if (!tags)
- return NULL;
- strcpy(tags+olen, ", ");
- strcpy(tags+olen+2, tag);
- tags[nlen]='\0';
- }
- }
- return tags;
-}
-
-void procmsg_msginfo_update_tags(MsgInfo *msginfo, gboolean set, gint id)
-{
- GSList changed;
-
- if (id == 0)
- return;
-
- if (!set) {
- msginfo->tags = g_slist_remove(
- msginfo->tags,
- GINT_TO_POINTER(id));
- changed.data = GINT_TO_POINTER(id);
- changed.next = NULL;
- folder_item_commit_tags(msginfo->folder, msginfo, NULL, &changed);
- } else {
- if (!g_slist_find(msginfo->tags, GINT_TO_POINTER(id))) {
- msginfo->tags = g_slist_append(
- msginfo->tags,
- GINT_TO_POINTER(id));
- }
- changed.data = GINT_TO_POINTER(id);
- changed.next = NULL;
- folder_item_commit_tags(msginfo->folder, msginfo, &changed, NULL);
- }
-
-}
-
-void procmsg_msginfo_clear_tags(MsgInfo *msginfo)
-{
- GSList *unset = msginfo->tags;
- msginfo->tags = NULL;
- folder_item_commit_tags(msginfo->folder, msginfo, NULL, unset);
- g_slist_free(unset);
-}
diff --git a/src/quote_fmt_parse.y b/src/quote_fmt_parse.y
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
+ *
*/
%{
@@ -154,7 +154,7 @@ gint quote_fmt_get_line(void)
gint quote_fmt_get_cursor_pos(void)
{
- return cursor_pos;
+ return cursor_pos;
}
#define INSERT(buf) \
@@ -222,7 +222,7 @@ void quote_fmt_init(MsgInfo *info, const gchar *my_quote_str,
escaped_string = string_is_escaped;
if (!var_table)
- var_table = g_hash_table_new_full(g_str_hash, g_str_equal,
+ var_table = g_hash_table_new_full(g_str_hash, g_str_equal,
g_free, g_free);
/*
@@ -293,28 +293,28 @@ static void quote_fmt_show_date(const MsgInfo *msginfo, const gchar *format)
if (!msginfo->date)
return;
-
- /*
- * ALF - GNU C's strftime() has a nice format specifier
- * for time zone offset (%z). Non-standard however, so
+
+ /*
+ * ALF - GNU C's strftime() has a nice format specifier
+ * for time zone offset (%z). Non-standard however, so
* emulate it.
*/
-#define RLEFT (sizeof result) - (rptr - result)
+#define RLEFT (sizeof result) - (rptr - result)
zone[0] = 0;
result[0] = '\0';
if (procheader_date_parse_to_tm(msginfo->date, <, zone)) {
/*
- * break up format string in tiny bits delimited by valid %z's and
+ * break up format string in tiny bits delimited by valid %z's and
* feed it to strftime(). don't forget that '%%z' mean literal '%z'.
*/
for (rptr = result, fptr = format; fptr && *fptr && rptr < &result[sizeof result - 1];) {
int perc, zlen;
const char *p;
char *tmp;
-
+
if (NULL != (zptr = strtzspec(fptr, &zlen))) {
/*
* count nr. of prepended percent chars
@@ -332,7 +332,7 @@ static void quote_fmt_show_date(const MsgInfo *msginfo, const gchar *format)
/*
* append time zone offset
*/
- if (zone[0] && perc % 2)
+ if (zone[0] && perc % 2)
rptr += g_snprintf(rptr, RLEFT, "%s", zone);
fptr = zptr + zlen;
} else {
@@ -340,18 +340,18 @@ static void quote_fmt_show_date(const MsgInfo *msginfo, const gchar *format)
fptr = NULL;
}
}
-
+
if (g_utf8_validate(result, -1, NULL)) {
INSERT(result);
} else {
- gchar *utf = conv_codeset_strdup(result,
+ gchar *utf = conv_codeset_strdup(result,
conv_get_locale_charset_str_no_utf8(),
CS_INTERNAL);
- if (utf == NULL ||
+ if (utf == NULL ||
!g_utf8_validate(utf, -1, NULL)) {
g_free(utf);
utf = g_malloc(strlen(result)*2+1);
- conv_localetodisp(utf,
+ conv_localetodisp(utf,
strlen(result)*2+1, result);
}
if (g_utf8_validate(utf, -1, NULL)) {
@@ -360,8 +360,8 @@ static void quote_fmt_show_date(const MsgInfo *msginfo, const gchar *format)
g_free(utf);
}
}
-#undef RLEFT
-}
+#undef RLEFT
+}
static void quote_fmt_show_first_name(const MsgInfo *msginfo)
{
@@ -369,8 +369,8 @@ static void quote_fmt_show_first_name(const MsgInfo *msginfo)
gchar *str;
if (!msginfo->fromname)
- return;
-
+ return;
+
p = (guchar*)strchr(msginfo->fromname, ',');
if (p != NULL) {
/* fromname is like "Duck, Donald" */
@@ -401,7 +401,7 @@ static void quote_fmt_show_last_name(const MsgInfo *msginfo)
/* This probably won't work together very well with Middle
names and the like - thth */
- if (!msginfo->fromname)
+ if (!msginfo->fromname)
return;
str = alloca(strlen(msginfo->fromname) + 1);
@@ -417,20 +417,20 @@ static void quote_fmt_show_last_name(const MsgInfo *msginfo)
p = str;
while (*p && !isspace(*p)) p++;
if (*p) {
- /* We found a space. Get first
+ /* We found a space. Get first
none-space char and insert
rest of string from there. */
while (*p && isspace(*p)) p++;
if (*p) {
INSERT(p);
} else {
- /* If there is no none-space
- char, just insert whole
+ /* If there is no none-space
+ char, just insert whole
fromname. */
INSERT(str);
}
} else {
- /* If there is no space, just
+ /* If there is no space, just
insert whole fromname. */
INSERT(str);
}
@@ -446,7 +446,7 @@ static void quote_fmt_show_sender_initial(const MsgInfo *msginfo)
gchar *cur;
gint len = 0;
- if (!msginfo->fromname)
+ if (!msginfo->fromname)
return;
p = (guchar *)msginfo->fromname;
@@ -495,10 +495,10 @@ static void quote_fmt_show_msg(MsgInfo *msginfo, const gchar *body,
if (!signature && account_sigsep_matchlist_nchar_found(buf, "%s\n"))
break;
-
+
if (quoted && quote_str)
INSERT(quote_str);
-
+
INSERT(buf);
}
account_sigsep_matchlist_delete();
@@ -510,7 +510,7 @@ static void quote_fmt_insert_file(const gchar *filename)
{
FILE *file;
char buffer[PATH_MAX];
-
+
if ((file = g_fopen(filename, "rb")) != NULL) {
while (fgets(buffer, sizeof(buffer), file)) {
INSERT(buffer);
@@ -538,7 +538,7 @@ static void quote_fmt_insert_user_input(const gchar *varname)
gchar *buf = NULL;
gchar *text = NULL;
- if (dry_run)
+ if (dry_run)
return;
if ((text = g_hash_table_lookup(var_table, varname)) == NULL) {
@@ -719,7 +719,7 @@ string:
| string CHARACTER
{
size_t len;
-
+
strncpy($$, $1, sizeof($$));
$$[sizeof($$) - 1] = '\0';
len = strlen($$);
@@ -871,14 +871,6 @@ special:
INSERT(default_dictionary);
#endif
}
- | SHOW_TAGS
- {
- gchar *tags = procmsg_msginfo_get_tags_str(msginfo);
- if (tags) {
- INSERT(tags);
- }
- g_free(tags);
- }
| SHOW_BACKSLASH
{
INSERT("\\");
diff --git a/src/summaryview.c b/src/summaryview.c
@@ -70,9 +70,7 @@
#include "folderutils.h"
#include "quicksearch.h"
#include "partial_download.h"
-#include "tags.h"
#include "log.h"
-#include "edittags.h"
#include "manual.h"
#include "manage_window.h"
#include "avatars.h"
@@ -168,11 +166,6 @@ static void summary_display_msg_full (SummaryView *summaryview,
static void summary_set_row_marks (SummaryView *summaryview,
GtkCMCTreeNode *row);
-static gboolean summary_set_row_tag (SummaryView *summaryview,
- GtkCMCTreeNode *row,
- gboolean refresh,
- gboolean set,
- gint id);
/* message handling */
static void summary_mark_row (SummaryView *summaryview,
GtkCMCTreeNode *row);
@@ -224,15 +217,6 @@ void summary_simplify_subject(SummaryView *summaryview, gchar * rexp,
static void summary_filter_func (MsgInfo *msginfo,
PrefsAccount *ac_prefs);
-static void summary_tags_menu_item_activate_cb
- (GtkWidget *widget,
- gpointer data);
-static void summary_tags_menu_item_activate_item_cb
- (GtkMenuItem *label_menu_item,
- gpointer data);
-static void summary_tags_menu_create(SummaryView *summaryview,
- gboolean refresh);
-
static GtkWidget *summary_ctree_create (SummaryView *summaryview);
/* callback functions */
@@ -295,8 +279,6 @@ static void summary_score_clicked (GtkWidget *button,
SummaryView *summaryview);
static void summary_locked_clicked (GtkWidget *button,
SummaryView *summaryview);
-static void summary_tags_clicked (GtkWidget *button,
- SummaryView *summaryview);
static void summary_start_drag (GtkWidget *widget,
int button,
@@ -370,9 +352,6 @@ static gint summary_cmp_by_subject (GtkCMCList *clist,
static gint summary_cmp_by_locked (GtkCMCList *clist,
gconstpointer ptr1,
gconstpointer ptr2);
-static gint summary_cmp_by_tags (GtkCMCList *clist,
- gconstpointer ptr1,
- gconstpointer ptr2);
static void quicksearch_execute_cb (QuickSearch *quicksearch,
gpointer data);
@@ -962,7 +941,6 @@ void summary_init(SummaryView *summaryview)
summaryview->simplify_subject_preg = NULL;
summary_clear_list(summaryview);
summary_set_column_titles(summaryview);
- summary_tags_menu_create(summaryview, FALSE);
main_create_mailing_list_menu (summaryview->mainwin, NULL);
summary_set_menu_sensitive(summaryview);
@@ -2829,38 +2807,6 @@ static void summary_set_column_titles(SummaryView *summaryview)
}
}
-void summary_reflect_tags_changes(SummaryView *summaryview)
-{
- GtkMenuShell *menu;
- GList *children, *cur;
- GtkCMCTreeNode *node;
- GtkCMCTree *ctree = GTK_CMCTREE(summaryview->ctree);
- gboolean froze = FALSE;
- gboolean redisplay = FALSE;
-
- menu = GTK_MENU_SHELL(summaryview->tags_menu);
- cm_return_if_fail(menu != NULL);
-
- /* clear items. get item pointers. */
- children = gtk_container_get_children(GTK_CONTAINER(menu));
- for (cur = children; cur != NULL && cur->data != NULL; cur = cur->next) {
- gtk_menu_item_set_submenu(GTK_MENU_ITEM(cur->data), NULL);
- }
- g_list_free(children);
- summary_tags_menu_create(summaryview, TRUE);
-
- START_LONG_OPERATION(summaryview, TRUE);
- for (node = GTK_CMCTREE_NODE(GTK_CMCLIST(ctree)->row_list); node != NULL;
- node = gtkut_ctree_node_next(ctree, node)) {
- redisplay |= summary_set_row_tag(summaryview,
- node, TRUE, FALSE, 0);
- }
- END_LONG_OPERATION(summaryview);
- if (redisplay)
- summary_redisplay_msg(summaryview);
-}
-
-
void summary_reflect_prefs(void)
{
static gchar *last_smallfont = NULL;
@@ -2962,9 +2908,6 @@ void summary_sort(SummaryView *summaryview,
case SORT_BY_LOCKED:
cmp_func = (GtkCMCListCompareFunc)summary_cmp_by_locked;
break;
- case SORT_BY_TAGS:
- cmp_func = (GtkCMCListCompareFunc)summary_cmp_by_tags;
- break;
case SORT_BY_NONE:
break;
default:
@@ -3296,7 +3239,7 @@ static inline void summary_set_header(SummaryView *summaryview, gchar *text[],
static gchar from_buf[BUFFSIZE], to_buf[BUFFSIZE];
static gchar tmp1[BUFFSIZE], tmp2[BUFFSIZE+4], tmp3[BUFFSIZE];
gint *col_pos = summaryview->col_pos;
- gchar *from_text = NULL, *to_text = NULL, *tags_text = NULL;
+ gchar *from_text = NULL, *to_text = NULL;
gboolean should_swap = FALSE;
gboolean vert_layout = (prefs_common.layout_mode == VERTICAL_LAYOUT);
gboolean small_layout = (prefs_common.layout_mode == SMALL_LAYOUT);
@@ -3328,19 +3271,6 @@ static inline void summary_set_header(SummaryView *summaryview, gchar *text[],
else
text[col_pos[S_COL_SCORE]] = "";
- if (summaryview->col_state[summaryview->col_pos[S_COL_TAGS]].visible) {
- tags_text = procmsg_msginfo_get_tags_str(msginfo);
- if (!tags_text) {
- text[col_pos[S_COL_TAGS]] = "-";
- } else {
- strncpy2(tmp1, tags_text, sizeof(tmp1));
- tmp1[sizeof(tmp1)-1]='\0';
- g_free(tags_text);
- text[col_pos[S_COL_TAGS]] = tmp1;
- }
- } else
- text[col_pos[S_COL_TAGS]] = "";
-
/* slow! */
if (summaryview->col_state[summaryview->col_pos[S_COL_DATE]].visible ||
((vert_layout || small_layout) && prefs_common.two_line_vert)) {
@@ -5846,169 +5776,6 @@ void summary_filter_open(SummaryView *summaryview, PrefsFilterType type,
summary_msginfo_filter_open(item, msginfo, type, processing_rule);
}
-static gboolean summary_set_row_tag(SummaryView *summaryview, GtkCMCTreeNode *row, gboolean refresh, gboolean set, gint id)
-{
- GtkCMCTree *ctree = GTK_CMCTREE(summaryview->ctree);
- MsgInfo *msginfo;
- gchar *tags_str = NULL;
- msginfo = gtk_cmctree_node_get_row_data(ctree, row);
- cm_return_val_if_fail(msginfo, FALSE);
-
- procmsg_msginfo_update_tags(msginfo, set, id);
-
- if (summaryview->col_state[summaryview->col_pos[S_COL_TAGS]].visible) {
- tags_str = procmsg_msginfo_get_tags_str(msginfo);
- gtk_cmctree_node_set_text(ctree, row,
- summaryview->col_pos[S_COL_TAGS],
- tags_str?tags_str:"-");
- g_free(tags_str);
- }
-
- summary_set_row_marks(summaryview, row);
- if (row == summaryview->displayed) {
- return TRUE;
- }
- return FALSE;
-}
-
-void summary_set_tag(SummaryView *summaryview, gint tag_id,
- GtkWidget *widget)
-{
- GtkCMCTree *ctree = GTK_CMCTREE(summaryview->ctree);
- GList *cur;
- gboolean set = tag_id > 0;
- gint real_id = set? tag_id:-tag_id;
- gboolean froze = FALSE;
- gboolean redisplay = FALSE;
-
- if (summary_is_locked(summaryview))
- return;
- START_LONG_OPERATION(summaryview, FALSE);
- folder_item_set_batch(summaryview->folder_item, TRUE);
- for (cur = GTK_CMCLIST(ctree)->selection; cur != NULL && cur->data != NULL; cur = cur->next) {
- redisplay |= summary_set_row_tag(summaryview,
- GTK_CMCTREE_NODE(cur->data), FALSE, set, real_id);
- }
- folder_item_set_batch(summaryview->folder_item, FALSE);
- END_LONG_OPERATION(summaryview);
- if (redisplay)
- summary_redisplay_msg(summaryview);
-}
-
-static void summary_tags_menu_item_activate_cb(GtkWidget *widget,
- gpointer data)
-{
- gint id = GPOINTER_TO_INT(data);
- gboolean set = gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget));
- SummaryView *summaryview;
-
- summaryview = g_object_get_data(G_OBJECT(widget), "summaryview");
- cm_return_if_fail(summaryview != NULL);
-
- /* "dont_toggle" state set? */
- if (g_object_get_data(G_OBJECT(summaryview->tags_menu),
- "dont_toggle"))
- return;
-
- if (!set)
- id = -id;
- summary_set_tag(summaryview, id, NULL);
-}
-
-static void summary_tags_menu_item_activate_item_cb(GtkMenuItem *menu_item,
- gpointer data)
-{
- GtkMenuShell *menu;
- GList *children, *cur;
- GList *sel;
- GHashTable *menu_table = g_hash_table_new_full(
- g_direct_hash,
- g_direct_equal,
- NULL, NULL);
- GHashTable *menu_allsel_table = g_hash_table_new_full(
- g_direct_hash,
- g_direct_equal,
- NULL, NULL);
- gint sel_len;
- SummaryView *summaryview = (SummaryView *)data;
- cm_return_if_fail(summaryview != NULL);
-
- sel = GTK_CMCLIST(summaryview->ctree)->selection;
- if (!sel) return;
-
- menu = GTK_MENU_SHELL(summaryview->tags_menu);
- cm_return_if_fail(menu != NULL);
-
- /* NOTE: don't return prematurely because we set the "dont_toggle"
- * state for check menu items */
- g_object_set_data(G_OBJECT(menu), "dont_toggle",
- GINT_TO_POINTER(1));
-
- /* clear items. get item pointers. */
- children = gtk_container_get_children(GTK_CONTAINER(menu));
- for (cur = children; cur != NULL && cur->data != NULL; cur = cur->next) {
- if (GTK_IS_CHECK_MENU_ITEM(cur->data)) {
- gint id = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(cur->data),
- "tag_id"));
- gtk_check_menu_item_set_active
- (GTK_CHECK_MENU_ITEM(cur->data), FALSE);
-
- g_hash_table_insert(menu_table, GINT_TO_POINTER(id), GTK_CHECK_MENU_ITEM(cur->data));
- g_hash_table_insert(menu_allsel_table, GINT_TO_POINTER(id), GINT_TO_POINTER(0));
- }
- }
-
- g_list_free(children);
-
- /* iterate all messages and set the state of the appropriate
- * items */
- sel_len = 0;
- for (; sel != NULL; sel = sel->next) {
- MsgInfo *msginfo;
- GSList *tags = NULL;
- GtkCheckMenuItem *item;
- msginfo = gtk_cmctree_node_get_row_data
- (GTK_CMCTREE(summaryview->ctree),
- GTK_CMCTREE_NODE(sel->data));
- sel_len++;
- if (msginfo) {
- tags = msginfo->tags;
- if (!tags)
- continue;
-
- for (; tags; tags = tags->next) {
- gint num_checked = GPOINTER_TO_INT(g_hash_table_lookup(menu_allsel_table, tags->data));
- item = g_hash_table_lookup(menu_table, GINT_TO_POINTER(tags->data));
- if (item && !gtk_check_menu_item_get_active(item)) {
- gtk_check_menu_item_set_active
- (item, TRUE);
- }
- num_checked++;
- g_hash_table_replace(menu_allsel_table, tags->data, GINT_TO_POINTER(num_checked));
- }
- }
- }
-
- children = gtk_container_get_children(GTK_CONTAINER(menu));
- for (cur = children; cur != NULL && cur->data != NULL; cur = cur->next) {
- if (GTK_IS_CHECK_MENU_ITEM(cur->data)) {
- gint id = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(cur->data),
- "tag_id"));
- gint num_checked = GPOINTER_TO_INT(g_hash_table_lookup(menu_allsel_table, GINT_TO_POINTER(id)));
- if (num_checked < sel_len && num_checked > 0)
- gtk_check_menu_item_set_inconsistent(GTK_CHECK_MENU_ITEM(cur->data), TRUE);
- else
- gtk_check_menu_item_set_inconsistent(GTK_CHECK_MENU_ITEM(cur->data), FALSE);
- }
- }
- g_list_free(children);
- g_hash_table_destroy(menu_table);
- g_hash_table_destroy(menu_allsel_table);
- /* reset "dont_toggle" state */
- g_object_set_data(G_OBJECT(menu), "dont_toggle",
- GINT_TO_POINTER(0));
-}
-
void summaryview_destroy(SummaryView *summaryview)
{
if(summaryview->simplify_subject_preg) {
@@ -6017,105 +5784,6 @@ void summaryview_destroy(SummaryView *summaryview)
summaryview->simplify_subject_preg = NULL;
}
}
-static void summary_tags_menu_item_apply_tags_activate_cb(GtkWidget *widget,
- gpointer data)
-{
- SummaryView *summaryview;
-
- summaryview = g_object_get_data(G_OBJECT(widget), "summaryview");
- cm_return_if_fail(summaryview != NULL);
-
- /* "dont_toggle" state set? */
- if (g_object_get_data(G_OBJECT(summaryview->tags_menu),
- "dont_toggle"))
- return;
-
- tags_window_open(summary_get_selection(summaryview));
-}
-
-static gint summary_tag_cmp_list(gconstpointer a, gconstpointer b)
-{
- gint id_a = GPOINTER_TO_INT(a);
- gint id_b = GPOINTER_TO_INT(b);
- const gchar *tag_a = tags_get_tag(id_a);
- const gchar *tag_b = tags_get_tag(id_b);
-
- if (tag_a == NULL)
- return tag_b == NULL ? 0:1;
-
- if (tag_b == NULL)
- return 1;
-
- return g_utf8_collate(tag_a, tag_b);
-}
-
-static void summary_tags_menu_create(SummaryView *summaryview, gboolean refresh)
-{
-
- GtkWidget *label_menuitem;
- GtkWidget *menu;
- GtkWidget *item;
- GSList *cur = tags_get_list();
- GSList *orig = NULL;
- gboolean existing_tags = FALSE;
- gchar *accel_path = NULL;
-
- cur = orig = g_slist_sort(cur, summary_tag_cmp_list);
- label_menuitem = gtk_ui_manager_get_widget(summaryview->mainwin->ui_manager, "/Menus/SummaryViewPopup/Tags");
- g_signal_connect(G_OBJECT(label_menuitem), "activate",
- G_CALLBACK(summary_tags_menu_item_activate_item_cb),
- summaryview);
-
- gtk_widget_show(label_menuitem);
-
- menu = gtk_menu_new();
-
- gtk_menu_set_accel_group (GTK_MENU (menu),
- gtk_ui_manager_get_accel_group(summaryview->mainwin->ui_manager));
-
- /* create tags menu items */
- for (; cur; cur = cur->next) {
- gint id = GPOINTER_TO_INT(cur->data);
- const gchar *tag = tags_get_tag(id);
- item = gtk_check_menu_item_new_with_label(tag);
- gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
- g_signal_connect(G_OBJECT(item), "activate",
- G_CALLBACK(summary_tags_menu_item_activate_cb),
- GINT_TO_POINTER(id));
- g_object_set_data(G_OBJECT(item), "summaryview",
- summaryview);
- g_object_set_data(G_OBJECT(item), "tag_id",
- GINT_TO_POINTER(id));
- gtk_widget_show(item);
- accel_path = g_strconcat("<ClawsTags>/",tag, NULL);
- gtk_menu_item_set_accel_path(GTK_MENU_ITEM(item), accel_path);
- g_free(accel_path);
- existing_tags = TRUE;
- }
- if (existing_tags) {
- /* separator */
- item = gtk_separator_menu_item_new();
- gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
- gtk_widget_show(item);
- }
-
- item = gtk_menu_item_new_with_label(_("Modify tags..."));
- gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
- g_signal_connect(G_OBJECT(item), "activate",
- G_CALLBACK(summary_tags_menu_item_apply_tags_activate_cb),
- NULL);
- g_object_set_data(G_OBJECT(item), "summaryview",
- summaryview);
- gtk_widget_show(item);
- accel_path = g_strdup_printf("<ClawsTags>/ModifyTags");
- gtk_menu_item_set_accel_path(GTK_MENU_ITEM(item), accel_path);
- g_free(accel_path);
-
- g_slist_free(orig);
- gtk_widget_show(menu);
- gtk_menu_item_set_submenu(GTK_MENU_ITEM(label_menuitem), menu);
- summaryview->tags_menu = menu;
-}
static gboolean summary_popup_menu(GtkWidget *widget, gpointer data)
{
@@ -6414,7 +6082,6 @@ static GtkWidget *summary_ctree_create(SummaryView *summaryview)
CLIST_BUTTON_SIGNAL_CONNECT(S_COL_SUBJECT, summary_subject_clicked)
CLIST_BUTTON_SIGNAL_CONNECT(S_COL_SCORE , summary_score_clicked)
CLIST_BUTTON_SIGNAL_CONNECT(S_COL_LOCKED , summary_locked_clicked)
- CLIST_BUTTON_SIGNAL_CONNECT(S_COL_TAGS , summary_tags_clicked)
#undef CLIST_BUTTON_SIGNAL_CONNECT
@@ -7090,12 +6757,6 @@ static void summary_locked_clicked(GtkWidget *button,
summary_sort_by_column_click(summaryview, SORT_BY_LOCKED);
}
-static void summary_tags_clicked(GtkWidget *button,
- SummaryView *summaryview)
-{
- summary_sort_by_column_click(summaryview, SORT_BY_TAGS);
-}
-
static void summary_start_drag(GtkWidget *widget, gint button, GdkEvent *event,
SummaryView *summaryview)
{
@@ -7436,42 +7097,6 @@ static gint summary_cmp_by_to(GtkCMCList *clist, gconstpointer ptr1,
return (res != 0)? res: summary_cmp_by_date(clist, ptr1, ptr2);
}
-static gint summary_cmp_by_tags(GtkCMCList *clist, gconstpointer ptr1,
- gconstpointer ptr2)
-{
- gchar *str1, *str2;
- const GtkCMCListRow *r1 = (const GtkCMCListRow *) ptr1;
- const GtkCMCListRow *r2 = (const GtkCMCListRow *) ptr2;
- const SummaryView *sv = g_object_get_data(G_OBJECT(clist), "summaryview");
- MsgInfo *msginfo1 = ((GtkCMCListRow *)ptr1)->data;
- MsgInfo *msginfo2 = ((GtkCMCListRow *)ptr2)->data;
- gint res;
- cm_return_val_if_fail(sv, -1);
-
- if (sv->col_state[sv->col_pos[S_COL_TAGS]].visible) {
- str1 = g_strdup(GTK_CMCELL_TEXT(r1->cell[sv->col_pos[S_COL_TAGS]])->text);
- str2 = g_strdup(GTK_CMCELL_TEXT(r2->cell[sv->col_pos[S_COL_TAGS]])->text);
- } else {
- str1 = procmsg_msginfo_get_tags_str(msginfo1);
- str2 = procmsg_msginfo_get_tags_str(msginfo2);
- }
-
- if (!str1) {
- res = (str2 != NULL);
- g_free(str2);
- return res;
- }
- if (!str2) {
- g_free(str1);
- return -1;
- }
-
- res = g_utf8_collate(str1, str2);
- g_free(str1);
- g_free(str2);
- return (res != 0)? res: summary_cmp_by_date(clist, ptr1, ptr2);
-}
-
static gint summary_cmp_by_simplified_subject
(GtkCMCList *clist, gconstpointer ptr1, gconstpointer ptr2)
{