SF.net SVN: geany-plugins:[1191] trunk/geany-plugins/treebrowser
dimitrov-adrian at users.sourceforge.net
dimitrov-adrian at xxxxx
Sat Mar 20 18:02:27 UTC 2010
Revision: 1191
http://geany-plugins.svn.sourceforge.net/geany-plugins/?rev=1191&view=rev
Author: dimitrov-adrian
Date: 2010-03-20 18:02:27 +0000 (Sat, 20 Mar 2010)
Log Message:
-----------
Temporary filter reverse and changelog updating
Modified Paths:
--------------
trunk/geany-plugins/treebrowser/AUTHORS
trunk/geany-plugins/treebrowser/ChangeLog
trunk/geany-plugins/treebrowser/src/treebrowser.c
Modified: trunk/geany-plugins/treebrowser/AUTHORS
===================================================================
--- trunk/geany-plugins/treebrowser/AUTHORS 2010-03-20 12:09:27 UTC (rev 1190)
+++ trunk/geany-plugins/treebrowser/AUTHORS 2010-03-20 18:02:27 UTC (rev 1191)
@@ -0,0 +1 @@
+Adrian Dimitrov <dimitrov.adrian at gmail.com>
Modified: trunk/geany-plugins/treebrowser/ChangeLog
===================================================================
--- trunk/geany-plugins/treebrowser/ChangeLog 2010-03-20 12:09:27 UTC (rev 1190)
+++ trunk/geany-plugins/treebrowser/ChangeLog 2010-03-20 18:02:27 UTC (rev 1191)
@@ -0,0 +1,80 @@
+Development release ChangeLog
+-----------------------------
+
+
+20-03-2010 Adrian Dimitrov <dimitrov.adrian at gmail.com>
+
+ * src/treebrowser.c
+ clear comments
+ changelog update
+ if filter start with '!;' then filters are temporary reversed
+ ex.: '!;*.c;*.h' will show all expect .c and .h files
+
+19-03-2010 Adrian Dimitrov <dimitrov.adrian at gmail.com>
+
+ * src/treebrowser.c
+ clear up the syntax and function names
+ fixed many bugs with renaming/creating/deleting objects
+ added multiple filtering criterias (separated by ';')
+ added oneclick document opening
+
+
+18-03-2010 Adrian Dimitrov <dimitrov.adrian at gmail.com>
+
+ * src/treebrowser.c
+ add option to reverse filematch filter
+
+
+17-03-2010 Adrian Dimitrov <dimitrov.adrian at gmail.com>
+
+ * src/treebrowser.c
+ migrated to dialogs_show_msgbox and dialogs_show_question
+ fix problem with path initialization
+
+
+16-03-2010 Adrian Dimitrov <dimitrov.adrian at gmail.com>
+
+ * src/treebrowser.c
+ fix compilation warning messages
+ fix some crytical errors
+
+
+21-02-2010 Adrian Dimitrov <dimitrov.adrian at gmail.com>
+
+ * src/treebrowser.c
+ fix patch applyed from Enrico about initial directories
+
+
+20-02-2010 Adrian Dimitrov <dimitrov.adrian at gmail.com>
+
+ * src/treebrowser.c
+ made strings suitable for localization
+ fixed problem with default chroot
+ added option to disable chrooting on double click on directory
+
+
+17-02-2010 Adrian Dimitrov <dimitrov.adrian at gmail.com>
+
+ * src/treebrowser.c
+ added options to add/remove/rename directories and files
+ code cleanup
+
+
+14-02-2010 Adrian Dimitrov <dimitrov.adrian at gmail.com>
+
+ * src/treebrowser.c
+ initial, with base options
+
+
+
+TODO
+---------------------------
+ (DONE) codestyle improve to be same as other parts as geany`s
+ * configuration dialog
+ * trackick path to current focused document
+ * Windows compitable
+ * Language files
+ (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-20 12:09:27 UTC (rev 1190)
+++ trunk/geany-plugins/treebrowser/src/treebrowser.c 2010-03-20 18:02:27 UTC (rev 1191)
@@ -1,57 +1,9 @@
-// treebrowser.c
-//
-// Copyright 2010 Adrian Dimitrov <dimitrov.adrian at gmail.com>
-
/*
- * TODO
- * ---------------------------
- * configuration dialog
- * trackick path to current focused document
- * Windows compitable
- * Language files
- * (DONE) oneclick document opening
- * (DONE) filter separating ex.: "*.c;*.cpp;*.h"
- * fix possible memory leaks (using g_free... where is need)
+ * treebrowser.c
*
- *
- * Development release ChangeLog
- * -----------------------------
- * (19-03-2010)
- * clear up the syntax and function names
- * fixed many bugs with renaming/creating/deleting objects
- * added multiple filtering criterias
- * added oneclick document opening
- *
- * (18-03-2010)
- * add option to reverse filematch filter
- *
- * (17-03-2010)
- * migrated to dialogs_show_msgbox and dialogs_show_question
- * fix problem with path initialization
- *
- * (16-03-2010)
- * fix compilation warning messages
- * fix some crytical errors
- *
- * (21-02-2010)
- * fix patch applyed from Enrico about initial directories
- *
- * (20-02-2010)
- * made strings suitable for localization
- * fixed problem with default chroot
- * added option to disable chrooting on double click on directory
- *
- * (17-02-2010)
- * added options to add/remove/rename directories and files
- * code cleanup
- *
- * (14-02-2010)
- * initial, with base options
- *
+ * Copyright 2010 Adrian Dimitrov <dimitrov.adrian at gmail.com>
*/
-
-
#include "geanyplugin.h"
#include "Scintilla.h"
@@ -72,9 +24,10 @@
static GtkTreeViewColumn *treeview_column_icon, *treeview_column_text;
static GtkCellRenderer *render_icon, *render_text;
-//
-// CONFIG VARS
-//
+
+/* ------------------
+ * CONFIG VARS
+ * ------------------ */
static gint CONFIG_INITIAL_DIR_DEEP = 1;
static gboolean CONFIG_REVERSE_FILTER = FALSE;
static gboolean CONFIG_ONE_CLICK_CHDOC = FALSE;
@@ -83,9 +36,10 @@
static gboolean CONFIG_CHROOT_ON_DCLICK = FALSE;
static gboolean CONFIG_FOLLOW_CURRENT_DOC = FALSE;
-//
-// TREEVIEW STRUCT
-//
+
+/* ------------------
+ * TREEVIEW STRUCT
+ * ------------------ */
enum
{
TREEBROWSER_COLUMNC = 3,
@@ -98,46 +52,55 @@
TREEBROWSER_RENDER_TEXT = 1
};
-//
-// PLUGIN INFO
-//
+/* ------------------
+ * PLUGIN INFO
+ * ------------------ */
PLUGIN_VERSION_CHECK(147)
PLUGIN_SET_INFO(_("Tree Browser"), _("Treeview filebrowser plugin."), "0.1" , "Adrian Dimitrov (dimitrov.adrian at gmail.com)")
-//
-// PREDEFINES
-//
+/* ------------------
+ * PREDEFINES
+ * ------------------ */
#define foreach_slist_free(node, list) for (node = list, list = NULL; g_slist_free_1(list), node != NULL; list = node, node = node->next)
-//
-// PROTOTYPES
-//
+/* ------------------
+ * PROTOTYPES
+ * ------------------ */
static void treebrowser_browse(gchar *directory, gpointer parent, gint deep_limit);
static void gtk_tree_store_iter_clear_nodes(gpointer iter, gboolean delete_root);
-//
-// TREEBROWSER CORE FUNCTIONS
-//
+/* ------------------
+ * TREEBROWSER CORE FUNCTIONS
+ * ------------------ */
static gboolean
check_filtered(const gchar *base_name)
{
gchar **filters;
gint i;
+ gboolean temporary_reverse = FALSE;
if (gtk_entry_get_text_length(GTK_ENTRY(filter)) < 1)
return TRUE;
filters = g_strsplit(gtk_entry_get_text(GTK_ENTRY(filter)), ";", 0);
- for (i = 0; filters[i]; i++)
+ if (g_strcmp0(filters[0], "!") == 0)
+ {
+ temporary_reverse = TRUE;
+ i = 1;
+ }
+ else
+ i = 0;
+
+ for (; filters[i]; i++)
if (utils_str_equal(base_name, "*") || g_pattern_match_simple(filters[i], base_name))
- return CONFIG_REVERSE_FILTER ? FALSE : TRUE;
+ return CONFIG_REVERSE_FILTER || temporary_reverse ? FALSE : TRUE;
- return CONFIG_REVERSE_FILTER ? TRUE : FALSE;
+ return CONFIG_REVERSE_FILTER || temporary_reverse ? TRUE : FALSE;
}
static gchar*
@@ -189,8 +152,6 @@
gchar *utf8_dir, *utf8_name;
GSList *list, *node;
- GtkTreePath *gpath;
-
if (deep_limit < 1)
return;
@@ -228,9 +189,9 @@
}
last_dir_iter = gtk_tree_iter_copy(&iter);
gtk_tree_store_set(treestore, &iter,
- TREEBROWSER_COLUMN_ICON, GTK_STOCK_DIRECTORY,
- TREEBROWSER_COLUMN_NAME, fname,
- TREEBROWSER_COLUMN_URI, uri,
+ TREEBROWSER_COLUMN_ICON, GTK_STOCK_DIRECTORY,
+ TREEBROWSER_COLUMN_NAME, fname,
+ TREEBROWSER_COLUMN_URI, uri,
-1);
treebrowser_browse(uri, &iter, deep_limit);
}
@@ -240,9 +201,9 @@
{
gtk_tree_store_append(treestore, &iter, parent);
gtk_tree_store_set(treestore, &iter,
- TREEBROWSER_COLUMN_ICON, GTK_STOCK_FILE,
- TREEBROWSER_COLUMN_NAME, fname,
- TREEBROWSER_COLUMN_URI, uri,
+ TREEBROWSER_COLUMN_ICON, GTK_STOCK_FILE,
+ TREEBROWSER_COLUMN_NAME, fname,
+ TREEBROWSER_COLUMN_URI, uri,
-1);
}
}
@@ -355,7 +316,7 @@
{
GeanyDocument *doc = document_get_current();
- gchar *path_current, *path_search = "/";
+ gchar *path_current, *path_search = G_DIR_SEPARATOR_S;
gchar **path_segments;
gint i;
@@ -371,7 +332,8 @@
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);
+ /* dialogs_show_msgbox(GTK_MESSAGE_INFO, "%s", path_search);
+ */
treebrowser_search(path_search, NULL);
return FALSE;
}
@@ -382,9 +344,9 @@
}
-//
-// RIGHTCLICK MENU EVENTS
-//
+/* ------------------
+ * RIGHTCLICK MENU EVENTS
+ * ------------------*/
static void
on_menu_open_externally(GtkMenuItem *menuitem, gpointer *user_data)
@@ -437,9 +399,7 @@
uri = g_path_get_dirname(uri);
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);
- }
}
}
else return;
@@ -510,7 +470,7 @@
{
gtk_tree_model_get(model, &iter, TREEBROWSER_COLUMN_URI, &uri, -1);
- if (dialogs_show_question(_("Do you want to remove '%s'?"), uri))
+ if (dialogs_show_question(_("Do you really want to delete '%s' ?"), uri))
{
fs_remove(uri, TRUE);
path_parent = gtk_tree_model_get_path(GTK_TREE_MODEL(treestore), &iter);
@@ -601,9 +561,9 @@
}
-//
-// TOOLBAR`S EVENTS
-//
+/* ------------------
+ * TOOLBAR`S EVENTS
+ * ------------------ */
static void
on_button_go_up(void)
@@ -643,9 +603,9 @@
}
-//
-// TREEVIEW EVENTS
-//
+/* ------------------
+ * TREEVIEW EVENTS
+ * ------------------ */
static gboolean
on_treeview_mouseclick(GtkWidget *widget, GdkEventButton *event, gpointer user_data)
@@ -765,17 +725,18 @@
}
}
-
static void
treebrowser_track_current_cb(void)
{
if (CONFIG_FOLLOW_CURRENT_DOC)
treebrowser_track_current_cb();
}
-//
-// TREEBROWSER INITIAL FUNCTIONS
-//
+
+/* ------------------
+ * TREEBROWSER INITIAL FUNCTIONS
+ * ------------------ */
+
static void
create_sidebar(void)
{
@@ -836,7 +797,7 @@
gtk_box_pack_start(GTK_BOX(vbox), vbox_bars, FALSE, TRUE, 1);
g_signal_connect(selection, "changed", G_CALLBACK(on_treeview_changed), NULL);
- g_signal_connect(treeview, "button-press-event", G_CALLBACK(on_treeview_mouseclick), selection);
+ g_signal_connect(treeview, "button-press-event", G_CALLBACK(on_treeview_mouseclick), selection);
g_signal_connect(treeview, "row-activated", G_CALLBACK(on_treeview_row_activated), NULL);
g_signal_connect(treeview, "row-collapsed", G_CALLBACK(on_treeview_row_collapsed), NULL);
g_signal_connect(treeview, "row-expanded", G_CALLBACK(on_treeview_row_expanded), NULL);
@@ -880,9 +841,9 @@
}
-//
-// CONFIG DIALOG
-//
+/* ------------------
+ * CONFIG DIALOG
+ * ------------------ */
static void
on_configure_response(GtkDialog *dialog, gint response, gpointer user_data)
@@ -890,7 +851,8 @@
if (! (response == GTK_RESPONSE_OK || response == GTK_RESPONSE_APPLY))
return;
- //dialogs_show_msgbox(GTK_MESSAGE_INFO, "OKAY");
+ /*dialogs_show_msgbox(GTK_MESSAGE_INFO, "OKAY");
+ */
}
@@ -954,9 +916,9 @@
}
-//
-// GEANY HOOKS
-//
+/* ------------------
+ * GEANY HOOKS
+ * ------------------ */
void
plugin_init(GeanyData *data)
@@ -964,10 +926,9 @@
treeview = create_view_and_model();
create_sidebar();
treebrowser_chroot(get_default_dir());
- //treebrowser_chroot("/tmp");
plugin_signal_connect(geany_plugin, NULL, "document-activate", TRUE,
- (GCallback) &treebrowser_track_current_cb, NULL);
+ (GCallback)&treebrowser_track_current_cb, NULL);
}
void
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