2 * Claws Mail -- a GTK based, lightweight, and fast e-mail client
3 * Copyright (C) 1999-2022 Hiroyuki Yamamoto and the Claws Mail team
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 3 of the License, or
8 * (at your option) any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
21 #include "claws-features.h"
26 #include <glib/gi18n.h>
29 #include "inputdialog.h"
30 #include "alertpanel.h"
31 #include "mainwindow.h"
35 #define SETUP_DIALOG_WIDTH 540
37 static void scan_tree_func(Folder
*folder
, FolderItem
*item
, gpointer data
);
39 gboolean
setup_write_mailbox_path(MainWindow
*mainwin
, const gchar
*path
)
44 if (!path
) return FALSE
;
45 if (folder_find_from_path(path
)) {
46 g_warning("the mailbox already exists");
50 base
= g_path_get_basename(path
);
51 folder
= folder_new(mh_get_class(), !strcmp(path
, "Mail") ? _("Mailbox") : base
, path
);
53 if (folder
->klass
->create_tree(folder
) < 0) {
54 alertpanel_error(_("Creation of the mailbox failed.\n"
55 "Maybe some files already exist, or you don't have the permission to write there."));
56 folder_destroy(folder
);
62 folder_set_ui_func(folder
, scan_tree_func
, mainwin
);
63 folder_scan_tree(folder
, TRUE
);
64 folder_set_ui_func(folder
, NULL
, NULL
);
69 static void scan_tree_func(Folder
*folder
, FolderItem
*item
, gpointer data
)
71 MainWindow
*mainwin
= (MainWindow
*)data
;
75 str
= g_strdup_printf(_("Scanning folder %s%c%s..."),
76 LOCAL_FOLDER(folder
)->rootpath
,
80 str
= g_strdup_printf(_("Scanning folder %s..."),
81 LOCAL_FOLDER(folder
)->rootpath
);
83 if (mainwin
->statusbar
)
84 gtk_statusbar_push(GTK_STATUSBAR(mainwin
->statusbar
),
85 mainwin
->mainwin_cid
, str
);
87 if (mainwin
->statusbar
)
88 gtk_statusbar_pop(GTK_STATUSBAR(mainwin
->statusbar
),
89 mainwin
->mainwin_cid
);