2007-10-17 [wwp] 3.0.2cvs78
* src/prefs_customheader.c * src/prefs_ext_prog.c * src/prefs_filtering_action.c * src/prefs_matcher.c * src/prefs_other.c * src/prefs_toolbar.c * src/gtk/combobox.c * src/gtk/combobox.h * src/gtk/gtkutils.c * src/gtk/gtkutils.h * src/plugins/bogofilter/bogofilter_gtk.c * src/plugins/spamassassin/spamassassin_gtk.c Removed all remaining instances of GtkCombo old API, patch by Pawel Pekala <c0rn@o2.pl>, with few visual and code cleanup from Colin.
This commit is contained in:
parent
852e3bd5be
commit
6c1754fee7
15 changed files with 226 additions and 465 deletions
18
ChangeLog
18
ChangeLog
|
@ -1,3 +1,21 @@
|
|||
2007-10-17 [wwp] 3.0.2cvs78
|
||||
|
||||
* src/prefs_customheader.c
|
||||
* src/prefs_ext_prog.c
|
||||
* src/prefs_filtering_action.c
|
||||
* src/prefs_matcher.c
|
||||
* src/prefs_other.c
|
||||
* src/prefs_toolbar.c
|
||||
* src/gtk/combobox.c
|
||||
* src/gtk/combobox.h
|
||||
* src/gtk/gtkutils.c
|
||||
* src/gtk/gtkutils.h
|
||||
* src/plugins/bogofilter/bogofilter_gtk.c
|
||||
* src/plugins/spamassassin/spamassassin_gtk.c
|
||||
Removed all remaining instances of GtkCombo
|
||||
old API, patch by Pawel Pekala <c0rn@o2.pl>, with
|
||||
few visual and code cleanup from Colin.
|
||||
|
||||
2007-10-16 [wwp] 3.0.2cvs77
|
||||
* src/gtk/pluginwindow.c
|
||||
Reworked the plugin window layouts, patch by Pawel Pekala <c0rn@o2.pl>.
|
||||
|
|
|
@ -2990,3 +2990,4 @@
|
|||
( cvs diff -u -r 1.75.2.50 -r 1.75.2.51 src/matcher.c; ) > 3.0.2cvs75.patchset
|
||||
( cvs diff -u -r 1.1.2.6 -r 1.1.2.7 src/edittags.c; cvs diff -u -r 1.1.2.3 -r 1.1.2.4 src/edittags.h; cvs diff -u -r 1.60.2.39 -r 1.60.2.40 src/filtering.c; cvs diff -u -r 1.21.2.15 -r 1.21.2.16 src/filtering.h; cvs diff -u -r 1.4.12.17 -r 1.4.12.18 src/importmutt.c; cvs diff -u -r 1.1.14.17 -r 1.1.14.18 src/importpine.c; cvs diff -u -r 1.115.2.172 -r 1.115.2.173 src/main.c; cvs diff -u -r 1.94.2.161 -r 1.94.2.162 src/messageview.c; cvs diff -u -r 1.19.2.17 -r 1.19.2.18 src/messageview.h; cvs diff -u -r 1.83.2.119 -r 1.83.2.120 src/mimeview.c; cvs diff -u -r 1.20.2.22 -r 1.20.2.23 src/mimeview.h; cvs diff -u -r 1.56.2.58 -r 1.56.2.59 src/pop.c; cvs diff -u -r 1.17.2.19 -r 1.17.2.20 src/pop.h; cvs diff -u -r 1.204.2.149 -r 1.204.2.150 src/prefs_common.c; cvs diff -u -r 1.103.2.95 -r 1.103.2.96 src/prefs_common.h; cvs diff -u -r 1.16.2.29 -r 1.16.2.30 src/prefs_customheader.c; cvs diff -u -r 1.2.16.5 -r 1.2.16.6 src/prefs_customheader.h; cvs diff -u -r 1.16.2.31 -r 1.16.2.32 src/prefs_display_header.c; cvs diff -u -r 1.1.16.5 -r 1.1.16.6 src/prefs_display_header.h; cvs diff -u -r 1.1.4.41 -r 1.1.4.42 src/prefs_filtering_action.c; cvs diff -u -r 1.1.4.4 -r 1.1.4.5 src/prefs_filtering_action.h; cvs diff -u -r 1.1.2.12 -r 1.1.2.13 src/prefs_folder_column.c; cvs diff -u -r 1.1.2.6 -r 1.1.2.7 src/prefs_folder_column.h; cvs diff -u -r 1.52.2.52 -r 1.52.2.53 src/prefs_folder_item.c; cvs diff -u -r 1.17.2.5 -r 1.17.2.6 src/prefs_folder_item.h; cvs diff -u -r 1.10.2.35 -r 1.10.2.36 src/prefs_gtk.c; cvs diff -u -r 1.5.2.15 -r 1.5.2.16 src/prefs_gtk.h; cvs diff -u -r 1.1.2.3 -r 1.1.2.4 src/prefs_logging.h; cvs diff -u -r 1.43.2.62 -r 1.43.2.63 src/prefs_matcher.c; cvs diff -u -r 1.4.2.7 -r 1.4.2.8 src/prefs_matcher.h; cvs diff -u -r 1.10.2.21 -r 1.10.2.22 src/prefs_summary_column.c; cvs diff -u -r 1.1.16.5 -r 1.1.16.6 src/prefs_summary_column.h; cvs diff -u -r 1.1.2.2 -r 1.1.2.3 src/prefs_summary_open.c; cvs diff -u -r 1.47.2.45 -r 1.47.2.46 src/procheader.c; cvs diff -u -r 1.11.2.9 -r 1.11.2.10 src/procheader.h; cvs diff -u -r 1.49.2.100 -r 1.49.2.101 src/procmime.c; cvs diff -u -r 1.17.2.20 -r 1.17.2.21 src/procmime.h; cvs diff -u -r 1.17.2.12 -r 1.17.2.13 src/recv.c; cvs diff -u -r 1.6.12.6 -r 1.6.12.7 src/recv.h; cvs diff -u -r 1.9.2.21 -r 1.9.2.22 src/sourcewindow.c; cvs diff -u -r 1.1.1.1.16.6 -r 1.1.1.1.16.7 src/sourcewindow.h; cvs diff -u -r 1.395.2.331 -r 1.395.2.332 src/summaryview.c; cvs diff -u -r 1.68.2.40 -r 1.68.2.41 src/summaryview.h; cvs diff -u -r 1.96.2.187 -r 1.96.2.188 src/textview.c; cvs diff -u -r 1.12.2.21 -r 1.12.2.22 src/textview.h; cvs diff -u -r 1.43.2.89 -r 1.43.2.90 src/toolbar.c; cvs diff -u -r 1.19.2.24 -r 1.19.2.25 src/toolbar.h; cvs diff -u -r 1.1.4.9 -r 1.1.4.10 src/common/mgutils.c; cvs diff -u -r 1.1.4.5 -r 1.1.4.6 src/common/mgutils.h; cvs diff -u -r 1.6.2.14 -r 1.6.2.15 src/common/nntp.c; cvs diff -u -r 1.4.2.5 -r 1.4.2.6 src/common/nntp.h; cvs diff -u -r 1.5.2.9 -r 1.5.2.10 src/common/prefs.c; cvs diff -u -r 1.3.2.5 -r 1.3.2.6 src/common/prefs.h; cvs diff -u -r 1.13.2.35 -r 1.13.2.36 src/common/socket.c; cvs diff -u -r 1.13.2.15 -r 1.13.2.16 src/common/socket.h; cvs diff -u -r 1.2.2.6 -r 1.2.2.7 src/common/stringtable.c; cvs diff -u -r 1.1.4.5 -r 1.1.4.6 src/common/stringtable.h; cvs diff -u -r 1.2.4.22 -r 1.2.4.23 src/common/template.c; cvs diff -u -r 1.1.4.6 -r 1.1.4.7 src/common/template.h; cvs diff -u -r 1.1.4.2 -r 1.1.4.3 src/common/uuencode.c; cvs diff -u -r 1.1.4.2 -r 1.1.4.3 src/common/uuencode.h; cvs diff -u -r 1.1.4.8 -r 1.1.4.9 src/gtk/gtkshruler.c; cvs diff -u -r 1.1.4.4 -r 1.1.4.5 src/gtk/gtkshruler.h; cvs diff -u -r 1.5.2.25 -r 1.5.2.26 src/gtk/menu.c; cvs diff -u -r 1.4.2.11 -r 1.4.2.12 src/gtk/menu.h; cvs diff -u -r 1.1.4.21 -r 1.1.4.22 src/gtk/progressdialog.c; cvs diff -u -r 1.1.4.11 -r 1.1.4.12 src/gtk/progressdialog.h; ) > 3.0.2cvs76.patchset
|
||||
( cvs diff -u -r 1.5.2.50 -r 1.5.2.51 src/gtk/pluginwindow.c; ) > 3.0.2cvs77.patchset
|
||||
( cvs diff -u -r 1.16.2.30 -r 1.16.2.31 src/prefs_customheader.c; cvs diff -u -r 1.3.2.17 -r 1.3.2.18 src/prefs_ext_prog.c; cvs diff -u -r 1.1.4.42 -r 1.1.4.43 src/prefs_filtering_action.c; cvs diff -u -r 1.43.2.63 -r 1.43.2.64 src/prefs_matcher.c; cvs diff -u -r 1.1.2.24 -r 1.1.2.25 src/prefs_other.c; cvs diff -u -r 1.30.2.45 -r 1.30.2.46 src/prefs_toolbar.c; cvs diff -u -r 1.1.2.11 -r 1.1.2.12 src/gtk/combobox.c; cvs diff -u -r 1.1.2.9 -r 1.1.2.10 src/gtk/combobox.h; cvs diff -u -r 1.5.2.69 -r 1.5.2.70 src/gtk/gtkutils.c; cvs diff -u -r 1.4.2.38 -r 1.4.2.39 src/gtk/gtkutils.h; cvs diff -u -r 1.1.2.26 -r 1.1.2.27 src/plugins/bogofilter/bogofilter_gtk.c; cvs diff -u -r 1.23.2.42 -r 1.23.2.43 src/plugins/spamassassin/spamassassin_gtk.c; ) > 3.0.2cvs78.patchset
|
||||
|
|
|
@ -11,7 +11,7 @@ MINOR_VERSION=0
|
|||
MICRO_VERSION=2
|
||||
INTERFACE_AGE=0
|
||||
BINARY_AGE=0
|
||||
EXTRA_VERSION=77
|
||||
EXTRA_VERSION=78
|
||||
EXTRA_RELEASE=
|
||||
EXTRA_GTK2_VERSION=
|
||||
|
||||
|
|
|
@ -33,6 +33,32 @@ typedef struct _combobox_sel_by_data_ctx {
|
|||
gint data;
|
||||
} ComboboxSelCtx;
|
||||
|
||||
GtkWidget *combobox_text_new(const gboolean with_entry, const gchar *text, ...)
|
||||
{
|
||||
GtkWidget *combo;
|
||||
va_list args;
|
||||
gchar *string;
|
||||
|
||||
if(text == NULL)
|
||||
return NULL;
|
||||
|
||||
if (with_entry)
|
||||
combo = gtk_combo_box_entry_new_text();
|
||||
else
|
||||
combo = gtk_combo_box_new_text();
|
||||
gtk_widget_show(combo);
|
||||
|
||||
gtk_combo_box_append_text(GTK_COMBO_BOX(combo), text);
|
||||
va_start(args, text);
|
||||
while ((string = va_arg(args, gchar*)) != NULL)
|
||||
gtk_combo_box_append_text(GTK_COMBO_BOX(combo), string);
|
||||
va_end(args);
|
||||
|
||||
gtk_combo_box_set_active(GTK_COMBO_BOX(combo), 0);
|
||||
|
||||
return combo;
|
||||
}
|
||||
|
||||
static gboolean _select_by_data_func(GtkTreeModel *model, GtkTreePath *path,
|
||||
GtkTreeIter *iter, ComboboxSelCtx *ctx)
|
||||
{
|
||||
|
|
|
@ -53,6 +53,8 @@ enum {
|
|||
g_free(tmp_esc); \
|
||||
}
|
||||
|
||||
GtkWidget *combobox_text_new(const gboolean with_entry, const gchar *text, ...);
|
||||
|
||||
void combobox_select_by_data (GtkComboBox *combobox,
|
||||
gint data);
|
||||
|
||||
|
|
|
@ -369,28 +369,6 @@ void gtkut_clist_set_focus_row(GtkCList *clist, gint row)
|
|||
GTKUT_CTREE_REFRESH(clist);
|
||||
}
|
||||
|
||||
void gtkut_combo_set_items(GtkCombo *combo, const gchar *str1, ...)
|
||||
{
|
||||
va_list args;
|
||||
gchar *s;
|
||||
GList *combo_items = NULL;
|
||||
|
||||
g_return_if_fail(str1 != NULL);
|
||||
|
||||
combo_items = g_list_append(combo_items, (gpointer)str1);
|
||||
va_start(args, str1);
|
||||
s = va_arg(args, gchar*);
|
||||
while (s) {
|
||||
combo_items = g_list_append(combo_items, (gpointer)s);
|
||||
s = va_arg(args, gchar*);
|
||||
}
|
||||
va_end(args);
|
||||
|
||||
gtk_combo_set_popdown_strings(combo, combo_items);
|
||||
|
||||
g_list_free(combo_items);
|
||||
}
|
||||
|
||||
void gtkut_container_remove(GtkContainer *container, GtkWidget *widget)
|
||||
{
|
||||
gtk_container_remove(container, widget);
|
||||
|
|
|
@ -150,9 +150,6 @@ void gtkut_ctree_set_focus_row (GtkCTree *ctree,
|
|||
void gtkut_clist_set_focus_row (GtkCList *clist,
|
||||
gint row);
|
||||
|
||||
void gtkut_combo_set_items (GtkCombo *combo,
|
||||
const gchar *str1, ...);
|
||||
|
||||
void gtkut_container_remove (GtkContainer *container,
|
||||
GtkWidget *widget);
|
||||
|
||||
|
|
|
@ -41,6 +41,7 @@
|
|||
#include "bogofilter.h"
|
||||
#include "menu.h"
|
||||
#include "addressbook.h"
|
||||
#include "combobox.h"
|
||||
|
||||
struct BogofilterPage
|
||||
{
|
||||
|
@ -61,13 +62,6 @@ struct BogofilterPage
|
|||
GtkWidget *mark_as_read;
|
||||
};
|
||||
|
||||
/*!
|
||||
*\brief Preset addressbook book/folder items
|
||||
*/
|
||||
static const gchar *whitelist_ab_folder_text [] = {
|
||||
N_("Any")
|
||||
};
|
||||
|
||||
static void foldersel_cb(GtkWidget *widget, gpointer data)
|
||||
{
|
||||
GtkWidget *entry = (GtkWidget *) data;
|
||||
|
@ -89,10 +83,10 @@ static void bogofilter_whitelist_ab_select_cb(GtkWidget *widget, gpointer data)
|
|||
gchar *folderpath = NULL;
|
||||
gboolean ret = FALSE;
|
||||
|
||||
folderpath = (gchar *) gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(page->whitelist_ab_folder_combo)->entry));
|
||||
folderpath = (gchar *) gtk_entry_get_text(GTK_ENTRY(GTK_BIN(page->whitelist_ab_folder_combo)->child));
|
||||
ret = addressbook_folder_selection(&folderpath);
|
||||
if ( ret != FALSE && folderpath != NULL)
|
||||
gtk_entry_set_text(GTK_ENTRY(GTK_COMBO(page->whitelist_ab_folder_combo)->entry), folderpath);
|
||||
gtk_entry_set_text(GTK_ENTRY(GTK_BIN(page->whitelist_ab_folder_combo)->child), folderpath);
|
||||
}
|
||||
|
||||
static void bogofilter_create_widget_func(PrefsPage * _page,
|
||||
|
@ -134,8 +128,6 @@ static void bogofilter_create_widget_func(PrefsPage * _page,
|
|||
|
||||
GtkWidget *whitelist_ab_folder_combo;
|
||||
GtkWidget *whitelist_ab_select_btn;
|
||||
GList *combo_items;
|
||||
gint i;
|
||||
|
||||
tooltips = gtk_tooltips_new();
|
||||
|
||||
|
@ -237,20 +229,8 @@ static void bogofilter_create_widget_func(PrefsPage * _page,
|
|||
gtk_tooltips_set_tip(tooltips, whitelist_ab_checkbtn,
|
||||
_("Messages coming from your address book contacts will be received in the normal folder even if detected as spam"), NULL);
|
||||
|
||||
whitelist_ab_folder_combo = gtk_combo_new();
|
||||
gtk_widget_show(whitelist_ab_folder_combo);
|
||||
whitelist_ab_folder_combo = combobox_text_new(TRUE, _("Any"), NULL);
|
||||
gtk_widget_set_size_request(whitelist_ab_folder_combo, 100, -1);
|
||||
gtk_entry_set_editable(GTK_ENTRY(GTK_COMBO(whitelist_ab_folder_combo)->entry),
|
||||
TRUE);
|
||||
|
||||
combo_items = NULL;
|
||||
for (i = 0; i < (gint) (sizeof(whitelist_ab_folder_text) / sizeof(gchar *)); i++) {
|
||||
combo_items = g_list_append(combo_items,
|
||||
(gpointer) _(whitelist_ab_folder_text[i]));
|
||||
}
|
||||
gtk_combo_set_popdown_strings(GTK_COMBO(whitelist_ab_folder_combo), combo_items);
|
||||
g_list_free(combo_items);
|
||||
|
||||
gtk_box_pack_start (GTK_BOX (hbox_whitelist), whitelist_ab_folder_combo, TRUE, TRUE, 0);
|
||||
|
||||
whitelist_ab_select_btn = gtk_button_new_with_label(_("Select ..."));
|
||||
|
@ -307,7 +287,7 @@ static void bogofilter_create_widget_func(PrefsPage * _page,
|
|||
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(insert_header_checkbtn), config->insert_header);
|
||||
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(whitelist_ab_checkbtn), config->whitelist_ab);
|
||||
if (config->whitelist_ab_folder != NULL)
|
||||
gtk_entry_set_text(GTK_ENTRY(GTK_COMBO(whitelist_ab_folder_combo)->entry),
|
||||
gtk_entry_set_text(GTK_ENTRY(GTK_BIN(whitelist_ab_folder_combo)->child),
|
||||
config->whitelist_ab_folder);
|
||||
if (config->save_folder != NULL)
|
||||
gtk_entry_set_text(GTK_ENTRY(save_spam_folder_entry), config->save_folder);
|
||||
|
@ -376,7 +356,7 @@ static void bogofilter_save_func(PrefsPage *_page)
|
|||
config->whitelist_ab = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->whitelist_ab));
|
||||
g_free(config->whitelist_ab_folder);
|
||||
config->whitelist_ab_folder = gtk_editable_get_chars(
|
||||
GTK_EDITABLE(GTK_COMBO(page->whitelist_ab_folder_combo)->entry), 0, -1);
|
||||
GTK_EDITABLE(GTK_BIN(page->whitelist_ab_folder_combo)->child), 0, -1);
|
||||
|
||||
/* bogopath */
|
||||
g_free(config->bogopath);
|
||||
|
|
|
@ -40,6 +40,7 @@
|
|||
#include "statusbar.h"
|
||||
#include "menu.h"
|
||||
#include "addressbook.h"
|
||||
#include "combobox.h"
|
||||
|
||||
struct SpamAssassinPage
|
||||
{
|
||||
|
@ -66,13 +67,6 @@ struct SpamAssassinPage
|
|||
SpamAssassinTransport trans;
|
||||
};
|
||||
|
||||
/*!
|
||||
*\brief Preset addressbook book/folder items
|
||||
*/
|
||||
static const gchar *whitelist_ab_folder_text [] = {
|
||||
N_("Any")
|
||||
};
|
||||
|
||||
struct Transport
|
||||
{
|
||||
gchar *name;
|
||||
|
@ -104,10 +98,10 @@ static void spamassassin_whitelist_ab_select_cb(GtkWidget *widget, gpointer data
|
|||
gchar *folderpath = NULL;
|
||||
gboolean ret = FALSE;
|
||||
|
||||
folderpath = (gchar *) gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(page->whitelist_ab_folder_combo)->entry));
|
||||
folderpath = (gchar *) gtk_entry_get_text(GTK_ENTRY(GTK_BIN(page->whitelist_ab_folder_combo)->child));
|
||||
ret = addressbook_folder_selection(&folderpath);
|
||||
if ( ret != FALSE && folderpath != NULL)
|
||||
gtk_entry_set_text(GTK_ENTRY(GTK_COMBO(page->whitelist_ab_folder_combo)->entry), folderpath);
|
||||
gtk_entry_set_text(GTK_ENTRY(GTK_BIN(page->whitelist_ab_folder_combo)->child), folderpath);
|
||||
}
|
||||
|
||||
static void foldersel_cb(GtkWidget *widget, gpointer data)
|
||||
|
@ -214,7 +208,6 @@ static void spamassassin_create_widget_func(PrefsPage * _page,
|
|||
GtkWidget *whitelist_ab_checkbtn;
|
||||
GtkWidget *whitelist_ab_folder_combo;
|
||||
GtkWidget *whitelist_ab_select_btn;
|
||||
GList *combo_items;
|
||||
|
||||
GtkWidget *enable_sa_checkbtn;
|
||||
|
||||
|
@ -436,20 +429,8 @@ static void spamassassin_create_widget_func(PrefsPage * _page,
|
|||
gtk_tooltips_set_tip(tooltips, whitelist_ab_checkbtn,
|
||||
_("Messages coming from your address book contacts will be received in the normal folder even if detected as spam"), NULL);
|
||||
|
||||
whitelist_ab_folder_combo = gtk_combo_new();
|
||||
gtk_widget_show(whitelist_ab_folder_combo);
|
||||
whitelist_ab_folder_combo = combobox_text_new(TRUE, _("Any"), NULL);
|
||||
gtk_widget_set_size_request(whitelist_ab_folder_combo, 100, -1);
|
||||
gtk_entry_set_editable(GTK_ENTRY(GTK_COMBO(whitelist_ab_folder_combo)->entry),
|
||||
TRUE);
|
||||
|
||||
combo_items = NULL;
|
||||
for (i = 0; i < (gint) (sizeof(whitelist_ab_folder_text) / sizeof(gchar *)); i++) {
|
||||
combo_items = g_list_append(combo_items,
|
||||
(gpointer) _(whitelist_ab_folder_text[i]));
|
||||
}
|
||||
gtk_combo_set_popdown_strings(GTK_COMBO(whitelist_ab_folder_combo), combo_items);
|
||||
g_list_free(combo_items);
|
||||
|
||||
gtk_box_pack_start (GTK_BOX (hbox_whitelist), whitelist_ab_folder_combo, TRUE, TRUE, 0);
|
||||
|
||||
whitelist_ab_select_btn = gtk_button_new_with_label(_("Select ..."));
|
||||
|
@ -485,7 +466,7 @@ static void spamassassin_create_widget_func(PrefsPage * _page,
|
|||
if (config->socket != NULL)
|
||||
gtk_entry_set_text(GTK_ENTRY(spamd_socket_entry), config->socket);
|
||||
if (config->whitelist_ab_folder != NULL)
|
||||
gtk_entry_set_text(GTK_ENTRY(GTK_COMBO(whitelist_ab_folder_combo)->entry),
|
||||
gtk_entry_set_text(GTK_ENTRY(GTK_BIN(whitelist_ab_folder_combo)->child),
|
||||
config->whitelist_ab_folder);
|
||||
gtk_spin_button_set_value(GTK_SPIN_BUTTON(spamd_port_spinbtn), (float) config->port);
|
||||
gtk_spin_button_set_value(GTK_SPIN_BUTTON(max_size_spinbtn), (float) config->max_size);
|
||||
|
@ -603,7 +584,7 @@ static void spamassassin_save_func(PrefsPage *_page)
|
|||
config->whitelist_ab = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->whitelist_ab));
|
||||
g_free(config->whitelist_ab_folder);
|
||||
config->whitelist_ab_folder = gtk_editable_get_chars(
|
||||
GTK_EDITABLE(GTK_COMBO(page->whitelist_ab_folder_combo)->entry), 0, -1);
|
||||
GTK_EDITABLE(GTK_BIN(page->whitelist_ab_folder_combo)->child), 0, -1);
|
||||
|
||||
if (config->process_emails) {
|
||||
spamassassin_register_hook();
|
||||
|
|
|
@ -47,6 +47,7 @@
|
|||
#include "alertpanel.h"
|
||||
#include "base64.h"
|
||||
#include "filesel.h"
|
||||
#include "combobox.h"
|
||||
|
||||
enum {
|
||||
CUSTHDR_STRING, /*!< display string managed by list store */
|
||||
|
@ -209,15 +210,12 @@ static void prefs_custom_header_create(void)
|
|||
0, 0, 0);
|
||||
gtk_misc_set_alignment (GTK_MISC (hdr_label), 0, 0.5);
|
||||
|
||||
hdr_combo = gtk_combo_new ();
|
||||
gtk_widget_show (hdr_combo);
|
||||
hdr_combo = combobox_text_new(TRUE, "User-Agent", "Face", "X-Face",
|
||||
"X-Operating-System", NULL);
|
||||
gtk_table_attach (GTK_TABLE (table1), hdr_combo, 0, 1, 1, 2,
|
||||
GTK_EXPAND | GTK_SHRINK | GTK_FILL,
|
||||
0, 0, 0);
|
||||
gtk_widget_set_size_request (hdr_combo, 150, -1);
|
||||
gtkut_combo_set_items (GTK_COMBO (hdr_combo),
|
||||
"User-Agent", "Face", "X-Face", "X-Operating-System",
|
||||
NULL);
|
||||
|
||||
val_label = gtk_label_new (_("Value"));
|
||||
gtk_widget_show (val_label);
|
||||
|
@ -311,7 +309,7 @@ static void prefs_custom_header_create(void)
|
|||
customhdr.cancel_btn = cancel_btn;
|
||||
|
||||
customhdr.hdr_combo = hdr_combo;
|
||||
customhdr.hdr_entry = GTK_COMBO (hdr_combo)->entry;
|
||||
customhdr.hdr_entry = GTK_BIN (hdr_combo)->child;
|
||||
customhdr.val_entry = val_entry;
|
||||
|
||||
customhdr.list_view = list_view;
|
||||
|
|
|
@ -32,6 +32,7 @@
|
|||
#include <gdk/gdkkeysyms.h>
|
||||
|
||||
#include "utils.h"
|
||||
#include "combobox.h"
|
||||
#include "prefs_common.h"
|
||||
#include "prefs_gtk.h"
|
||||
|
||||
|
@ -125,14 +126,7 @@ static void prefs_ext_prog_create_widget(PrefsPage *_page, GtkWindow *window,
|
|||
gtk_label_set_justify(GTK_LABEL (uri_label), GTK_JUSTIFY_RIGHT);
|
||||
gtk_misc_set_alignment(GTK_MISC (uri_label), 1, 0.5);
|
||||
|
||||
uri_combo = gtk_combo_new ();
|
||||
gtk_widget_show (uri_combo);
|
||||
#ifdef MAEMO
|
||||
gtk_widget_set_sensitive(uri_combo, FALSE);
|
||||
#endif
|
||||
gtk_table_attach (GTK_TABLE (table2), uri_combo, 1, 2, 0, 1,
|
||||
GTK_EXPAND | GTK_FILL, 0, 0, 0);
|
||||
gtkut_combo_set_items (GTK_COMBO (uri_combo),
|
||||
uri_combo = combobox_text_new(TRUE,
|
||||
DEFAULT_BROWSER_CMD,
|
||||
"galeon --new-tab '%s'",
|
||||
"galeon '%s'",
|
||||
|
@ -145,7 +139,13 @@ static void prefs_ext_prog_create_widget(PrefsPage *_page, GtkWindow *window,
|
|||
"rxvt -e w3m '%s'",
|
||||
"rxvt -e lynx '%s'",
|
||||
NULL);
|
||||
uri_entry = GTK_COMBO (uri_combo)->entry;
|
||||
#ifdef MAEMO
|
||||
gtk_widget_set_sensitive(uri_combo, FALSE);
|
||||
#endif
|
||||
gtk_table_attach (GTK_TABLE (table2), uri_combo, 1, 2, 0, 1,
|
||||
GTK_EXPAND | GTK_FILL, 0, 0, 0);
|
||||
|
||||
uri_entry = GTK_BIN (uri_combo)->child;
|
||||
gtk_entry_set_text(GTK_ENTRY(uri_entry), prefs_common.uri_cmd ? prefs_common.uri_cmd : "");
|
||||
|
||||
exteditor_label = gtk_label_new (_("Text editor"));
|
||||
|
@ -157,22 +157,21 @@ static void prefs_ext_prog_create_widget(PrefsPage *_page, GtkWindow *window,
|
|||
gtk_label_set_justify(GTK_LABEL (exteditor_label), GTK_JUSTIFY_RIGHT);
|
||||
gtk_misc_set_alignment(GTK_MISC (exteditor_label), 1, 0.5);
|
||||
|
||||
exteditor_combo = gtk_combo_new ();
|
||||
gtk_widget_show (exteditor_combo);
|
||||
exteditor_combo = combobox_text_new(TRUE,
|
||||
"gedit %s",
|
||||
"kedit %s",
|
||||
"mousepad %s",
|
||||
"nedit %s",
|
||||
"mgedit --no-fork %s",
|
||||
"emacs %s",
|
||||
"xemacs %s",
|
||||
"kterm -e jed %s",
|
||||
"kterm -e vi %s",
|
||||
NULL);
|
||||
gtk_table_attach (GTK_TABLE (table2), exteditor_combo, 1, 2, 1, 2,
|
||||
GTK_EXPAND | GTK_FILL, 0, 0, 0);
|
||||
gtkut_combo_set_items (GTK_COMBO (exteditor_combo),
|
||||
"gedit %s",
|
||||
"kedit %s",
|
||||
"mousepad %s",
|
||||
"nedit %s",
|
||||
"mgedit --no-fork %s",
|
||||
"emacs %s",
|
||||
"xemacs %s",
|
||||
"kterm -e jed %s",
|
||||
"kterm -e vi %s",
|
||||
NULL);
|
||||
exteditor_entry = GTK_COMBO (exteditor_combo)->entry;
|
||||
|
||||
exteditor_entry = GTK_BIN (exteditor_combo)->child;
|
||||
gtk_entry_set_text(GTK_ENTRY(exteditor_entry),
|
||||
prefs_common.ext_editor_cmd ? prefs_common.ext_editor_cmd : "");
|
||||
|
||||
|
|
|
@ -50,6 +50,7 @@
|
|||
#include "tags.h"
|
||||
#include "matcher_parser.h"
|
||||
#include "colorlabel.h"
|
||||
#include "combobox.h"
|
||||
|
||||
enum {
|
||||
PFA_ACTION,
|
||||
|
@ -69,10 +70,8 @@ static void prefs_filtering_action_cancel(void);
|
|||
static void prefs_filtering_action_ok(void);
|
||||
static gint prefs_filtering_action_deleted(GtkWidget *widget,
|
||||
GdkEventAny *event, gpointer data);
|
||||
static void prefs_filtering_action_type_selection_changed(GtkList *list,
|
||||
static void prefs_filtering_action_type_selection_changed(GtkWidget *widget,
|
||||
gpointer user_data);
|
||||
static void prefs_filtering_action_type_select(GtkList *list,
|
||||
GtkWidget *widget, gpointer user_data);
|
||||
static void prefs_filtering_action_select_dest(void);
|
||||
static void prefs_filtering_action_select_addressbook(void);
|
||||
static void prefs_filtering_action_up(void);
|
||||
|
@ -104,10 +103,8 @@ static struct FilteringAction_ {
|
|||
GtkWidget *ok_btn;
|
||||
|
||||
GtkWidget *action_list_view;
|
||||
GtkWidget *action_type_list;
|
||||
GtkWidget *action_combo;
|
||||
GtkWidget *account_label;
|
||||
GtkWidget *account_list;
|
||||
GtkWidget *account_combo;
|
||||
GtkWidget *dest_entry;
|
||||
GtkWidget *dest_btn;
|
||||
|
@ -124,7 +121,6 @@ static struct FilteringAction_ {
|
|||
GtkWidget *addressbook_label;
|
||||
GtkWidget *addressbook_btn;
|
||||
GtkWidget *tags_label;
|
||||
GtkWidget *tags_list;
|
||||
GtkWidget *tags_combo;
|
||||
|
||||
gint current_action;
|
||||
|
@ -199,32 +195,6 @@ static struct {
|
|||
*/
|
||||
static PrefsFilteringActionSignal *filtering_action_callback;
|
||||
|
||||
/*!
|
||||
*\brief Find index of list selection
|
||||
*
|
||||
*\param list GTK list widget
|
||||
*
|
||||
*\return gint Selection index
|
||||
*/
|
||||
static gint get_sel_from_list(GtkList *list)
|
||||
{
|
||||
gint row = 0;
|
||||
void * sel;
|
||||
GList * child;
|
||||
|
||||
if (list->selection == NULL)
|
||||
return -1;
|
||||
|
||||
sel = list->selection->data;
|
||||
for (child = list->children; child != NULL; child = g_list_next(child)) {
|
||||
if (child->data == sel)
|
||||
return row;
|
||||
row ++;
|
||||
}
|
||||
|
||||
return row;
|
||||
}
|
||||
|
||||
/*!
|
||||
*\brief Opens the filtering action dialog with a list of actions
|
||||
*
|
||||
|
@ -285,8 +255,6 @@ static void prefs_filtering_action_create(void)
|
|||
GtkWidget *action_label;
|
||||
GtkWidget *recip_label;
|
||||
GtkWidget *action_combo;
|
||||
GtkWidget *action_type_list;
|
||||
GtkWidget *account_list;
|
||||
GtkWidget *dest_label;
|
||||
GtkWidget *exec_label;
|
||||
GtkWidget *score_label;
|
||||
|
@ -301,9 +269,7 @@ static void prefs_filtering_action_create(void)
|
|||
GtkWidget *dest_entry;
|
||||
GtkWidget *dest_btn;
|
||||
GtkWidget *tags_label;
|
||||
GtkWidget *tags_list;
|
||||
GtkWidget *tags_combo;
|
||||
GList * cur;
|
||||
|
||||
GtkWidget *reg_hbox;
|
||||
GtkWidget *btn_hbox;
|
||||
|
@ -324,7 +290,6 @@ static void prefs_filtering_action_create(void)
|
|||
|
||||
GtkWidget *color_optmenu;
|
||||
|
||||
GList *combo_items;
|
||||
gint i;
|
||||
static GdkGeometry geometry;
|
||||
|
||||
|
@ -382,27 +347,16 @@ static void prefs_filtering_action_create(void)
|
|||
gtk_misc_set_alignment (GTK_MISC (action_label), 0, 0.5);
|
||||
gtk_box_pack_start (GTK_BOX (hbox1), action_label, FALSE, FALSE, 0);
|
||||
|
||||
action_combo = gtk_combo_new ();
|
||||
action_combo = gtk_combo_box_new_text ();
|
||||
gtk_widget_show (action_combo);
|
||||
gtk_entry_set_editable(GTK_ENTRY(GTK_COMBO(action_combo)->entry),
|
||||
FALSE);
|
||||
|
||||
combo_items = NULL;
|
||||
for (i = 0; i < sizeof action_text / sizeof action_text[0]; i++)
|
||||
combo_items = g_list_append
|
||||
(combo_items, (gpointer) _(action_text[i].text));
|
||||
gtk_combo_set_popdown_strings(GTK_COMBO(action_combo), combo_items);
|
||||
|
||||
g_list_free(combo_items);
|
||||
|
||||
gtk_combo_box_append_text(GTK_COMBO_BOX(action_combo),
|
||||
(gpointer) _(action_text[i].text));
|
||||
gtk_combo_box_set_active(GTK_COMBO_BOX(action_combo), 0);
|
||||
gtk_box_pack_start (GTK_BOX (hbox1), action_combo,
|
||||
TRUE, TRUE, 0);
|
||||
action_type_list = GTK_COMBO(action_combo)->list;
|
||||
g_signal_connect (G_OBJECT(action_type_list), "select-child",
|
||||
G_CALLBACK(prefs_filtering_action_type_select),
|
||||
NULL);
|
||||
|
||||
g_signal_connect(G_OBJECT(action_type_list), "selection-changed",
|
||||
g_signal_connect(G_OBJECT(action_combo), "changed",
|
||||
G_CALLBACK(prefs_filtering_action_type_selection_changed),
|
||||
NULL);
|
||||
|
||||
|
@ -418,11 +372,10 @@ static void prefs_filtering_action_create(void)
|
|||
gtk_misc_set_alignment (GTK_MISC (account_label), 0, 0.5);
|
||||
gtk_box_pack_start (GTK_BOX (hbox1), account_label, FALSE, FALSE, 0);
|
||||
|
||||
account_combo = gtk_combo_new ();
|
||||
account_combo = gtk_combo_box_new_text ();
|
||||
gtk_widget_set_size_request (account_combo, 150, -1);
|
||||
gtk_widget_show (account_combo);
|
||||
|
||||
combo_items = NULL;
|
||||
for (accounts = account_get_list() ; accounts != NULL;
|
||||
accounts = accounts->next) {
|
||||
PrefsAccount *ac = (PrefsAccount *)accounts->data;
|
||||
|
@ -431,21 +384,13 @@ static void prefs_filtering_action_create(void)
|
|||
name = g_strdup_printf("%s <%s> (%s)",
|
||||
ac->name, ac->address,
|
||||
ac->account_name);
|
||||
combo_items = g_list_append(combo_items, (gpointer) name);
|
||||
gtk_combo_box_append_text(GTK_COMBO_BOX(account_combo), (gpointer) name);
|
||||
g_free(name);
|
||||
}
|
||||
|
||||
gtk_combo_set_popdown_strings(GTK_COMBO(account_combo), combo_items);
|
||||
|
||||
for(cur = g_list_first(combo_items) ; cur != NULL ;
|
||||
cur = g_list_next(cur))
|
||||
g_free(cur->data);
|
||||
g_list_free(combo_items);
|
||||
|
||||
gtk_combo_box_set_active(GTK_COMBO_BOX(account_combo), 0);
|
||||
gtk_box_pack_start (GTK_BOX (hbox1), account_combo,
|
||||
TRUE, TRUE, 0);
|
||||
account_list = GTK_COMBO(account_combo)->list;
|
||||
gtk_entry_set_editable(GTK_ENTRY(GTK_COMBO(account_combo)->entry),
|
||||
FALSE);
|
||||
|
||||
/* header */
|
||||
|
||||
|
@ -454,16 +399,11 @@ static void prefs_filtering_action_create(void)
|
|||
gtk_misc_set_alignment(GTK_MISC(header_label), 0, 0.5);
|
||||
gtk_box_pack_start (GTK_BOX (hbox1), header_label, FALSE, FALSE, 0);
|
||||
|
||||
header_combo = gtk_combo_new();
|
||||
gtk_widget_show(header_combo);
|
||||
header_combo = combobox_text_new(TRUE, "From", "To", "Cc", "Reply-To", "Sender", NULL);
|
||||
gtk_widget_set_size_request(header_combo, 120, -1);
|
||||
gtkut_combo_set_items(GTK_COMBO (header_combo),
|
||||
"From", "To", "Cc", "Reply-To", "Sender",
|
||||
NULL);
|
||||
gtk_box_pack_start (GTK_BOX (hbox1), header_combo,
|
||||
TRUE, TRUE, 0);
|
||||
header_entry = GTK_COMBO(header_combo)->entry;
|
||||
gtk_entry_set_editable(GTK_ENTRY(header_entry), TRUE);
|
||||
header_entry = GTK_BIN(header_combo)->child;
|
||||
|
||||
/* destination */
|
||||
|
||||
|
@ -517,31 +457,22 @@ static void prefs_filtering_action_create(void)
|
|||
colorlabel_create_color_menu());
|
||||
gtk_box_pack_start(GTK_BOX(hbox1), color_optmenu, TRUE, TRUE, 0);
|
||||
|
||||
tags_combo = gtk_combo_new ();
|
||||
tags_combo = gtk_combo_box_new_text ();
|
||||
gtk_widget_set_size_request (tags_combo, 150, -1);
|
||||
gtk_widget_show (tags_combo);
|
||||
|
||||
combo_items = NULL;
|
||||
for (tmp = tags = tags_get_list() ; tmp != NULL;
|
||||
tmp = tmp->next) {
|
||||
gchar *name = g_strdup(tags_get_tag(GPOINTER_TO_INT(tmp->data)));
|
||||
|
||||
combo_items = g_list_append(combo_items, (gpointer) name);
|
||||
gtk_combo_box_append_text(GTK_COMBO_BOX(tags_combo), (gpointer) name);
|
||||
g_free(name);
|
||||
}
|
||||
|
||||
gtk_combo_set_popdown_strings(GTK_COMBO(tags_combo), combo_items);
|
||||
|
||||
for(cur = g_list_first(combo_items) ; cur != NULL ;
|
||||
cur = g_list_next(cur))
|
||||
g_free(cur->data);
|
||||
g_list_free(combo_items);
|
||||
g_slist_free(tags);
|
||||
|
||||
gtk_combo_box_set_active(GTK_COMBO_BOX(tags_combo), 0);
|
||||
gtk_box_pack_start (GTK_BOX (hbox1), tags_combo,
|
||||
TRUE, TRUE, 0);
|
||||
tags_list = GTK_COMBO(tags_combo)->list;
|
||||
gtk_entry_set_editable(GTK_ENTRY(GTK_COMBO(tags_combo)->entry),
|
||||
FALSE);
|
||||
|
||||
dest_btn = gtk_button_new_with_label (_("Select ..."));
|
||||
gtk_widget_show (dest_btn);
|
||||
gtk_box_pack_start (GTK_BOX (hbox1), dest_btn, FALSE, FALSE, 0);
|
||||
|
@ -647,13 +578,10 @@ static void prefs_filtering_action_create(void)
|
|||
gtk_widget_show_all(window);
|
||||
|
||||
filtering_action.window = window;
|
||||
filtering_action.action_type_list = action_type_list;
|
||||
filtering_action.action_combo = action_combo;
|
||||
filtering_action.account_label = account_label;
|
||||
filtering_action.account_list = account_list;
|
||||
filtering_action.account_combo = account_combo;
|
||||
filtering_action.tags_label = tags_label;
|
||||
filtering_action.tags_list = tags_list;
|
||||
filtering_action.tags_combo = tags_combo;
|
||||
filtering_action.dest_entry = dest_entry;
|
||||
filtering_action.dest_btn = dest_btn;
|
||||
|
@ -671,6 +599,8 @@ static void prefs_filtering_action_create(void)
|
|||
filtering_action.addressbook_btn = addressbook_btn;
|
||||
filtering_action.ok_btn = ok_btn;
|
||||
filtering_action.action_list_view = action_list_view;
|
||||
|
||||
prefs_filtering_action_type_selection_changed(NULL, NULL);
|
||||
}
|
||||
|
||||
/*!
|
||||
|
@ -899,9 +829,9 @@ static FilteringAction * prefs_filtering_action_dialog_to_action(gboolean alert)
|
|||
gint score;
|
||||
gchar * header = NULL;
|
||||
|
||||
action_id = get_sel_from_list(GTK_LIST(filtering_action.action_type_list));
|
||||
action_id = gtk_combo_box_get_active(GTK_COMBO_BOX(filtering_action.action_combo));
|
||||
action_type = prefs_filtering_action_get_matching_from_action(action_id);
|
||||
list_id = get_sel_from_list(GTK_LIST(filtering_action.account_list));
|
||||
list_id = gtk_combo_box_get_active(GTK_COMBO_BOX(filtering_action.account_combo));
|
||||
account_id = get_account_id_from_list_id(list_id);
|
||||
score = 0;
|
||||
destination = NULL;
|
||||
|
@ -965,7 +895,7 @@ static FilteringAction * prefs_filtering_action_dialog_to_action(gboolean alert)
|
|||
break;
|
||||
case ACTION_SET_TAG:
|
||||
case ACTION_UNSET_TAG:
|
||||
destination = gtk_editable_get_chars(GTK_EDITABLE(GTK_COMBO(filtering_action.tags_combo)->entry), 0, -1);
|
||||
destination = gtk_editable_get_chars(GTK_EDITABLE(GTK_BIN(filtering_action.tags_combo)->child), 0, -1);
|
||||
if (*destination == '\0') {
|
||||
if (alert)
|
||||
alertpanel_error(_("Tag name is empty."));
|
||||
|
@ -1018,8 +948,8 @@ static void prefs_filtering_action_register_cb(void)
|
|||
* what seems to be a bug. this causes any other
|
||||
* list items to be unselectable)
|
||||
* prefs_filtering_action_reset_dialog(); */
|
||||
gtk_list_select_item(GTK_LIST(filtering_action.account_list), 0);
|
||||
gtk_list_select_item(GTK_LIST(filtering_action.tags_list), 0);
|
||||
gtk_combo_box_set_active(GTK_COMBO_BOX(filtering_action.account_combo), 0);
|
||||
gtk_combo_box_set_active(GTK_COMBO_BOX(filtering_action.tags_combo), 0);
|
||||
gtk_entry_set_text(GTK_ENTRY(filtering_action.dest_entry), "");
|
||||
}
|
||||
|
||||
|
@ -1292,12 +1222,12 @@ static void prefs_filtering_action_select_addressbook(void)
|
|||
g_free(prev);
|
||||
}
|
||||
|
||||
static void prefs_filtering_action_type_selection_changed(GtkList *list,
|
||||
gpointer user_data)
|
||||
static void prefs_filtering_action_type_selection_changed(GtkWidget *combo,
|
||||
gpointer user_data)
|
||||
{
|
||||
gint value;
|
||||
|
||||
value = get_sel_from_list(GTK_LIST(filtering_action.action_type_list));
|
||||
value = gtk_combo_box_get_active(GTK_COMBO_BOX(filtering_action.action_combo));
|
||||
|
||||
if (filtering_action.current_action != value) {
|
||||
if (filtering_action.current_action == ACTION_FORWARD
|
||||
|
@ -1317,14 +1247,6 @@ static void prefs_filtering_action_type_selection_changed(GtkList *list,
|
|||
}
|
||||
filtering_action.current_action = value;
|
||||
}
|
||||
}
|
||||
|
||||
static void prefs_filtering_action_type_select(GtkList *list,
|
||||
GtkWidget *widget, gpointer user_data)
|
||||
{
|
||||
Action value;
|
||||
|
||||
value = (Action) get_sel_from_list(GTK_LIST(filtering_action.action_type_list));
|
||||
|
||||
switch (value) {
|
||||
case ACTION_MOVE:
|
||||
|
@ -1690,8 +1612,8 @@ static void prefs_filtering_action_type_select(GtkList *list,
|
|||
|
||||
static void prefs_filtering_action_reset_dialog(void)
|
||||
{
|
||||
gtk_list_select_item(GTK_LIST(filtering_action.action_type_list), 0);
|
||||
gtk_list_select_item(GTK_LIST(filtering_action.account_list), 0);
|
||||
gtk_combo_box_set_active(GTK_COMBO_BOX(filtering_action.action_combo), 0);
|
||||
gtk_combo_box_set_active(GTK_COMBO_BOX(filtering_action.account_combo), 0);
|
||||
gtk_entry_set_text(GTK_ENTRY(filtering_action.dest_entry), "");
|
||||
}
|
||||
|
||||
|
@ -1811,101 +1733,101 @@ static gboolean prefs_filtering_actions_selected
|
|||
|
||||
switch(action->type) {
|
||||
case MATCHACTION_MOVE:
|
||||
gtk_list_select_item(GTK_LIST(filtering_action.action_type_list),
|
||||
gtk_combo_box_set_active(GTK_COMBO_BOX(filtering_action.action_combo),
|
||||
ACTION_MOVE);
|
||||
break;
|
||||
case MATCHACTION_COPY:
|
||||
gtk_list_select_item(GTK_LIST(filtering_action.action_type_list),
|
||||
gtk_combo_box_set_active(GTK_COMBO_BOX(filtering_action.action_combo),
|
||||
ACTION_COPY);
|
||||
break;
|
||||
case MATCHACTION_DELETE:
|
||||
gtk_list_select_item(GTK_LIST(filtering_action.action_type_list),
|
||||
gtk_combo_box_set_active(GTK_COMBO_BOX(filtering_action.action_combo),
|
||||
ACTION_DELETE);
|
||||
break;
|
||||
case MATCHACTION_MARK:
|
||||
gtk_list_select_item(GTK_LIST(filtering_action.action_type_list),
|
||||
gtk_combo_box_set_active(GTK_COMBO_BOX(filtering_action.action_combo),
|
||||
ACTION_MARK);
|
||||
break;
|
||||
case MATCHACTION_UNMARK:
|
||||
gtk_list_select_item(GTK_LIST(filtering_action.action_type_list),
|
||||
gtk_combo_box_set_active(GTK_COMBO_BOX(filtering_action.action_combo),
|
||||
ACTION_UNMARK);
|
||||
break;
|
||||
case MATCHACTION_LOCK:
|
||||
gtk_list_select_item(GTK_LIST(filtering_action.action_type_list),
|
||||
gtk_combo_box_set_active(GTK_COMBO_BOX(filtering_action.action_combo),
|
||||
ACTION_LOCK);
|
||||
break;
|
||||
case MATCHACTION_UNLOCK:
|
||||
gtk_list_select_item(GTK_LIST(filtering_action.action_type_list),
|
||||
gtk_combo_box_set_active(GTK_COMBO_BOX(filtering_action.action_combo),
|
||||
ACTION_UNLOCK);
|
||||
break;
|
||||
case MATCHACTION_MARK_AS_READ:
|
||||
gtk_list_select_item(GTK_LIST(filtering_action.action_type_list),
|
||||
gtk_combo_box_set_active(GTK_COMBO_BOX(filtering_action.action_combo),
|
||||
ACTION_MARK_AS_READ);
|
||||
break;
|
||||
case MATCHACTION_MARK_AS_UNREAD:
|
||||
gtk_list_select_item(GTK_LIST(filtering_action.action_type_list),
|
||||
gtk_combo_box_set_active(GTK_COMBO_BOX(filtering_action.action_combo),
|
||||
ACTION_MARK_AS_UNREAD);
|
||||
break;
|
||||
case MATCHACTION_MARK_AS_SPAM:
|
||||
gtk_list_select_item(GTK_LIST(filtering_action.action_type_list),
|
||||
gtk_combo_box_set_active(GTK_COMBO_BOX(filtering_action.action_combo),
|
||||
ACTION_MARK_AS_SPAM);
|
||||
break;
|
||||
case MATCHACTION_MARK_AS_HAM:
|
||||
gtk_list_select_item(GTK_LIST(filtering_action.action_type_list),
|
||||
gtk_combo_box_set_active(GTK_COMBO_BOX(filtering_action.action_combo),
|
||||
ACTION_MARK_AS_HAM);
|
||||
break;
|
||||
case MATCHACTION_FORWARD:
|
||||
list_id = get_list_id_from_account_id(action->account_id);
|
||||
gtk_list_select_item(GTK_LIST(filtering_action.action_type_list),
|
||||
gtk_combo_box_set_active(GTK_COMBO_BOX(filtering_action.action_combo),
|
||||
ACTION_FORWARD);
|
||||
gtk_list_select_item(GTK_LIST(filtering_action.account_list),
|
||||
gtk_combo_box_set_active(GTK_COMBO_BOX(filtering_action.account_combo),
|
||||
list_id);
|
||||
break;
|
||||
case MATCHACTION_FORWARD_AS_ATTACHMENT:
|
||||
list_id = get_list_id_from_account_id(action->account_id);
|
||||
gtk_list_select_item(GTK_LIST(filtering_action.action_type_list),
|
||||
gtk_combo_box_set_active(GTK_COMBO_BOX(filtering_action.action_combo),
|
||||
ACTION_FORWARD_AS_ATTACHMENT);
|
||||
gtk_list_select_item(GTK_LIST(filtering_action.account_list),
|
||||
gtk_combo_box_set_active(GTK_COMBO_BOX(filtering_action.account_combo),
|
||||
list_id);
|
||||
break;
|
||||
case MATCHACTION_REDIRECT:
|
||||
list_id = get_list_id_from_account_id(action->account_id);
|
||||
gtk_list_select_item(GTK_LIST(filtering_action.action_type_list),
|
||||
gtk_combo_box_set_active(GTK_COMBO_BOX(filtering_action.action_combo),
|
||||
ACTION_REDIRECT);
|
||||
gtk_list_select_item(GTK_LIST(filtering_action.account_list),
|
||||
gtk_combo_box_set_active(GTK_COMBO_BOX(filtering_action.account_combo),
|
||||
list_id);
|
||||
break;
|
||||
case MATCHACTION_EXECUTE:
|
||||
gtk_list_select_item(GTK_LIST(filtering_action.action_type_list),
|
||||
gtk_combo_box_set_active(GTK_COMBO_BOX(filtering_action.action_combo),
|
||||
ACTION_EXECUTE);
|
||||
break;
|
||||
case MATCHACTION_COLOR:
|
||||
gtk_list_select_item(GTK_LIST(filtering_action.action_type_list),
|
||||
gtk_combo_box_set_active(GTK_COMBO_BOX(filtering_action.action_combo),
|
||||
ACTION_COLOR);
|
||||
gtk_option_menu_set_history(GTK_OPTION_MENU(filtering_action.color_optmenu), action->labelcolor);
|
||||
break;
|
||||
case MATCHACTION_CHANGE_SCORE:
|
||||
gtk_list_select_item(GTK_LIST(filtering_action.action_type_list),
|
||||
gtk_combo_box_set_active(GTK_COMBO_BOX(filtering_action.action_combo),
|
||||
ACTION_CHANGE_SCORE);
|
||||
break;
|
||||
case MATCHACTION_SET_SCORE:
|
||||
gtk_list_select_item(GTK_LIST(filtering_action.action_type_list),
|
||||
gtk_combo_box_set_active(GTK_COMBO_BOX(filtering_action.action_combo),
|
||||
ACTION_SET_SCORE);
|
||||
break;
|
||||
case MATCHACTION_STOP:
|
||||
gtk_list_select_item(GTK_LIST(filtering_action.action_type_list),
|
||||
gtk_combo_box_set_active(GTK_COMBO_BOX(filtering_action.action_combo),
|
||||
ACTION_STOP);
|
||||
break;
|
||||
case MATCHACTION_HIDE:
|
||||
gtk_list_select_item(GTK_LIST(filtering_action.action_type_list),
|
||||
gtk_combo_box_set_active(GTK_COMBO_BOX(filtering_action.action_combo),
|
||||
ACTION_HIDE);
|
||||
break;
|
||||
case MATCHACTION_IGNORE:
|
||||
gtk_list_select_item(GTK_LIST(filtering_action.action_type_list),
|
||||
gtk_combo_box_set_active(GTK_COMBO_BOX(filtering_action.action_combo),
|
||||
ACTION_IGNORE);
|
||||
break;
|
||||
case MATCHACTION_WATCH:
|
||||
gtk_list_select_item(GTK_LIST(filtering_action.action_type_list),
|
||||
gtk_combo_box_set_active(GTK_COMBO_BOX(filtering_action.action_combo),
|
||||
ACTION_WATCH);
|
||||
break;
|
||||
case MATCHACTION_ADD_TO_ADDRESSBOOK:
|
||||
|
@ -1913,7 +1835,7 @@ static gboolean prefs_filtering_actions_selected
|
|||
gtk_entry_set_text(GTK_ENTRY(filtering_action.header_entry), action->header);
|
||||
else
|
||||
gtk_entry_set_text(GTK_ENTRY(filtering_action.header_entry), "");
|
||||
gtk_list_select_item(GTK_LIST(filtering_action.action_type_list),
|
||||
gtk_combo_box_set_active(GTK_COMBO_BOX(filtering_action.action_combo),
|
||||
ACTION_ADD_TO_ADDRESSBOOK);
|
||||
}
|
||||
|
||||
|
|
|
@ -46,6 +46,7 @@
|
|||
#include "alertpanel.h"
|
||||
#include "folder.h"
|
||||
#include "description_window.h"
|
||||
#include "combobox.h"
|
||||
|
||||
#include "matcher_parser.h"
|
||||
#include "colorlabel.h"
|
||||
|
@ -71,14 +72,10 @@ static struct Matcher {
|
|||
GtkWidget *predicate_flag_combo;
|
||||
GtkWidget *header_combo;
|
||||
GtkWidget *header_addr_combo;
|
||||
GtkWidget *bool_op_combo;
|
||||
GtkWidget *criteria_combo;
|
||||
|
||||
GtkWidget *criteria_list;
|
||||
|
||||
GtkWidget *predicate_list;
|
||||
GtkWidget *predicate_label;
|
||||
GtkWidget *predicate_flag_list;
|
||||
|
||||
GtkWidget *bool_op_list;
|
||||
|
||||
GtkWidget *header_entry;
|
||||
GtkWidget *header_label;
|
||||
|
@ -212,64 +209,22 @@ static struct_criteria_text criteria_text [] = {
|
|||
{ NULL, FALSE }
|
||||
};
|
||||
|
||||
/*!
|
||||
*\brief Boolean / predicate constants
|
||||
*
|
||||
*\warning Same order as #bool_op_text!
|
||||
*/
|
||||
enum {
|
||||
BOOL_OP_OR = 0,
|
||||
BOOL_OP_AND = 1
|
||||
};
|
||||
|
||||
/*!
|
||||
*\brief Descriptive text in UI
|
||||
*/
|
||||
static const gchar *bool_op_text [] = {
|
||||
N_("or"), N_("and")
|
||||
};
|
||||
|
||||
/*!
|
||||
*\brief Contains predicate
|
||||
*
|
||||
*\warning Same order as in #predicate_text
|
||||
*/
|
||||
enum {
|
||||
PREDICATE_CONTAINS = 0,
|
||||
PREDICATE_DOES_NOT_CONTAIN = 1
|
||||
};
|
||||
|
||||
/*!
|
||||
*\brief Descriptive text in UI for predicate
|
||||
*/
|
||||
static const gchar *predicate_text [] = {
|
||||
N_("contains"), N_("does not contain")
|
||||
};
|
||||
|
||||
/*!
|
||||
*\brief Preset addressbook book/folder items
|
||||
*/
|
||||
static const gchar *addressbook_folder_text [] = {
|
||||
N_("Any")
|
||||
};
|
||||
|
||||
/*!
|
||||
*\brief Enabled predicate
|
||||
*
|
||||
*\warning Same order as in #predicate_flag_text
|
||||
*/
|
||||
enum {
|
||||
PREDICATE_FLAG_ENABLED = 0,
|
||||
PREDICATE_FLAG_DISABLED = 1
|
||||
};
|
||||
|
||||
/*!
|
||||
*\brief Descriptive text in UI for enabled flag
|
||||
*/
|
||||
static const gchar *predicate_flag_text [] = {
|
||||
N_("yes"), N_("no")
|
||||
};
|
||||
|
||||
/*!
|
||||
*\brief Hooks
|
||||
*/
|
||||
|
@ -296,8 +251,7 @@ static void prefs_matcher_ok (void);
|
|||
static void prefs_matcher_cancel (void);
|
||||
static gint prefs_matcher_deleted (GtkWidget *widget, GdkEventAny *event,
|
||||
gpointer data);
|
||||
static void prefs_matcher_criteria_select (GtkList *list,
|
||||
GtkWidget *widget,
|
||||
static void prefs_matcher_criteria_select (GtkWidget *widget,
|
||||
gpointer user_data);
|
||||
static MatcherList *prefs_matcher_get_list (void);
|
||||
|
||||
|
@ -318,29 +272,6 @@ static gboolean prefs_matcher_selected (GtkTreeSelection *selector,
|
|||
gboolean currently_selected,
|
||||
gpointer data);
|
||||
|
||||
/*!
|
||||
*\brief Find index of list selection
|
||||
*
|
||||
*\param list GTK list widget
|
||||
*
|
||||
*\return gint Selection index
|
||||
*/
|
||||
static gint get_sel_from_list(GtkList *list)
|
||||
{
|
||||
gint row = 0;
|
||||
void * sel;
|
||||
GList * child;
|
||||
|
||||
sel = list->selection->data;
|
||||
for (child = list->children; child != NULL; child = g_list_next(child)) {
|
||||
if (child->data == sel)
|
||||
return row;
|
||||
row ++;
|
||||
}
|
||||
|
||||
return row;
|
||||
}
|
||||
|
||||
/*!
|
||||
*\brief Opens the matcher dialog with a list of conditions
|
||||
*
|
||||
|
@ -396,6 +327,8 @@ static void prefs_matcher_create(void)
|
|||
GtkWidget *vbox1;
|
||||
GtkWidget *vbox2;
|
||||
GtkWidget *vbox3;
|
||||
GtkWidget *vbox_pred;
|
||||
GtkWidget *hbox_pred;
|
||||
GtkWidget *criteria_table;
|
||||
|
||||
GtkWidget *hbox1;
|
||||
|
@ -407,19 +340,15 @@ static void prefs_matcher_create(void)
|
|||
GtkWidget *header_addr_entry;
|
||||
GtkWidget *header_addr_label;
|
||||
GtkWidget *criteria_combo;
|
||||
GtkWidget *criteria_list;
|
||||
GtkWidget *criteria_label;
|
||||
GtkWidget *value_label;
|
||||
GtkWidget *value_entry;
|
||||
GtkWidget *addressbook_folder_label;
|
||||
GtkWidget *addressbook_folder_combo;
|
||||
GtkWidget *predicate_combo;
|
||||
GtkWidget *predicate_list;
|
||||
GtkWidget *predicate_flag_combo;
|
||||
GtkWidget *predicate_flag_list;
|
||||
GtkWidget *predicate_label;
|
||||
GtkWidget *bool_op_combo;
|
||||
GtkWidget *bool_op_list;
|
||||
GtkWidget *bool_op_label;
|
||||
|
||||
GtkWidget *regexp_checkbtn;
|
||||
|
@ -445,7 +374,6 @@ static void prefs_matcher_create(void)
|
|||
|
||||
GtkWidget *color_optmenu;
|
||||
|
||||
GList *combo_items;
|
||||
gint i;
|
||||
static GdkGeometry geometry;
|
||||
|
||||
|
@ -501,34 +429,24 @@ static void prefs_matcher_create(void)
|
|||
gtk_table_attach(GTK_TABLE(criteria_table), criteria_label, 0, 1, 0, 1,
|
||||
GTK_FILL, 0, 0, 0);
|
||||
|
||||
criteria_combo = gtk_combo_new();
|
||||
criteria_combo = gtk_combo_box_new_text();
|
||||
gtk_widget_show(criteria_combo);
|
||||
|
||||
combo_items = NULL;
|
||||
|
||||
for (i = 0; criteria_text[i].text != NULL; i++) {
|
||||
if (criteria_text[i].contains_header_name)
|
||||
combo_items = g_list_append(combo_items,
|
||||
(gpointer) prefs_common_translated_header_name(criteria_text[i].text));
|
||||
else
|
||||
combo_items = g_list_append(combo_items,
|
||||
(gpointer) gettext(criteria_text[i].text));
|
||||
gtk_combo_box_append_text(GTK_COMBO_BOX(criteria_combo),
|
||||
criteria_text[i].contains_header_name ?
|
||||
(gpointer) prefs_common_translated_header_name(criteria_text[i].text) :
|
||||
(gpointer) gettext(criteria_text[i].text));
|
||||
}
|
||||
gtk_combo_set_popdown_strings(GTK_COMBO(criteria_combo), combo_items);
|
||||
|
||||
g_list_free(combo_items);
|
||||
|
||||
gtk_combo_box_set_active(GTK_COMBO_BOX(criteria_combo), CRITERIA_ALL);
|
||||
gtk_widget_set_size_request(criteria_combo, 190, -1);
|
||||
gtk_table_attach(GTK_TABLE(criteria_table), criteria_combo, 0, 1, 1, 2,
|
||||
0, 0, 0, 0);
|
||||
criteria_list = GTK_COMBO(criteria_combo)->list;
|
||||
g_signal_connect(G_OBJECT(criteria_list), "select-child",
|
||||
g_signal_connect(G_OBJECT(criteria_combo), "changed",
|
||||
G_CALLBACK(prefs_matcher_criteria_select),
|
||||
NULL);
|
||||
|
||||
gtk_entry_set_editable(GTK_ENTRY(GTK_COMBO(criteria_combo)->entry),
|
||||
FALSE);
|
||||
|
||||
/* header name */
|
||||
|
||||
header_label = gtk_label_new(_("Header name"));
|
||||
|
@ -537,18 +455,14 @@ static void prefs_matcher_create(void)
|
|||
gtk_table_attach(GTK_TABLE(criteria_table), header_label, 1, 2, 0, 1,
|
||||
GTK_FILL, 0, 0, 0);
|
||||
|
||||
header_combo = gtk_combo_new();
|
||||
gtk_widget_show(header_combo);
|
||||
gtk_widget_set_size_request(header_combo, 120, -1);
|
||||
gtkut_combo_set_items(GTK_COMBO (header_combo),
|
||||
header_combo = combobox_text_new(TRUE,
|
||||
"Subject", "From", "To", "Cc", "Reply-To",
|
||||
"Sender", "X-ML-Name", "X-List", "X-Sequence",
|
||||
"X-Mailer","X-BeenThere",
|
||||
NULL);
|
||||
"X-Mailer","X-BeenThere", NULL);
|
||||
gtk_widget_set_size_request(header_combo, 120, -1);
|
||||
gtk_table_attach(GTK_TABLE(criteria_table), header_combo, 1, 2, 1, 2,
|
||||
0, 0, 0, 0);
|
||||
header_entry = GTK_COMBO(header_combo)->entry;
|
||||
gtk_entry_set_editable(GTK_ENTRY(header_entry), TRUE);
|
||||
header_entry = GTK_BIN (header_combo)->child;
|
||||
|
||||
/* address header name */
|
||||
|
||||
|
@ -557,16 +471,13 @@ static void prefs_matcher_create(void)
|
|||
gtk_table_attach(GTK_TABLE(criteria_table), header_addr_label, 1, 2, 0, 1,
|
||||
GTK_FILL, 0, 0, 0);
|
||||
|
||||
header_addr_combo = gtk_combo_new();
|
||||
gtk_widget_set_size_request(header_addr_combo, 120, -1);
|
||||
gtkut_combo_set_items(GTK_COMBO (header_addr_combo),
|
||||
header_addr_combo = combobox_text_new(TRUE,
|
||||
Q_("Filtering Matcher Menu|All"),
|
||||
_("Any"), "From", "To", "Cc", "Reply-To", "Sender",
|
||||
NULL);
|
||||
_("Any"), "From", "To", "Cc", "Reply-To", "Sender", NULL);
|
||||
gtk_widget_set_size_request(header_addr_combo, 120, -1);
|
||||
gtk_table_attach(GTK_TABLE(criteria_table), header_addr_combo, 1, 2, 1, 2,
|
||||
0, 0, 0, 0);
|
||||
header_addr_entry = GTK_COMBO(header_addr_combo)->entry;
|
||||
gtk_entry_set_editable(GTK_ENTRY(header_addr_entry), TRUE);
|
||||
header_addr_entry = GTK_BIN(header_addr_combo)->child;
|
||||
|
||||
/* value */
|
||||
|
||||
|
@ -589,20 +500,8 @@ static void prefs_matcher_create(void)
|
|||
gtk_table_attach(GTK_TABLE(criteria_table), addressbook_folder_label, 2, 3, 0, 1,
|
||||
GTK_FILL | GTK_SHRINK | GTK_EXPAND, 0, 0, 0);
|
||||
|
||||
addressbook_folder_combo = gtk_combo_new();
|
||||
gtk_widget_show(addressbook_folder_combo);
|
||||
addressbook_folder_combo = combobox_text_new(TRUE, _("Any"), NULL);
|
||||
gtk_widget_set_size_request(addressbook_folder_combo, 200, -1);
|
||||
gtk_entry_set_editable(GTK_ENTRY(GTK_COMBO(addressbook_folder_combo)->entry),
|
||||
TRUE);
|
||||
|
||||
combo_items = NULL;
|
||||
for (i = 0; i < (gint) (sizeof(addressbook_folder_text) / sizeof(gchar *)); i++) {
|
||||
combo_items = g_list_append(combo_items,
|
||||
(gpointer) _(addressbook_folder_text[i]));
|
||||
}
|
||||
gtk_combo_set_popdown_strings(GTK_COMBO(addressbook_folder_combo), combo_items);
|
||||
g_list_free(combo_items);
|
||||
|
||||
gtk_table_attach(GTK_TABLE(criteria_table), addressbook_folder_combo, 2, 3, 1, 2,
|
||||
GTK_FILL | GTK_SHRINK | GTK_EXPAND, 0, 0, 0);
|
||||
|
||||
|
@ -631,6 +530,12 @@ static void prefs_matcher_create(void)
|
|||
|
||||
/* predicate */
|
||||
|
||||
vbox_pred = gtk_vbox_new(TRUE, VSPACING);
|
||||
gtk_widget_show(vbox_pred);
|
||||
|
||||
hbox_pred = gtk_hbox_new(FALSE, VSPACING);
|
||||
gtk_widget_show(hbox_pred);
|
||||
|
||||
vbox2 = gtk_vbox_new(FALSE, VSPACING);
|
||||
gtk_widget_show(vbox2);
|
||||
gtk_box_pack_start(GTK_BOX(vbox1), vbox2, FALSE, FALSE, 0);
|
||||
|
@ -638,51 +543,26 @@ static void prefs_matcher_create(void)
|
|||
hbox1 = gtk_hbox_new(FALSE, 8);
|
||||
gtk_widget_show(hbox1);
|
||||
gtk_box_pack_start(GTK_BOX(vbox2), hbox1, FALSE, FALSE, 0);
|
||||
gtk_box_pack_start(GTK_BOX(hbox1), hbox_pred, FALSE, FALSE, 0);
|
||||
|
||||
|
||||
predicate_label = gtk_label_new(_("Predicate"));
|
||||
gtk_widget_show(predicate_label);
|
||||
gtk_box_pack_start(GTK_BOX(hbox1), predicate_label,
|
||||
gtk_box_pack_start(GTK_BOX(hbox_pred), predicate_label,
|
||||
FALSE, FALSE, 0);
|
||||
|
||||
predicate_combo = gtk_combo_new();
|
||||
gtk_widget_show(predicate_combo);
|
||||
predicate_combo = combobox_text_new(FALSE, _("contains"),
|
||||
_("does not contain"), NULL);
|
||||
gtk_widget_set_size_request(predicate_combo, 120, -1);
|
||||
predicate_list = GTK_COMBO(predicate_combo)->list;
|
||||
gtk_entry_set_editable(GTK_ENTRY(GTK_COMBO(predicate_combo)->entry),
|
||||
FALSE);
|
||||
|
||||
combo_items = NULL;
|
||||
|
||||
for (i = 0; i < (gint) (sizeof(predicate_text) / sizeof(gchar *)); i++) {
|
||||
combo_items = g_list_append(combo_items,
|
||||
(gpointer) _(predicate_text[i]));
|
||||
}
|
||||
gtk_combo_set_popdown_strings(GTK_COMBO(predicate_combo), combo_items);
|
||||
|
||||
g_list_free(combo_items);
|
||||
|
||||
gtk_box_pack_start(GTK_BOX(hbox1), predicate_combo,
|
||||
gtk_box_pack_start(GTK_BOX(vbox_pred), predicate_combo,
|
||||
FALSE, FALSE, 0);
|
||||
gtk_box_pack_start(GTK_BOX(hbox_pred), vbox_pred, FALSE, FALSE, 0);
|
||||
|
||||
/* predicate flag */
|
||||
|
||||
predicate_flag_combo = gtk_combo_new();
|
||||
gtk_widget_hide(predicate_flag_combo);
|
||||
predicate_flag_combo = combobox_text_new(FALSE, _("yes"), _("no"), NULL);
|
||||
gtk_widget_set_size_request(predicate_flag_combo, 120, -1);
|
||||
predicate_flag_list = GTK_COMBO(predicate_flag_combo)->list;
|
||||
gtk_entry_set_editable(GTK_ENTRY(GTK_COMBO(predicate_flag_combo)->entry), FALSE);
|
||||
|
||||
combo_items = NULL;
|
||||
|
||||
for (i = 0; i < (gint) (sizeof(predicate_text) / sizeof(gchar *)); i++) {
|
||||
combo_items = g_list_append(combo_items, (gpointer) _(predicate_flag_text[i]));
|
||||
}
|
||||
gtk_combo_set_popdown_strings(GTK_COMBO(predicate_flag_combo),
|
||||
combo_items);
|
||||
|
||||
g_list_free(combo_items);
|
||||
|
||||
gtk_box_pack_start(GTK_BOX(hbox1), predicate_flag_combo,
|
||||
gtk_box_pack_start(GTK_BOX(vbox_pred), predicate_flag_combo,
|
||||
FALSE, FALSE, 0);
|
||||
|
||||
vbox3 = gtk_vbox_new(FALSE, 0);
|
||||
|
@ -734,23 +614,8 @@ static void prefs_matcher_create(void)
|
|||
gtk_box_pack_start(GTK_BOX(btn_hbox), bool_op_label,
|
||||
FALSE, FALSE, 0);
|
||||
|
||||
bool_op_combo = gtk_combo_new();
|
||||
gtk_widget_show(bool_op_combo);
|
||||
bool_op_combo = combobox_text_new(FALSE, _("or"), _("and"), NULL);
|
||||
gtk_widget_set_size_request(bool_op_combo, 60, -1);
|
||||
bool_op_list = GTK_COMBO(bool_op_combo)->list;
|
||||
gtk_entry_set_editable(GTK_ENTRY(GTK_COMBO(bool_op_combo)->entry),
|
||||
FALSE);
|
||||
|
||||
combo_items = NULL;
|
||||
|
||||
for (i = 0; i < (gint) (sizeof(bool_op_text) / sizeof(gchar *)); i++) {
|
||||
combo_items = g_list_append(combo_items,
|
||||
(gpointer) _(bool_op_text[i]));
|
||||
}
|
||||
gtk_combo_set_popdown_strings(GTK_COMBO(bool_op_combo), combo_items);
|
||||
|
||||
g_list_free(combo_items);
|
||||
|
||||
gtk_box_pack_start(GTK_BOX(btn_hbox), bool_op_combo,
|
||||
FALSE, FALSE, 0);
|
||||
|
||||
|
@ -807,7 +672,7 @@ static void prefs_matcher_create(void)
|
|||
|
||||
matcher.ok_btn = ok_btn;
|
||||
|
||||
matcher.criteria_list = criteria_list;
|
||||
matcher.criteria_combo = criteria_combo;
|
||||
matcher.header_combo = header_combo;
|
||||
matcher.header_entry = header_entry;
|
||||
matcher.header_label = header_label;
|
||||
|
@ -819,13 +684,11 @@ static void prefs_matcher_create(void)
|
|||
matcher.addressbook_folder_label = addressbook_folder_label;
|
||||
matcher.addressbook_folder_combo = addressbook_folder_combo;
|
||||
matcher.predicate_label = predicate_label;
|
||||
matcher.predicate_list = predicate_list;
|
||||
matcher.predicate_combo = predicate_combo;
|
||||
matcher.predicate_flag_list = predicate_flag_list;
|
||||
matcher.predicate_flag_combo = predicate_flag_combo;
|
||||
matcher.case_checkbtn = case_checkbtn;
|
||||
matcher.regexp_checkbtn = regexp_checkbtn;
|
||||
matcher.bool_op_list = bool_op_list;
|
||||
matcher.bool_op_combo = bool_op_combo;
|
||||
matcher.test_btn = test_btn;
|
||||
matcher.addressbook_select_btn = addressbook_select_btn;
|
||||
matcher.color_optmenu = color_optmenu;
|
||||
|
@ -834,7 +697,7 @@ static void prefs_matcher_create(void)
|
|||
matcher.cond_list_view = cond_list_view;
|
||||
|
||||
matcher.selected_criteria = -1;
|
||||
prefs_matcher_criteria_select(GTK_LIST(criteria_list), NULL, NULL);
|
||||
prefs_matcher_criteria_select(criteria_combo, NULL);
|
||||
}
|
||||
|
||||
/*!
|
||||
|
@ -872,12 +735,12 @@ static void prefs_matcher_list_view_set_row(GtkTreeIter *row, MatcherProp *prop)
|
|||
*/
|
||||
static void prefs_matcher_reset_condition(void)
|
||||
{
|
||||
gtk_list_select_item(GTK_LIST(matcher.criteria_list), 0);
|
||||
gtk_list_select_item(GTK_LIST(matcher.predicate_list), 0);
|
||||
gtk_combo_box_set_active(GTK_COMBO_BOX(matcher.criteria_combo), CRITERIA_ALL);
|
||||
gtk_combo_box_set_active(GTK_COMBO_BOX(matcher.predicate_combo), PREDICATE_CONTAINS);
|
||||
gtk_entry_set_text(GTK_ENTRY(matcher.header_entry), "");
|
||||
gtk_entry_set_text(GTK_ENTRY(matcher.header_addr_entry), "");
|
||||
gtk_entry_set_text(GTK_ENTRY(matcher.value_entry), "");
|
||||
gtk_entry_set_text(GTK_ENTRY(GTK_COMBO(matcher.addressbook_folder_combo)->entry), "");
|
||||
gtk_entry_set_text(GTK_ENTRY(GTK_BIN(matcher.addressbook_folder_combo)->child), "");
|
||||
}
|
||||
|
||||
/*!
|
||||
|
@ -906,7 +769,7 @@ static void prefs_matcher_set_dialog(MatcherList *matchers)
|
|||
bool_op = matchers->bool_and;
|
||||
}
|
||||
|
||||
gtk_list_select_item(GTK_LIST(matcher.bool_op_list), bool_op);
|
||||
gtk_combo_box_set_active(GTK_COMBO_BOX(matcher.bool_op_combo), bool_op);
|
||||
|
||||
prefs_matcher_reset_condition();
|
||||
}
|
||||
|
@ -952,7 +815,7 @@ static MatcherList *prefs_matcher_get_list(void)
|
|||
}
|
||||
} while (gtk_tree_model_iter_next(model, &iter));
|
||||
|
||||
bool_and = get_sel_from_list(GTK_LIST(matcher.bool_op_list));
|
||||
bool_and = gtk_combo_box_get_active(GTK_COMBO_BOX(matcher.bool_op_combo));
|
||||
|
||||
matchers = matcherlist_new(matcher_list, bool_and);
|
||||
|
||||
|
@ -1261,12 +1124,12 @@ static MatcherProp *prefs_matcher_dialog_to_matcher(void)
|
|||
gint value;
|
||||
const gchar *value_str;
|
||||
|
||||
value_criteria = get_sel_from_list(GTK_LIST(matcher.criteria_list));
|
||||
value_criteria = gtk_combo_box_get_active(GTK_COMBO_BOX(matcher.criteria_combo));
|
||||
|
||||
criteria = prefs_matcher_get_matching_from_criteria(value_criteria);
|
||||
|
||||
value_pred = get_sel_from_list(GTK_LIST(matcher.predicate_list));
|
||||
value_pred_flag = get_sel_from_list(GTK_LIST(matcher.predicate_flag_list));
|
||||
value_pred = gtk_combo_box_get_active(GTK_COMBO_BOX(matcher.predicate_combo));
|
||||
value_pred_flag = gtk_combo_box_get_active(GTK_COMBO_BOX(matcher.predicate_flag_combo));
|
||||
|
||||
use_regexp = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(matcher.regexp_checkbtn));
|
||||
case_sensitive = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(matcher.case_checkbtn));
|
||||
|
@ -1395,7 +1258,7 @@ static MatcherProp *prefs_matcher_dialog_to_matcher(void)
|
|||
|
||||
case CRITERIA_FOUND_IN_ADDRESSBOOK:
|
||||
header = gtk_entry_get_text(GTK_ENTRY(matcher.header_addr_entry));
|
||||
expr = gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(matcher.addressbook_folder_combo)->entry));
|
||||
expr = gtk_entry_get_text(GTK_ENTRY(GTK_BIN(matcher.addressbook_folder_combo)->child));
|
||||
|
||||
if (*header == '\0') {
|
||||
alertpanel_error(_("Header name is not set."));
|
||||
|
@ -1633,19 +1496,17 @@ static void prefs_matcher_enable_widget(GtkWidget* widget)
|
|||
/*!
|
||||
*\brief Change widgets depending on the selected condition
|
||||
*
|
||||
*\param list List widget
|
||||
*\param widget Not used
|
||||
*\param criteria combo widget
|
||||
*\param user_data Not used
|
||||
*/
|
||||
static void prefs_matcher_criteria_select(GtkList *list,
|
||||
GtkWidget *widget,
|
||||
static void prefs_matcher_criteria_select(GtkWidget *widget,
|
||||
gpointer user_data)
|
||||
{
|
||||
gint value, old_value;
|
||||
|
||||
old_value = matcher.selected_criteria;
|
||||
matcher.selected_criteria = value = get_sel_from_list
|
||||
(GTK_LIST(matcher.criteria_list));
|
||||
matcher.selected_criteria = value = gtk_combo_box_get_active
|
||||
(GTK_COMBO_BOX(matcher.criteria_combo));
|
||||
|
||||
if (old_value == matcher.selected_criteria)
|
||||
return;
|
||||
|
@ -1985,10 +1846,10 @@ static void prefs_matcher_addressbook_select(void)
|
|||
gchar *folderpath = NULL;
|
||||
gboolean ret = FALSE;
|
||||
|
||||
folderpath = (gchar *) gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(matcher.addressbook_folder_combo)->entry));
|
||||
folderpath = (gchar *) gtk_entry_get_text(GTK_ENTRY(GTK_BIN(matcher.addressbook_folder_combo)->child));
|
||||
ret = addressbook_folder_selection(&folderpath);
|
||||
if ( ret != FALSE && folderpath != NULL)
|
||||
gtk_entry_set_text(GTK_ENTRY(GTK_COMBO(matcher.addressbook_folder_combo)->entry), folderpath);
|
||||
gtk_entry_set_text(GTK_ENTRY(GTK_BIN(matcher.addressbook_folder_combo)->child), folderpath);
|
||||
}
|
||||
|
||||
|
||||
|
@ -2104,7 +1965,7 @@ static gboolean prefs_matcher_selected(GtkTreeSelection *selector,
|
|||
|
||||
criteria = prefs_matcher_get_criteria_from_matching(prop->criteria);
|
||||
if (criteria != -1)
|
||||
gtk_list_select_item(GTK_LIST(matcher.criteria_list),
|
||||
gtk_combo_box_set_active(GTK_COMBO_BOX(matcher.criteria_combo),
|
||||
criteria);
|
||||
|
||||
switch(prop->criteria) {
|
||||
|
@ -2194,7 +2055,7 @@ static gboolean prefs_matcher_selected(GtkTreeSelection *selector,
|
|||
expr = prop->expr;
|
||||
|
||||
gtk_entry_set_text(GTK_ENTRY(matcher.header_addr_entry), header);
|
||||
gtk_entry_set_text(GTK_ENTRY(GTK_COMBO(matcher.addressbook_folder_combo)->entry), expr);
|
||||
gtk_entry_set_text(GTK_ENTRY(GTK_BIN(matcher.addressbook_folder_combo)->child), expr);
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -2223,11 +2084,15 @@ static gboolean prefs_matcher_selected(GtkTreeSelection *selector,
|
|||
}
|
||||
|
||||
if (negative_cond) {
|
||||
gtk_list_select_item(GTK_LIST(matcher.predicate_list), 1);
|
||||
gtk_list_select_item(GTK_LIST(matcher.predicate_flag_list), 1);
|
||||
gtk_combo_box_set_active(GTK_COMBO_BOX(matcher.predicate_combo),
|
||||
PREDICATE_DOES_NOT_CONTAIN);
|
||||
gtk_combo_box_set_active(GTK_COMBO_BOX(matcher.predicate_flag_combo),
|
||||
PREDICATE_FLAG_DISABLED);
|
||||
} else {
|
||||
gtk_list_select_item(GTK_LIST(matcher.predicate_list), 0);
|
||||
gtk_list_select_item(GTK_LIST(matcher.predicate_flag_list), 0);
|
||||
gtk_combo_box_set_active(GTK_COMBO_BOX(matcher.predicate_combo),
|
||||
PREDICATE_CONTAINS);
|
||||
gtk_combo_box_set_active(GTK_COMBO_BOX(matcher.predicate_flag_combo),
|
||||
PREDICATE_FLAG_ENABLED);
|
||||
}
|
||||
|
||||
switch(prop->matchtype) {
|
||||
|
|
|
@ -36,6 +36,7 @@
|
|||
|
||||
#include "gtk/gtkutils.h"
|
||||
#include "gtk/prefswindow.h"
|
||||
#include "combobox.h"
|
||||
|
||||
#include "manage_window.h"
|
||||
#ifdef HAVE_LIBETPAN
|
||||
|
@ -106,15 +107,13 @@ static void prefs_keybind_select(void)
|
|||
gtk_box_pack_start (GTK_BOX (hbox1), label, FALSE, FALSE, 0);
|
||||
gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_LEFT);
|
||||
|
||||
combo = gtk_combo_new ();
|
||||
gtk_box_pack_start (GTK_BOX (hbox1), combo, TRUE, TRUE, 0);
|
||||
gtkut_combo_set_items (GTK_COMBO (combo),
|
||||
combo = combobox_text_new(FALSE,
|
||||
_("Default"),
|
||||
"Mew / Wanderlust",
|
||||
"Mutt",
|
||||
_("Old Sylpheed"),
|
||||
NULL);
|
||||
gtk_editable_set_editable(GTK_EDITABLE(GTK_COMBO (combo)->entry), FALSE);
|
||||
gtk_box_pack_start (GTK_BOX (hbox1), combo, TRUE, TRUE, 0);
|
||||
|
||||
hbox1 = gtk_hbox_new (FALSE, 8);
|
||||
gtk_box_pack_start (GTK_BOX (vbox1), hbox1, FALSE, FALSE, 0);
|
||||
|
@ -198,7 +197,7 @@ static void prefs_keybind_apply(struct KeyBind keybind[], gint num)
|
|||
|
||||
static void prefs_keybind_apply_clicked(GtkWidget *widget)
|
||||
{
|
||||
GtkEntry *entry = GTK_ENTRY(GTK_COMBO(keybind.combo)->entry);
|
||||
GtkEntry *entry = GTK_ENTRY(GTK_BIN(keybind.combo)->child);
|
||||
const gchar *text;
|
||||
struct KeyBind *menurc;
|
||||
gint n_menurc;
|
||||
|
|
|
@ -37,6 +37,7 @@
|
|||
|
||||
#include "stock_pixmap.h"
|
||||
#include "manage_window.h"
|
||||
#include "combobox.h"
|
||||
#include "gtkutils.h"
|
||||
#include "mainwindow.h"
|
||||
#include "alertpanel.h"
|
||||
|
@ -334,28 +335,17 @@ static void prefs_toolbar_set_displayed(ToolbarPage *prefs_toolbar)
|
|||
|
||||
static void prefs_toolbar_populate(ToolbarPage *prefs_toolbar)
|
||||
{
|
||||
GList *cur;
|
||||
GSList *cur2;
|
||||
GSList *cur;
|
||||
gchar *act, *act_name;
|
||||
|
||||
gtk_combo_box_append_text(GTK_COMBO_BOX(prefs_toolbar->item_type_combo),
|
||||
_("Internal Function"));
|
||||
gtk_combo_box_append_text(GTK_COMBO_BOX(prefs_toolbar->item_type_combo),
|
||||
_("User Action"));
|
||||
gtk_combo_box_append_text(GTK_COMBO_BOX(prefs_toolbar->item_type_combo),
|
||||
_("Separator"));
|
||||
|
||||
prefs_toolbar->combo_action_list = toolbar_get_action_items(prefs_toolbar->source);
|
||||
for(cur = prefs_toolbar->combo_action_list; cur != NULL; cur = cur->next) {
|
||||
act = (gchar *)cur->data;
|
||||
gtk_combo_box_append_text(GTK_COMBO_BOX(prefs_toolbar->item_func_combo),
|
||||
act);
|
||||
}
|
||||
|
||||
combobox_set_popdown_strings(GTK_COMBO_BOX(prefs_toolbar->item_func_combo),
|
||||
prefs_toolbar->combo_action_list);
|
||||
|
||||
/* get currently defined sylpheed actions */
|
||||
if (prefs_common.actions_list != NULL) {
|
||||
for (cur2 = prefs_common.actions_list; cur2 != NULL; cur2 = cur2->next) {
|
||||
act = (gchar *)cur2->data;
|
||||
for (cur = prefs_common.actions_list; cur != NULL; cur = cur->next) {
|
||||
act = (gchar *)cur->data;
|
||||
get_action_name(act, &act_name);
|
||||
|
||||
gtk_combo_box_append_text(
|
||||
|
@ -367,7 +357,6 @@ static void prefs_toolbar_populate(ToolbarPage *prefs_toolbar)
|
|||
|
||||
}
|
||||
|
||||
gtk_combo_box_set_active(GTK_COMBO_BOX(prefs_toolbar->item_type_combo), 0);
|
||||
gtk_combo_box_set_active(GTK_COMBO_BOX(prefs_toolbar->item_func_combo), 0);
|
||||
gtk_combo_box_set_active(GTK_COMBO_BOX(prefs_toolbar->item_action_combo), 0);
|
||||
|
||||
|
@ -828,7 +817,8 @@ static void prefs_toolbar_create(ToolbarPage *prefs_toolbar)
|
|||
(GtkAttachOptions) (GTK_FILL),
|
||||
(GtkAttachOptions) (0), 0, 0);
|
||||
|
||||
item_type_combo = gtk_combo_box_new_text();
|
||||
item_type_combo = combobox_text_new(FALSE, _("Internal Function"),
|
||||
_("User Action"), _("Separator"), NULL);
|
||||
gtk_widget_set_size_request(item_type_combo, 200, -1);
|
||||
gtk_table_attach(GTK_TABLE(table), item_type_combo, 1, 3, 0, 1,
|
||||
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
|
||||
|
@ -1224,6 +1214,9 @@ static gboolean set_list_selected(GtkTreeSelection *selector,
|
|||
}
|
||||
}
|
||||
|
||||
gtk_widget_show(prefs_toolbar->item_action_combo);
|
||||
gtk_widget_hide(prefs_toolbar->item_func_combo);
|
||||
|
||||
g_free(icon_text);
|
||||
g_free(descr);
|
||||
|
||||
|
@ -1247,6 +1240,8 @@ static gboolean set_list_selected(GtkTreeSelection *selector,
|
|||
|
||||
gtk_combo_box_set_active(GTK_COMBO_BOX(
|
||||
prefs_toolbar->item_type_combo),ITEM_FUNCTION);
|
||||
gtk_widget_hide(prefs_toolbar->item_action_combo);
|
||||
gtk_widget_show(prefs_toolbar->item_func_combo);
|
||||
|
||||
g_free(icon_text);
|
||||
g_free(descr);
|
||||
|
|
Loading…
Reference in a new issue