diff src/layout_image.c @ 783:d6a7fb4b8e7c

replaced directory path with FileData* dir_fd
author nadvornik
date Tue, 03 Jun 2008 19:44:19 +0000
parents 477f48ba28d8
children 0be132a51f51
line wrap: on
line diff
--- a/src/layout_image.c	Tue Jun 03 15:54:05 2008 +0000
+++ b/src/layout_image.c	Tue Jun 03 19:44:19 2008 +0000
@@ -442,7 +442,7 @@
 	else
 		{
 		lw->slideshow = slideshow_start(lw->image, lw,
-				layout_list_get_index(lw, layout_image_get_path(lw)),
+				layout_list_get_index(lw, layout_image_get_fd(lw)),
 				layout_image_slideshow_stop_func, lw);
 		}
 
@@ -705,12 +705,12 @@
 static void li_set_layout_path_cb(GtkWidget *widget, gpointer data)
 {
 	LayoutWindow *lw = data;
-	const gchar *path;
+	FileData *fd;
 
 	if (!layout_valid(&lw)) return;
 
-	path = layout_image_get_path(lw);
-	if (path) layout_set_path(lw, path);
+	fd = layout_image_get_fd(lw);
+	if (fd) layout_set_fd(lw, fd);
 }
 
 static gint li_check_if_current_path(LayoutWindow *lw, const gchar *path)
@@ -718,10 +718,10 @@
 	gchar *dirname;
 	gint ret;
 
-	if (!path || !layout_valid(&lw) || !lw->path) return FALSE;
+	if (!path || !layout_valid(&lw) || !lw->dir_fd) return FALSE;
 
 	dirname = g_path_get_dirname(path);
-	ret = (strcmp(lw->path, dirname) == 0);
+	ret = (strcmp(lw->dir_fd->path, dirname) == 0);
 	g_free(dirname);
 	return ret;
 }
@@ -887,15 +887,18 @@
 				{
 				gchar *base;
 				gint row;
+				FileData *dir_fd;
 
 				base = remove_level_from_path(fd->path);
-				if (strcmp(base, layout_get_path(lw)) != 0)
+				dir_fd = file_data_new_simple(base);
+				if (dir_fd != lw->dir_fd)
 					{
-					layout_set_path(lw, base);
+					layout_set_fd(lw, dir_fd);
 					}
+				file_data_unref(dir_fd);
 				g_free(base);
 
-				row = layout_list_get_index(lw, fd->path);
+				row = layout_list_get_index(lw, fd);
 				if (source && info_list)
 					{
 					layout_image_set_collection(lw, source, info_list->data);
@@ -911,7 +914,7 @@
 				}
 			else if (isdir(fd->path))
 				{
-				layout_set_path(lw, fd->path);
+				layout_set_fd(lw, fd);
 				layout_image_set_fd(lw, NULL);
 				}
 			}
@@ -982,14 +985,14 @@
 	LayoutWindow *lw = data;
 	if (context->action == GDK_ACTION_MOVE)
 		{
-		const gchar *path;
+		FileData *fd;
 		gint row;
 
-		path = layout_image_get_path(lw);
-		row = layout_list_get_index(lw, path);
+		fd = layout_image_get_fd(lw);
+		row = layout_list_get_index(lw, fd);
 		if (row < 0) return;
 
-		if (!isfile(path))
+		if (!isfile(fd->path))
 			{
 			if ((guint) row < layout_list_count(lw, NULL) - 1)
 				{
@@ -1154,7 +1157,7 @@
 
 gint layout_image_get_index(LayoutWindow *lw)
 {
-	return layout_list_get_index(lw, image_get_path(lw->image));
+	return layout_list_get_index(lw, image_get_fd(lw->image));
 }
 
 /*
@@ -1205,7 +1208,7 @@
 
 	if (!layout_valid(&lw)) return;
 
-	old = layout_list_get_index(lw, layout_image_get_path(lw));
+	old = layout_list_get_index(lw, layout_image_get_fd(lw));
 	fd = layout_list_get_fd(lw, index);
 
 	if (old > index)
@@ -1366,7 +1369,7 @@
 	if (layout_selection_count(lw, 0) > 1)
 		{
 		GList *x = layout_selection_list_by_index(lw);
-		gint old = layout_list_get_index(lw, layout_image_get_path(lw));
+		gint old = layout_list_get_index(lw, layout_image_get_fd(lw));
 		GList *y;
 
 		for (y = x; y && (GPOINTER_TO_INT(y->data)) != old; y = y->next)
@@ -1436,7 +1439,7 @@
 	if (layout_selection_count(lw, 0) > 1)
 		{
 		GList *x = layout_selection_list_by_index(lw);
-		gint old = layout_list_get_index(lw, layout_image_get_path(lw));
+		gint old = layout_list_get_index(lw, layout_image_get_fd(lw));
 		GList *y;
 		GList *last;
 
@@ -1824,7 +1827,7 @@
 	if (fd)
 		{
 //		layout_list_sync_path(lw, path);
-		layout_set_path(lw, fd->path);
+		layout_set_fd(lw, fd);
 		}
 }