2004-08-30 [colin] 0.9.12cvs84.2
authorColin Leroy <colin@colino.net>
Mon, 30 Aug 2004 08:08:06 +0000 (08:08 +0000)
committerColin Leroy <colin@colino.net>
Mon, 30 Aug 2004 08:08:06 +0000 (08:08 +0000)
* src/mimeview.c
* src/prefs_themes.c
* src/gtk/filesel.c
* src/gtk/filesel.h
Add a folder-mode selection (fixes mimeview's "Save all")

ChangeLog-gtk2.claws
PATCHSETS
configure.ac
src/gtk/filesel.c
src/gtk/filesel.h
src/mimeview.c
src/prefs_themes.c

index 975532ec34b85f55b1d71bba33f0d6e12e5cb33a..606c9f9119231aeefcb4cb11cd8110b0e93d39e3 100644 (file)
@@ -1,3 +1,11 @@
+2004-08-30 [colin]     0.9.12cvs84.2
+
+       * src/mimeview.c
+       * src/prefs_themes.c
+       * src/gtk/filesel.c
+       * src/gtk/filesel.h
+               Add a folder-mode selection (fixes mimeview's "Save all")
+
 2004-08-29 [colin]     0.9.12cvs84.1
 
        * src/mimeview.c
index 3191b16f240edb4163fda99f0bb559eafc71bb94..e98ee19320be90872a7339a90651d1f8a4955af7 100644 (file)
--- a/PATCHSETS
+++ b/PATCHSETS
 ( cvs diff -u -r 1.65.2.12 -r 1.65.2.13 src/codeconv.c; ) > 0.9.12cvs82.4.patchset
 ( cvs diff -u -r 1.396.2.8 -r 1.396.2.9 ChangeLog; cvs diff -u -r 1.2504.2.16 -r 1.2504.2.17 ChangeLog.claws; cvs diff -u -r 1.391.2.8 -r 1.391.2.9 ChangeLog.jp; cvs diff -u -r 1.79.2.3 -r 1.79.2.4 src/mh.c; cvs diff -u -r 1.47.2.8 -r 1.47.2.9 src/procheader.c; cvs diff -u -r 1.150.2.7 -r 1.150.2.8 src/procmsg.c; cvs diff -u -r 1.60.2.6 -r 1.60.2.7 src/procmsg.h; cvs diff -u -r 1.36.2.6 -r 1.36.2.7 src/common/utils.c; cvs diff -u -r 1.4.2.4 -r 1.4.2.5 src/gtk/menu.h; cvs diff -u -r 1.21 -r 1.22 po/bg.po; cvs diff -u -r 1.9 -r 1.10 po/cs.po; cvs diff -u -r 1.58.2.3 -r 1.58.2.4 po/de.po; cvs diff -u -r 1.9 -r 1.10 po/el.po; cvs diff -u -r 1.12.2.1 -r 1.12.2.2 po/en_GB.po; cvs diff -u -r 1.60.2.4 -r 1.60.2.5 po/es.po; cvs diff -u -r 1.42.2.4 -r 1.42.2.5 po/fr.po; cvs diff -u -r 1.7.2.1 -r 1.7.2.2 po/hr.po; cvs diff -u -r 1.5 -r 1.6 po/hu.po; cvs diff -u -r 1.34.2.3 -r 1.34.2.4 po/it.po; cvs diff -u -r 1.16.2.2 -r 1.16.2.3 po/ja.po; cvs diff -u -r 1.8 -r 1.9 po/ko.po; cvs diff -u -r 1.28 -r 1.29 po/nl.po; cvs diff -u -r 1.10.2.4 -r 1.10.2.5 po/pl.po; cvs diff -u -r 1.50.2.2 -r 1.50.2.3 po/pt_BR.po; cvs diff -u -r 1.17.2.1 -r 1.17.2.2 po/ru.po; cvs diff -u -r 1.2.2.4 -r 1.2.2.5 po/sk.po; cvs diff -u -r 1.17.2.4 -r 1.17.2.5 po/sr.po; cvs diff -u -r 1.4 -r 1.5 po/sv.po; cvs diff -u -r 1.5.2.3 -r 1.5.2.4 po/zh_CN.po; cvs diff -u -r 1.11 -r 1.12 po/zh_TW.Big5.po; ) > 0.9.12cvs83.1.patchset
 ( cvs diff -u -r 1.83.2.16 -r 1.83.2.17 src/mimeview.c; ) > 0.9.12cvs84.1.patchset
+( cvs diff -u -r 1.83.2.17 -r 1.83.2.18 src/mimeview.c; cvs diff -u -r 1.3.2.7 -r 1.3.2.8 src/prefs_themes.c; cvs diff -u -r 1.2.2.11 -r 1.2.2.12 src/gtk/filesel.c; cvs diff -u -r 1.1.4.2 -r 1.1.4.3 src/gtk/filesel.h; ) > 0.9.12cvs84.2.patchset
index f39e9472c70860b847dd05b0c58f6365db3ec83e..a656aa83ddbc7ef157c353d694b69db841cf1150 100644 (file)
@@ -13,7 +13,7 @@ INTERFACE_AGE=0
 BINARY_AGE=0
 EXTRA_VERSION=84
 EXTRA_RELEASE=
-EXTRA_GTK2_VERSION=.1
+EXTRA_GTK2_VERSION=.2
 
 if test \( $EXTRA_VERSION -eq 0 \) -o \( "x$EXTRA_RELEASE" != "x" \); then
     VERSION=${MAJOR_VERSION}.${MINOR_VERSION}.${MICRO_VERSION}${EXTRA_RELEASE}${EXTRA_GTK2_VERSION}
index 27ca1500732d504933f3dc88c0e26d7ff4e82c16..483e6f04d5b9b8f0462a0903e53e41e91a88db46 100644 (file)
 static gchar *last_selected_dir = NULL;
 static GList *filesel_create(const gchar *title, const gchar *path, 
                             gboolean multiple_files,
-                            gboolean open)
+                            gboolean open, gboolean folder_mode)
 {
        GSList *slist = NULL, *slist_orig = NULL;
        GList *list = NULL;
 
-       gint action = (open == TRUE) ? GTK_FILE_CHOOSER_ACTION_OPEN:GTK_FILE_CHOOSER_ACTION_SAVE;
+       gint action = (open == TRUE) ? 
+                       (folder_mode == TRUE ? GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER:
+                                              GTK_FILE_CHOOSER_ACTION_OPEN):
+                       GTK_FILE_CHOOSER_ACTION_SAVE;
+                       
        gchar * action_btn = (open == TRUE) ? GTK_STOCK_OPEN:GTK_STOCK_SAVE;
        GtkWidget *chooser = gtk_file_chooser_dialog_new (title, NULL, action, 
                                GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
@@ -75,7 +79,8 @@ static GList *filesel_create(const gchar *title, const gchar *path,
                        realpath = strdup(get_home_dir());
                }
                gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(chooser), realpath);
-               gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER(chooser), filename);
+               if (action == GTK_FILE_CHOOSER_ACTION_SAVE)
+                       gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER(chooser), filename);
                free(realpath);
        } else {
                if (!last_selected_dir)
@@ -121,7 +126,7 @@ static GList *filesel_create(const gchar *title, const gchar *path,
  */
 GList *filesel_select_multiple_files_open(const gchar *title)
 {
-       return filesel_create(title, NULL, TRUE, TRUE);
+       return filesel_create(title, NULL, TRUE, TRUE, FALSE);
 }
 
 /**
@@ -132,9 +137,9 @@ GList *filesel_select_multiple_files_open(const gchar *title)
  * @param path the optional path to save to
  */
 static gchar *filesel_select_file(const gchar *title, const gchar *path,
-                                 gboolean open)
+                                 gboolean open, gboolean folder_mode)
 {
-       GList * list = filesel_create(title, path, FALSE, open);
+       GList * list = filesel_create(title, path, FALSE, open, folder_mode);
        gchar * result = NULL;
        if (list) {
                result = strdup(list->data);
@@ -144,10 +149,16 @@ static gchar *filesel_select_file(const gchar *title, const gchar *path,
 }
 gchar *filesel_select_file_open(const gchar *title, const gchar *path)
 {
-       return filesel_select_file (title, path, TRUE);
+       return filesel_select_file (title, path, TRUE, FALSE);
 }
 
 gchar *filesel_select_file_save(const gchar *title, const gchar *path)
 {
-       return filesel_select_file (title, path, FALSE);
+       return filesel_select_file (title, path, FALSE, FALSE);
 }
+
+gchar *filesel_select_file_open_folder(const gchar *title, const gchar *path)
+{
+       return filesel_select_file (title, path, TRUE, TRUE);
+}
+
index c864b35a469fcb48624840b19f91c6610d9c94a2..b1518a4890d280cbe9460b7078a3c68154e044cc 100644 (file)
@@ -24,6 +24,7 @@
 
 gchar *filesel_select_file_open(const gchar *title, const gchar *path);
 gchar *filesel_select_file_save(const gchar *title, const gchar *path);
+gchar *filesel_select_file_open_folder(const gchar *title, const gchar *path);
 
 GList *filesel_select_multiple_files_open(const gchar *title);
 
index edd792609c6ac0dc21a6120193bc908aab4e47fd..42fc4e29495bf7ba10371d76a3e9e2753914d02c 100644 (file)
@@ -1058,7 +1058,7 @@ static void mimeview_save_all(MimeView *mimeview)
                startdir = g_strconcat(prefs_common.attach_save_dir,
                                       G_DIR_SEPARATOR_S, NULL);
 
-       dirname = filesel_select_file_open(_("Select destination folder"), startdir);
+       dirname = filesel_select_file_open_folder(_("Select destination folder"), startdir);
        if (!dirname) {
                if (startdir) g_free(startdir);
                return;
index 36cf475bac52bbddec7f7af4c2fb5cf9cf868424..40f2e7c056c16065f043006ab8cbfcd437e74228 100644 (file)
@@ -459,7 +459,7 @@ static void prefs_themes_btn_install_clicked_cb(GtkWidget *widget, gpointer data
        AlertValue  val = 0;
        ThemesData *tdata = prefs_themes_data;
        
-       filename = filesel_select_file_open(_("Select theme folder"), NULL);
+       filename = filesel_select_file_open_folder(_("Select theme folder"), NULL);
        if (filename == NULL) 
                return;