talons

Fork of Claws Mail https://www.claws-mail
Log | Files | Refs | README | LICENSE

commit 8489f8f0376925e0a425b4b06a9184e57972430f
parent 3d444fe79c63fdb0f06411e66758f32d0b73c0f8
Author: Holger Berndt <hb@claws-mail.org>
Date:   Fri, 13 Jun 2008 09:21:20 +0000

2008-06-13 [holger]	3.4.0cvs94

	* .cvsignore
		More files to ignore
	* src/gtk/inputdialog.c
	* src/gtk/inputdialog.h
		Make input dialog more generic so that a checkbox
		with custom text can be used in addition to the
		"remember this" checkbox
	* src/imap_gtk.c
	* src/mh_gtk.c
	* src/prefs_common.c
	* src/prefs_common.h
		Allow new folders to inherit the properties of the
		parent folder during folder creation

Diffstat:
M.cvsignore | 1+
MChangeLog | 16++++++++++++++++
MPATCHSETS | 1+
Mconfigure.ac | 2+-
Msrc/gtk/inputdialog.c | 56+++++++++++++++++++++++++++++++++++++++++++++++++++-----
Msrc/gtk/inputdialog.h | 5+++++
Msrc/imap_gtk.c | 12++++++++++--
Msrc/mh_gtk.c | 13++++++++++---
Msrc/prefs_common.c | 3+++
Msrc/prefs_common.h | 1+
10 files changed, 99 insertions(+), 11 deletions(-)

