Fixed a FIXME to not use the OS-specific g_path_*() stuff.

2003-11-20  Jeffrey Stedfast  <fejj@ximian.com>

	* em-folder-tree.c (emft_popup_rename_folder): Fixed a FIXME to
	not use the OS-specific g_path_*() stuff.

svn path=/trunk/; revision=23458
This commit is contained in:
Jeffrey Stedfast
2003-11-20 16:46:18 +00:00
committed by Jeffrey Stedfast
parent 0a13b57295
commit 807e7a3c19
2 changed files with 33 additions and 22 deletions
+5
View File
@@ -1,3 +1,8 @@
2003-11-20 Jeffrey Stedfast <fejj@ximian.com>
* em-folder-tree.c (emft_popup_rename_folder): Fixed a FIXME to
not use the OS-specific g_path_*() stuff.
2003-11-19 Jeffrey Stedfast <fejj@ximian.com>
* em-folder-selector.c (emfs_create_name_activate): Emit the
+28 -22
View File
@@ -103,12 +103,6 @@ enum {
static guint signals[LAST_SIGNAL] = { 0 };
#define MESSAGE_RFC822_TYPE "message/rfc822"
#define TEXT_URI_LIST_TYPE "text/uri-list"
#define UID_LIST_TYPE "x-uid-list"
#define FOLDER_TYPE "x-folder"
/* Drag & Drop types */
enum DndDragType {
DND_DRAG_TYPE_FOLDER, /* drag an evo folder */
@@ -123,17 +117,17 @@ enum DndDropType {
};
static GtkTargetEntry drag_types[] = {
{ UID_LIST_TYPE, 0, DND_DRAG_TYPE_FOLDER },
{ TEXT_URI_LIST_TYPE, 0, DND_DRAG_TYPE_TEXT_URI_LIST },
{ "x-uid-list", 0, DND_DRAG_TYPE_FOLDER },
{ "text/uri-list", 0, DND_DRAG_TYPE_TEXT_URI_LIST },
};
static const int num_drag_types = sizeof (drag_types) / sizeof (drag_types[0]);
static GtkTargetEntry drop_types[] = {
{ UID_LIST_TYPE, 0, DND_DROP_TYPE_UID_LIST },
{ FOLDER_TYPE, 0, DND_DROP_TYPE_FOLDER },
{ MESSAGE_RFC822_TYPE, 0, DND_DROP_TYPE_MESSAGE_RFC822 },
{ TEXT_URI_LIST_TYPE, 0, DND_DROP_TYPE_TEXT_URI_LIST },
{ "x-uid-list" , 0, DND_DROP_TYPE_UID_LIST },
{ "x-folder", 0, DND_DROP_TYPE_FOLDER },
{ "message/rfc822", 0, DND_DROP_TYPE_MESSAGE_RFC822 },
{ "text/uri-list", 0, DND_DROP_TYPE_TEXT_URI_LIST },
};
static const int num_drop_types = sizeof (drop_types) / sizeof (drop_types[0]);
@@ -1000,9 +994,9 @@ em_folder_tree_get_folder_info__got (struct _mail_msg *mm)
/* get the first child (which will be a dummy node) */
gtk_tree_model_iter_children ((GtkTreeModel *) model, &iter, &root);
/* FIXME: camel is totally on crack here, @top's folder info
* should be @fi and fi->child should be what we want to fill
* our tree with... *sigh* */
/* FIXME: camel's IMAP code is totally on crack here, @top's
* folder info should be @fi and fi->child should be what we
* want to fill our tree with... *sigh* */
if (m->top && !strcmp (m->fi->full_name, m->top)) {
if (!(fi = m->fi->child))
fi = m->fi->sibling;
@@ -1367,7 +1361,6 @@ emft_popup_new_folder_response (EMFolderSelector *emfs, int response, EMFolderTr
camel_object_unref (store);
/* FIXME: camel_store_create_folder should just take full path names */
full_name = path[0] == '/' ? path + 1 : path;
namebuf = g_strdup (full_name);
if (!(name = strrchr (namebuf, '/'))) {
@@ -1547,10 +1540,12 @@ emft_popup_rename_folder (GtkWidget *item, EMFolderTree *emft)
struct _EMFolderTreePrivate *priv = emft->priv;
char *prompt, *folder_path, *name, *new_name, *uri;
GtkTreeSelection *selection;
const char *full_name, *p;
gboolean done = FALSE;
GtkTreeModel *model;
GtkTreeIter iter;
CamelStore *store;
GtkTreeIter iter;
size_t base_len;
selection = gtk_tree_view_get_selection (priv->treeview);
gtk_tree_selection_get_selected (selection, &model, &iter);
@@ -1559,6 +1554,12 @@ emft_popup_rename_folder (GtkWidget *item, EMFolderTree *emft)
COL_POINTER_CAMEL_STORE, &store,
COL_STRING_URI, &uri, -1);
full_name = folder_path[0] == '/' ? folder_path + 1 : folder_path;
if ((p = strrchr (full_name, '/')))
base_len = (size_t) (p - full_name);
else
base_len = 0;
prompt = g_strdup_printf (_("Rename the \"%s\" folder to:"), name);
while (!done) {
const char *why;
@@ -1570,11 +1571,17 @@ emft_popup_rename_folder (GtkWidget *item, EMFolderTree *emft)
} else {
CamelFolderInfo *fi;
CamelException ex;
char *base, *path;
char *path, *p;
/* FIXME: we can't use the os independent path crap here, since we want to control the format */
base = g_path_get_dirname (folder_path);
path = g_build_filename (base, new_name, NULL);
if (base_len > 0) {
path = g_malloc (base_len + strlen (new_name) + 2);
memcpy (path, full_name, base_len);
p = path + base_len;
*p++ = '/';
strcpy (p, new_name);
} else {
path = g_strdup (new_name);
}
camel_exception_init (&ex);
if ((fi = camel_store_get_folder_info (store, path, CAMEL_STORE_FOLDER_INFO_FAST, &ex)) != NULL) {
@@ -1602,7 +1609,6 @@ emft_popup_rename_folder (GtkWidget *item, EMFolderTree *emft)
}
g_free (path);
g_free (base);
}
g_free (new_name);