SF.net SVN: geany-plugins:[1219] trunk/geany-plugins/treebrowser
dimitrov-adrian at users.sourceforge.net
dimitrov-adrian at xxxxx
Tue Mar 30 18:14:11 UTC 2010
Revision: 1219
http://geany-plugins.svn.sourceforge.net/geany-plugins/?rev=1219&view=rev
Author: dimitrov-adrian
Date: 2010-03-30 18:14:11 +0000 (Tue, 30 Mar 2010)
Log Message:
-----------
Treebrowser, fixed expaned state when create/delete/remove files or directories
Modified Paths:
--------------
trunk/geany-plugins/treebrowser/ChangeLog
trunk/geany-plugins/treebrowser/src/treebrowser.c
Modified: trunk/geany-plugins/treebrowser/ChangeLog
===================================================================
--- trunk/geany-plugins/treebrowser/ChangeLog 2010-03-28 10:31:32 UTC (rev 1218)
+++ trunk/geany-plugins/treebrowser/ChangeLog 2010-03-30 18:14:11 UTC (rev 1219)
@@ -1,6 +1,13 @@
Development release ChangeLog
-----------------------------
+
+30-03-2010 Adrian Dimitrov <dimitrov.adrian at gmail.com>
+
+ * src/treebrowser.c
+ fixed expaned state when create/delete/remove files or directories
+
+
26-03-2010 Adrian Dimitrov <dimitrov.adrian at gmail.com>
* src/treebrowser.c
@@ -112,6 +119,7 @@
* In windows can choice between devices (C:\, D:\,...)
* Windows compitable
* Language files
+ * Saving state of Showbars in config file everytime where is changed
(DONE) oneclick document opening
(DONE) filter separating ex.: "*.c;*.cpp;*.h"
* fix possible memory leaks (using g_free... where is need)
Modified: trunk/geany-plugins/treebrowser/src/treebrowser.c
===================================================================
--- trunk/geany-plugins/treebrowser/src/treebrowser.c 2010-03-28 10:31:32 UTC (rev 1218)
+++ trunk/geany-plugins/treebrowser/src/treebrowser.c 2010-03-30 18:14:11 UTC (rev 1219)
@@ -170,6 +170,7 @@
{
GtkTreeIter iter, *last_dir_iter = NULL;
gboolean is_dir;
+ gboolean expanded = FALSE;
gchar *utf8_name;
GSList *list, *node;
@@ -180,6 +181,9 @@
directory = g_strconcat(directory, G_DIR_SEPARATOR_S, NULL);
+ if (gtk_tree_view_row_expanded(GTK_TREE_VIEW(treeview), gtk_tree_model_get_path(GTK_TREE_MODEL(treestore), parent)))
+ expanded = TRUE;
+
gtk_tree_store_iter_clear_nodes(parent, FALSE);
list = utils_get_file_list(directory, NULL, NULL);
@@ -230,6 +234,9 @@
}
}
+ if (expanded)
+ gtk_tree_view_expand_row(GTK_TREE_VIEW(treeview), gtk_tree_model_get_path(GTK_TREE_MODEL(treestore), parent), FALSE);
+
}
static gboolean
@@ -350,8 +357,6 @@
for (i = 0; path_segments[i]; i++)
{
path_search = g_build_filename(path_search, path_segments[i], NULL);
- /* dialogs_show_msgbox(GTK_MESSAGE_INFO, "%s", path_search);
- */
treebrowser_search(path_search, NULL);
return FALSE;
}
@@ -445,6 +450,7 @@
GtkTreeModel *model;
gchar *uri, *uri_new;
GtkTreePath *path_parent;
+ gboolean refresh_root = FALSE;
if (gtk_tree_selection_get_selected(selection, &model, &iter))
{
@@ -457,8 +463,15 @@
gtk_tree_model_get_iter(GTK_TREE_MODEL(treestore), &iter, path_parent);
}
}
- else return;
+ else
+ {
+ refresh_root = TRUE;
+ uri = addressbar_last_address;
+ path_parent = gtk_tree_path_new_from_string("0");
+ gtk_tree_model_get_iter(GTK_TREE_MODEL(treestore), &iter, path_parent);
+ }
+
if (utils_str_equal(type, "directory"))
uri_new = g_strconcat(uri, G_DIR_SEPARATOR_S, _("NewDirectory"), NULL);
else
@@ -473,12 +486,12 @@
if (utils_str_equal(type, "directory"))
{
if (g_mkdir(uri_new, 0755) == 0)
- treebrowser_browse(uri, &iter, CONFIG_INITIAL_DIR_DEEP);
+ treebrowser_browse(uri, refresh_root ? NULL : &iter, CONFIG_INITIAL_DIR_DEEP);
}
else
{
if (g_creat(uri_new, 0755) != -1)
- treebrowser_browse(uri, &iter, CONFIG_INITIAL_DIR_DEEP);
+ treebrowser_browse(uri, refresh_root ? NULL : &iter, CONFIG_INITIAL_DIR_DEEP);
}
}
@@ -531,8 +544,10 @@
{
fs_remove(uri, TRUE);
path_parent = gtk_tree_model_get_path(GTK_TREE_MODEL(treestore), &iter);
+
if (gtk_tree_path_up(path_parent))
gtk_tree_model_get_iter(GTK_TREE_MODEL(treestore), &iter, path_parent);
+
treebrowser_browse(g_path_get_dirname(uri), &iter, CONFIG_INITIAL_DIR_DEEP);
}
}
@@ -545,20 +560,13 @@
GtkTreeIter iter;
GtkTreeModel *model;
gchar *uri;
- gboolean expanded = FALSE;
if (gtk_tree_selection_get_selected(selection, &model, &iter))
{
gtk_tree_model_get(model, &iter, TREEBROWSER_COLUMN_URI, &uri, -1);
if (g_file_test(uri, G_FILE_TEST_IS_DIR))
{
- if (gtk_tree_view_row_expanded(GTK_TREE_VIEW(treeview), gtk_tree_model_get_path(GTK_TREE_MODEL(treestore), &iter)))
- expanded = TRUE;
-
treebrowser_browse(uri, &iter, CONFIG_INITIAL_DIR_DEEP);
-
- if (expanded)
- gtk_tree_view_expand_row(GTK_TREE_VIEW(treeview), gtk_tree_model_get_path(GTK_TREE_MODEL(treestore), &iter), FALSE);
}
}
}
@@ -731,7 +739,6 @@
GtkTreeIter iter;
GtkTreeModel *model;
gchar *uri;
- gboolean expanded = FALSE;
if (gtk_tree_selection_get_selected(GTK_TREE_SELECTION(widget), &model, &iter))
{
@@ -742,14 +749,7 @@
{
if (g_file_test(uri, G_FILE_TEST_IS_DIR))
{
- if (gtk_tree_view_row_expanded(GTK_TREE_VIEW(treeview), gtk_tree_model_get_path(GTK_TREE_MODEL(treestore), &iter))
- || !gtk_tree_model_iter_has_child(GTK_TREE_MODEL(treestore), &iter))
- expanded = TRUE;
-
treebrowser_browse(uri, &iter, CONFIG_INITIAL_DIR_DEEP);
-
- if (expanded)
- gtk_tree_view_expand_row(GTK_TREE_VIEW(treeview), gtk_tree_model_get_path(GTK_TREE_MODEL(treestore), &iter), FALSE);
}
else
if (CONFIG_ONE_CLICK_CHDOC)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Plugins-Commits
mailing list