diff --git a/.cvsignore b/.cvsignore @@ -25,3 +25,4 @@ claws-mail.pc patches commitHelper.tmp *.patchset +.project diff --git a/ChangeLog b/ChangeLog @@ -1,3 +1,19 @@ +2008-06-13 [holger] 3.4.0cvs94 + + * .cvsignore + More files to ignore + * src/gtk/inputdialog.c + * src/gtk/inputdialog.h + Make input dialog more generic so that a checkbox + with custom text can be used in addition to the + "remember this" checkbox + * src/imap_gtk.c + * src/mh_gtk.c + * src/prefs_common.c + * src/prefs_common.h + Allow new folders to inherit the properties of the + parent folder during folder creation + 2008-06-13 [wwp] 3.4.0cvs93 * src/addressbook.c diff --git a/PATCHSETS b/PATCHSETS @@ -3389,3 +3389,4 @@ ( cvs diff -u -r 1.382.2.451 -r 1.382.2.452 src/compose.c; cvs diff -u -r 1.50.2.46 -r 1.50.2.47 src/compose.h; cvs diff -u -r 1.207.2.200 -r 1.207.2.201 src/folderview.c; ) > 3.4.0cvs91.patchset ( cvs diff -u -r 1.1.2.10 -r 1.1.2.11 src/addrduplicates.c; cvs diff -u -r 1.9.2.22 -r 1.9.2.23 src/addressadd.c; cvs diff -u -r 1.60.2.117 -r 1.60.2.118 src/addressbook.c; cvs diff -u -r 1.1.2.10 -r 1.1.2.11 src/addressbook_foldersel.c; cvs diff -u -r 1.11.2.18 -r 1.11.2.19 src/editgroup.c; cvs diff -u -r 1.26.2.35 -r 1.26.2.36 src/foldersel.c; ) > 3.4.0cvs92.patchset ( cvs diff -u -r 1.60.2.118 -r 1.60.2.119 src/addressbook.c; ) > 3.4.0cvs93.patchset +( cvs diff -u -r 1.8.2.6 -r 1.8.2.7 .cvsignore; cvs diff -u -r 1.1.2.56 -r 1.1.2.57 src/imap_gtk.c; cvs diff -u -r 1.2.2.30 -r 1.2.2.31 src/mh_gtk.c; cvs diff -u -r 1.204.2.171 -r 1.204.2.172 src/prefs_common.c; cvs diff -u -r 1.103.2.109 -r 1.103.2.110 src/prefs_common.h; cvs diff -u -r 1.2.2.27 -r 1.2.2.28 src/gtk/inputdialog.c; cvs diff -u -r 1.1.2.8 -r 1.1.2.9 src/gtk/inputdialog.h; ) > 3.4.0cvs94.patchset diff --git a/configure.ac b/configure.ac @@ -11,7 +11,7 @@ MINOR_VERSION=4 MICRO_VERSION=0 INTERFACE_AGE=0 BINARY_AGE=0 -EXTRA_VERSION=93 +EXTRA_VERSION=94 EXTRA_RELEASE= EXTRA_GTK2_VERSION= diff --git a/src/gtk/inputdialog.c b/src/gtk/inputdialog.c @@ -46,6 +46,8 @@ #include "gtkutils.h" #include "utils.h" #include "combobox.h" +#include "prefs_common.h" + #define INPUT_DIALOG_WIDTH 420 @@ -73,7 +75,9 @@ static gboolean is_pass = FALSE; static void input_dialog_create (gboolean is_password); static gchar *input_dialog_open (const gchar *title, const gchar *message, + const gchar *checkbtn_label, const gchar *default_string, + gboolean default_checkbtn_state, gboolean *remember); static void input_dialog_set (const gchar *title, const gchar *message, @@ -116,7 +120,7 @@ gchar *input_dialog(const gchar *title, const gchar *message, HILDON_GTK_INPUT_MODE_FULL | HILDON_GTK_INPUT_MODE_AUTOCAP); #endif - return input_dialog_open(title, message, default_string, NULL); + return input_dialog_open(title, message, NULL, default_string, FALSE, NULL); } gchar *input_dialog_with_invisible(const gchar *title, const gchar *message, @@ -141,7 +145,7 @@ gchar *input_dialog_with_invisible(const gchar *title, const gchar *message, HILDON_GTK_INPUT_MODE_FULL | HILDON_GTK_INPUT_MODE_INVISIBLE); #endif - return input_dialog_open(title, message, default_string, NULL); + return input_dialog_open(title, message, NULL, default_string, FALSE, NULL); } gchar *input_dialog_combo(const gchar *title, const gchar *message, @@ -177,7 +181,40 @@ gchar *input_dialog_combo_remember(const gchar *title, const gchar *message, combobox_unset_popdown_strings(GTK_COMBO_BOX(combo)); combobox_set_popdown_strings(GTK_COMBO_BOX(combo), list); - return input_dialog_open(title, message, default_string, remember); + return input_dialog_open(title, message, NULL, default_string, FALSE, remember); +} + +gchar *input_dialog_with_checkbtn(const gchar *title, + const gchar *message, + const gchar *default_string, + const gchar *checkbtn_label, + gboolean *checkbtn_state) +{ + if (dialog && GTK_WIDGET_VISIBLE(dialog)) return NULL; + + if (!dialog) + input_dialog_create(FALSE); + + type = INPUT_DIALOG_NORMAL; + gtk_widget_hide(combo); + gtk_widget_show(entry); + + if(checkbtn_label && checkbtn_state) + gtk_widget_show(remember_checkbtn); + else + gtk_widget_hide(remember_checkbtn); + + gtk_widget_show(icon_q); + gtk_widget_hide(icon_p); + is_pass = FALSE; + gtk_entry_set_visibility(GTK_ENTRY(entry), TRUE); +#ifdef MAEMO + hildon_gtk_entry_set_input_mode(GTK_ENTRY(entry), + HILDON_GTK_INPUT_MODE_FULL | HILDON_GTK_INPUT_MODE_AUTOCAP); +#endif + + return input_dialog_open(title, message, checkbtn_label, default_string, + prefs_common.inherit_folder_props, checkbtn_state); } gchar *input_dialog_query_password(const gchar *server, const gchar *user) @@ -308,7 +345,10 @@ static void input_dialog_create(gboolean is_password) } static gchar *input_dialog_open(const gchar *title, const gchar *message, - const gchar *default_string, gboolean *remember) + const gchar *checkbtn_label, + const gchar *default_string, + gboolean default_checkbtn_state, + gboolean *remember) { gchar *str; @@ -317,10 +357,16 @@ static gchar *input_dialog_open(const gchar *title, const gchar *message, if (!dialog) input_dialog_create(FALSE); + if(checkbtn_label) + gtk_button_set_label(GTK_BUTTON(remember_checkbtn), checkbtn_label); + else + gtk_button_set_label(GTK_BUTTON(remember_checkbtn), _("Remember this")); + input_dialog_set(title, message, default_string); gtk_widget_show(dialog); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(remember_checkbtn), FALSE); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(remember_checkbtn), + default_checkbtn_state); if (remember) gtk_widget_show(remember_checkbtn); else diff --git a/src/gtk/inputdialog.h b/src/gtk/inputdialog.h @@ -25,6 +25,11 @@ gchar *input_dialog (const gchar *title, const gchar *message, const gchar *default_string); +gchar *input_dialog_with_checkbtn(const gchar *title, + const gchar *message, + const gchar *default_string, + const gchar *checkbtn_label, + gboolean *checkbtn_state); gchar *input_dialog_with_invisible (const gchar *title, const gchar *message, const gchar *default_string); diff --git a/src/imap_gtk.c b/src/imap_gtk.c @@ -154,12 +154,15 @@ static void new_folder_cb(FolderView *folderview, guint action, g_return_if_fail(item->folder != NULL); g_return_if_fail(item->folder->account != NULL); - new_folder = input_dialog + new_folder = input_dialog_with_checkbtn (_("New folder"), _("Input the name of new folder:\n" "(if you want to create a folder to store subfolders\n" "only and no mail, append '/' to the folder name)"), - _("NewFolder")); + _("NewFolder"), + _("Inherit properties from parent folder"), + &(prefs_common.inherit_folder_props)); + if (!new_folder) return; AUTORELEASE_STR(new_folder, {g_free(new_folder); return;}); @@ -192,6 +195,11 @@ static void new_folder_cb(FolderView *folderview, guint action, alertpanel_error(_("Can't create the folder '%s'."), name); return; } + + if(prefs_common.inherit_folder_props) { + folder_item_prefs_copy_prefs(item, new_item); + } + folder_write_list(); } diff --git a/src/mh_gtk.c b/src/mh_gtk.c @@ -37,6 +37,7 @@ #include "inputdialog.h" #include "mh.h" #include "foldersel.h" +#include "prefs_common.h" static void new_folder_cb(FolderView *folderview, guint action, GtkWidget *widget); static void delete_folder_cb(FolderView *folderview, guint action, GtkWidget *widget); @@ -127,9 +128,11 @@ static void new_folder_cb(FolderView *folderview, guint action, g_return_if_fail(item != NULL); g_return_if_fail(item->folder != NULL); - new_folder = input_dialog(_("New folder"), - _("Input the name of new folder:"), - _("NewFolder")); + new_folder = input_dialog_with_checkbtn(_("New folder"), + _("Input the name of new folder:"), + _("NewFolder"), + _("Inherit properties from parent folder"), + &(prefs_common.inherit_folder_props)); if (!new_folder) return; AUTORELEASE_STR(new_folder, {g_free(new_folder); return;}); @@ -155,6 +158,10 @@ static void new_folder_cb(FolderView *folderview, guint action, return; } + if(prefs_common.inherit_folder_props) { + folder_item_prefs_copy_prefs(item, new_item); + } + folder_write_list(); } diff --git a/src/prefs_common.c b/src/prefs_common.c @@ -1116,6 +1116,9 @@ static PrefParam param[] = { {"two_line_vertical", "TRUE", &prefs_common.two_line_vert, P_BOOL, NULL, NULL, NULL }, + {"inherit_folder_properties", "FALSE", &prefs_common.inherit_folder_props, P_BOOL, + NULL, NULL, NULL}, + {NULL, NULL, NULL, P_OTHER, NULL, NULL, NULL} }; diff --git a/src/prefs_common.h b/src/prefs_common.h @@ -489,6 +489,7 @@ struct _PrefsCommon gboolean use_networkmanager; gboolean use_shred; gboolean two_line_vert; + gboolean inherit_folder_props; };