/*
* Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 1999-2007 Hiroyuki Yamamoto and the Claws Mail team
+ * Copyright (C) 1999-2012 Hiroyuki Yamamoto and the Claws Mail team
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
+ * the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
*/
#ifdef HAVE_CONFIG_H
# include "config.h"
+#include "claws-features.h"
#endif
#include "defs.h"
static GtkWidget *prefs_display_header_list_view_create (const gchar *name);
static void prefs_filtering_create_list_view_columns (GtkWidget *list_view,
const gchar *name);
-static void headers_list_model_row_changed (GtkTreeModel *model,
- GtkTreePath *path,
- GtkTreeIter *iter,
- GtkTreeView *list_view);
static void headers_list_model_rows_reordered (GtkTreeModel *model,
GtkTreePath *path,
GtkTreeIter *iter,
gpointer arg,
GtkTreeView *list_view);
-static void drag_begin (GtkTreeView *list_view,
- GdkDragContext *context,
- gpointer data);
-
static void drag_end (GtkTreeView *list_view,
GdkDragContext *context,
gpointer data);
+#ifndef GENERIC_UMPC
static gchar *defaults[] =
{
"From",
"To",
"Cc",
+ "Bcc",
"Subject",
"Date",
"Reply-To",
"-Message-ID",
"-In-Reply-To",
"-References",
- "-Mime-Version",
+ "-MIME-Version",
"-Content-Type",
"-Content-Transfer-Encoding",
"-X-UIDL",
"-Priority",
"-X-Face"
};
-
+#else
+static gchar *defaults[] =
+{
+ "From",
+ "To",
+ "Cc",
+ "Bcc",
+ "Subject",
+ "Date",
+ "Newsgroups",
+ "Followup-To",
+ "-Reply-To",
+ "-Sender",
+ "-User-Agent",
+ "-X-Mailer",
+ "-Organization",
+ "-X-Newsreader",
+ "-Received",
+ "-Message-ID",
+ "-In-Reply-To",
+ "-References",
+ "-MIME-Version",
+ "-Content-Type",
+ "-Content-Transfer-Encoding",
+ "-X-UIDL",
+ "-Precedence",
+ "-Status",
+ "-Priority",
+ "-X-Face"
+};
+#endif
static void prefs_display_header_set_default(void)
{
gint i;
prefs_display_header_set_dialog();
gtk_widget_show(dispheader.window);
+ gtk_window_set_modal(GTK_WINDOW(dispheader.window), TRUE);
}
static void prefs_display_header_create(void)
window = gtkut_window_new(GTK_WINDOW_TOPLEVEL, "prefs_display_header");
gtk_container_set_border_width (GTK_CONTAINER (window), 8);
gtk_window_set_position (GTK_WINDOW (window), GTK_WIN_POS_CENTER);
- gtk_window_set_modal (GTK_WINDOW (window), TRUE);
gtk_window_set_resizable(GTK_WINDOW (window), TRUE);
vbox = gtk_vbox_new (FALSE, 6);
gtk_widget_show (hdr_label);
gtk_box_pack_start (GTK_BOX (hbox1), hdr_label, FALSE, FALSE, 0);
+#if !GTK_CHECK_VERSION(2, 24, 0)
hdr_combo = gtk_combo_box_entry_new_text();
+#else
+ hdr_combo = gtk_combo_box_text_new_with_entry();
+#endif
for(i=0; i < 9 ; i++)
+#if !GTK_CHECK_VERSION(2, 24, 0)
gtk_combo_box_append_text(GTK_COMBO_BOX (hdr_combo),
- prefs_common_translated_header_name(defaults[i]));
+#else
+ gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT (hdr_combo),
+#endif
+ (*defaults[i] == '-') ? defaults[i]+1 : defaults[i]);
gtk_combo_box_set_active(GTK_COMBO_BOX(hdr_combo), 0);
gtk_widget_show (hdr_combo);
gtk_box_pack_start (GTK_BOX (hbox1), hdr_combo, TRUE, TRUE, 0);
gtk_container_add(GTK_CONTAINER(list_view_scrolledwin), headers_list_view);
gtk_tree_view_set_reorderable(GTK_TREE_VIEW(headers_list_view), TRUE);
- g_signal_connect(G_OBJECT(headers_list_view), "drag_begin",
- G_CALLBACK(drag_begin),
- headers_list_view);
-
g_signal_connect(G_OBJECT(headers_list_view), "drag_end",
G_CALLBACK(drag_end),
headers_list_view);
fclose(fp);
}
-void prefs_display_header_write_config(void)
+static void prefs_display_header_write_config(void)
{
gchar *rcpath;
PrefFile *pfile;
DISPLAY_HEADER_RC, NULL);
if ((pfile = prefs_write_open(rcpath)) == NULL) {
- g_warning("failed to write configuration to file\n");
+ g_warning("failed to write configuration to file");
g_free(rcpath);
return;
}
g_free(rcpath);
if (prefs_file_close(pfile) < 0) {
- g_warning("failed to write configuration to file\n");
+ g_warning("failed to write configuration to file");
return;
}
}
gchar *entry_text;
GtkTreeModel *model;
+#if !GTK_CHECK_VERSION(2, 24, 0)
entry_text = gtk_combo_box_get_active_text(GTK_COMBO_BOX(dispheader.hdr_combo));
+#else
+ entry_text = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(dispheader.hdr_combo));
+#endif
if (!entry_text)
entry_text = gtk_editable_get_chars(
GTK_EDITABLE(gtk_bin_get_child(GTK_BIN(dispheader.hdr_combo))),0,-1);
GdkEventKey *event,
gpointer data)
{
- if (event && event->keyval == GDK_Escape)
+ if (event && event->keyval == GDK_KEY_Escape)
prefs_display_header_cancel();
return FALSE;
}
(GTK_TOGGLE_BUTTON(dispheader.other_headers));
prefs_display_header_write_config();
gtk_widget_hide(dispheader.window);
+ gtk_window_set_modal(GTK_WINDOW(dispheader.window), FALSE);
}
static void prefs_display_header_cancel(void)
{
prefs_display_header_read_config();
gtk_widget_hide(dispheader.window);
+ gtk_window_set_modal(GTK_WINDOW(dispheader.window), FALSE);
}
static gint prefs_display_header_deleted(GtkWidget *widget, GdkEventAny *event,
gtk_list_store_append(store, &iter);
gtk_list_store_set(store, &iter,
PREFS_HDR_HEADER,
- prefs_common_translated_header_name(name),
+ name,
PREFS_HDR_DATA, dp,
-1);
}
gtk_tree_view_append_column(GTK_TREE_VIEW(list_view), column);
}
-/*!
- *\brief Called as a result of a drag & drop
- */
-static void headers_list_model_row_changed(GtkTreeModel *model,
- GtkTreePath *path,
- GtkTreeIter *iter,
- GtkTreeView *list_view)
-{
- prefs_display_header_set_list();
-}
-
/*!
*\brief Called as a result of a gtk_list_store_swap()
*/
prefs_display_header_set_list();
}
-static void drag_begin(GtkTreeView *list_view,
- GdkDragContext *context,
- gpointer data)
-{
- /* XXX unfortunately a completed drag & drop does not emit
- * a "rows_reordered" signal, but a "row_changed" signal.
- * So during drag and drop, listen to "row_changed", and
- * update the account list accordingly */
-
- GtkTreeModel *model = gtk_tree_view_get_model(list_view);
- g_signal_connect(G_OBJECT(model), "row_changed",
- G_CALLBACK(headers_list_model_row_changed),
- list_view);
-}
-
+/*!
+ *\brief Called as a result of a drag & drop
+ */
static void drag_end(GtkTreeView *list_view,
GdkDragContext *context,
gpointer data)
{
- GtkTreeModel *model = gtk_tree_view_get_model(list_view);
- g_signal_handlers_disconnect_by_func(G_OBJECT(model),
- G_CALLBACK(headers_list_model_row_changed),
- list_view);
+ prefs_display_header_set_list();
}