SF.net SVN: geany-plugins:[1623] trunk/geany-plugins/treebrowser
dimitrov-adrian at users.sourceforge.net
dimitrov-adrian at xxxxx
Tue Oct 5 16:45:11 UTC 2010
Revision: 1623
http://geany-plugins.svn.sourceforge.net/geany-plugins/?rev=1623&view=rev
Author: dimitrov-adrian
Date: 2010-10-05 16:45:11 +0000 (Tue, 05 Oct 2010)
Log Message:
-----------
Add option to autorename point the newest created objects by the Treebrowser; Minnor fixes.
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-10-05 14:50:41 UTC (rev 1622)
+++ trunk/geany-plugins/treebrowser/ChangeLog 2010-10-05 16:45:11 UTC (rev 1623)
@@ -3,7 +3,7 @@
| KNOWN BUGS |
+---------------------------+
- * http://sourceforge.net/tracker/?func=detail&aid=3034450&group_id=222729&atid=1056532
+ (FIXED) http://sourceforge.net/tracker/?func=detail&aid=3034450&group_id=222729&atid=1056532
* CRYTICAL warning when unloading the plugin
"CRITICAL : g_object_ref: assertion `object->ref_count > 0' failed"
(FIXED) Double click on bookmarks, do nothing
@@ -31,7 +31,7 @@
* Migrating to stash
* Adding keybindings for renaming/deleting/refreshing
(DONE) Add option to change bars position // requested by <dmaphy>
- * Add option to autorename point the newest created objects by the Treebrowser
+ (DONE) Add option to autorename point the newest created objects by the Treebrowser
+-------------------------------+
@@ -41,6 +41,11 @@
03-10-2010 Adrian Dimitrov <dimitrov.adrian at gmail.com>
* src/treebrowser.c
+ Added option to autorename point the newest created objects by the Treebrowser
+ Improved autorename focus while renamed is successful then close old and
+ open new file;
+ Improved dialog for nonexisting folder
+ (now apear only when toolbars is hidden)
Fixed some warnings when compiling
03-10-2010 Adrian Dimitrov <dimitrov.adrian at gmail.com>
Modified: trunk/geany-plugins/treebrowser/src/treebrowser.c
===================================================================
--- trunk/geany-plugins/treebrowser/src/treebrowser.c 2010-10-05 14:50:41 UTC (rev 1622)
+++ trunk/geany-plugins/treebrowser/src/treebrowser.c 2010-10-05 16:45:11 UTC (rev 1623)
@@ -43,7 +43,6 @@
static gboolean flag_on_expand_refresh = FALSE;
-
/* ------------------
* CONFIG VARS
* ------------------ */
@@ -261,7 +260,9 @@
if (! g_file_test(directory, G_FILE_TEST_IS_DIR))
{
- dialogs_show_msgbox(GTK_MESSAGE_ERROR, _("Directory '%s' not exists."), directory);
+ if (CONFIG_SHOW_BARS == 0)
+ dialogs_show_msgbox(GTK_MESSAGE_ERROR, _("Directory '%s' not exists."), directory);
+
return;
}
@@ -478,19 +479,17 @@
gtk_tree_model_get(GTK_TREE_MODEL(treestore), &iter, TREEBROWSER_COLUMN_URI, &uri_current, -1);
if (gtk_tree_model_iter_has_child(GTK_TREE_MODEL(treestore), &iter))
- {
if (treebrowser_search(uri, &iter))
return TRUE;
+
+ if (utils_str_equal(uri, uri_current) == TRUE)
+ {
+ path = gtk_tree_model_get_path(GTK_TREE_MODEL(treestore), &iter);
+ gtk_tree_view_expand_to_path(GTK_TREE_VIEW(treeview), path);
+ gtk_tree_view_scroll_to_cell(GTK_TREE_VIEW(treeview), path, TREEBROWSER_COLUMN_ICON, FALSE, 0, 0);
+ gtk_tree_view_set_cursor(GTK_TREE_VIEW(treeview), path, treeview_column_text, FALSE);
+ return TRUE;
}
- else
- if (utils_str_equal(uri, uri_current) == TRUE)
- {
- path = gtk_tree_model_get_path(GTK_TREE_MODEL(treestore), &iter);
- gtk_tree_view_expand_to_path(GTK_TREE_VIEW(treeview), path);
- gtk_tree_view_scroll_to_cell(GTK_TREE_VIEW(treeview), path, TREEBROWSER_COLUMN_ICON, FALSE, 0, 0);
- gtk_tree_view_set_cursor(GTK_TREE_VIEW(treeview), path, treeview_column_text, FALSE);
- return TRUE;
- }
} while(gtk_tree_model_iter_next(GTK_TREE_MODEL(treestore), &iter));
@@ -599,7 +598,35 @@
return FALSE;
}
+static gboolean
+treebrowser_iter_rename(gpointer iter)
+{
+ GtkTreeModel *model;
+ GtkTreeViewColumn *column;
+ GtkCellRenderer *renderer;
+ GtkTreePath *path;
+ GList *renderers;
+ if (gtk_tree_store_iter_is_valid(treestore, iter))
+ {
+ path = gtk_tree_model_get_path(GTK_TREE_MODEL(treestore), iter);
+ if (G_LIKELY(path != NULL))
+ {
+ column = gtk_tree_view_get_column(GTK_TREE_VIEW(treeview), 0);
+ renderers = _gtk_cell_layout_get_cells(column);
+ renderer = g_list_nth_data(renderers, TREEBROWSER_RENDER_TEXT);
+
+ g_object_set(G_OBJECT(renderer), "editable", TRUE, NULL);
+ gtk_tree_view_set_cursor_on_cell(GTK_TREE_VIEW(treeview), path, column, renderer, TRUE);
+
+ gtk_tree_path_free(path);
+ g_list_free(renderers);
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
/* ------------------
* RIGHTCLICK MENU EVENTS
* ------------------*/
@@ -710,13 +737,24 @@
{
if (g_mkdir(uri_new, 0755) == 0)
treebrowser_browse(uri, refresh_root ? NULL : &iter);
+ else
+ return;
}
else
{
if (g_creat(uri_new, 0755) != -1)
treebrowser_browse(uri, refresh_root ? NULL : &iter);
+ else
+ return;
}
+ if (treebrowser_search(uri_new, NULL))
+ {
+ selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview));
+ if (gtk_tree_selection_get_selected(selection, &model, &iter))
+ treebrowser_iter_rename(&iter);
+ }
+
}
static void
@@ -725,27 +763,9 @@
GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview));
GtkTreeIter iter;
GtkTreeModel *model;
- GtkTreeViewColumn *column;
- GtkCellRenderer *renderer;
- GtkTreePath *path;
- GList *renderers;
if (gtk_tree_selection_get_selected(selection, &model, &iter))
- {
- path = gtk_tree_model_get_path(GTK_TREE_MODEL(treestore), &iter);
- if (G_LIKELY(path != NULL))
- {
- column = gtk_tree_view_get_column(GTK_TREE_VIEW(treeview), 0);
- renderers = _gtk_cell_layout_get_cells(column);
- renderer = g_list_nth_data(renderers, TREEBROWSER_RENDER_TEXT);
-
- g_object_set(G_OBJECT(renderer), "editable", TRUE, NULL);
- gtk_tree_view_set_cursor_on_cell(GTK_TREE_VIEW(treeview), path, column, renderer, TRUE);
-
- gtk_tree_path_free(path);
- g_list_free(renderers);
- }
- }
+ treebrowser_iter_rename(&iter);
}
static void
@@ -765,7 +785,7 @@
if (dialogs_show_question(_("Do you really want to delete '%s' ?"), uri))
{
- if (CONFIG_ON_DELETE_CLOSE_FILE && ! g_file_test(uri, G_FILE_TEST_IS_DIR))
+ if (CONFIG_ON_DELETE_CLOSE_FILE && !g_file_test(uri, G_FILE_TEST_IS_DIR))
document_close(document_find_by_filename(uri));
fs_remove(uri, TRUE);
@@ -1178,6 +1198,10 @@
}
else
treebrowser_browse(g_path_get_dirname(uri_new), NULL);
+
+ if (!g_file_test(uri, G_FILE_TEST_IS_DIR))
+ if (document_close(document_find_by_filename(uri)))
+ document_open_file(uri_new, FALSE, NULL, NULL);
}
}
}
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