SF.net SVN: geany-plugins:[1239] trunk/geany-plugins/treebrowser

dimitrov-adrian at users.sourceforge.net dimitrov-adrian at xxxxx
Sun Apr 11 16:43:36 UTC 2010


Revision: 1239
          http://geany-plugins.svn.sourceforge.net/geany-plugins/?rev=1239&view=rev
Author:   dimitrov-adrian
Date:     2010-04-11 16:43:28 +0000 (Sun, 11 Apr 2010)

Log Message:
-----------
Treebrowser:

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-04-11 15:46:52 UTC (rev 1238)
+++ trunk/geany-plugins/treebrowser/ChangeLog	2010-04-11 16:43:28 UTC (rev 1239)
@@ -1,5 +1,11 @@
 
 +---------------------------+
+| KNOWN BUGS                |
++---------------------------+
+
+	* crytical warning when unloading the plugin
+
++---------------------------+
 | TODO                      |
 +---------------------------+
 
@@ -24,6 +30,8 @@
 
 	* src/treebrowser.c
 		fixed bug when turned off "On expand refres"
+		fixed runtime crytical warnings reported in http://nopaste.geany.org/p/m3f018a3e
+			and thanks to Enrico to help with gdb :)
 
 
 10-04-2010 	Adrian Dimitrov 		<dimitrov.adrian at gmail.com>

Modified: trunk/geany-plugins/treebrowser/src/treebrowser.c
===================================================================
--- trunk/geany-plugins/treebrowser/src/treebrowser.c	2010-04-11 15:46:52 UTC (rev 1238)
+++ trunk/geany-plugins/treebrowser/src/treebrowser.c	2010-04-11 16:43:28 UTC (rev 1239)
@@ -48,7 +48,7 @@
 static gboolean 			CONFIG_SHOW_BARS			= TRUE;
 static gboolean 			CONFIG_CHROOT_ON_DCLICK		= FALSE;
 static gboolean 			CONFIG_FOLLOW_CURRENT_DOC 	= TRUE;
-static gboolean 			CONFIG_ON_EXPAND_REFRESH 	= FALSE;
+static gboolean 			CONFIG_ON_EXPAND_REFRESH 	= TRUE;
 static gboolean 			CONFIG_ON_DELETE_CLOSE_FILE = TRUE;
 
 
@@ -235,6 +235,15 @@
 										-1);
 					if (deep_limit > 0)
 						treebrowser_browse(uri, &iter, deep_limit);
+					else
+					{
+						gtk_tree_store_append(treestore, &iter, &iter);
+						gtk_tree_store_set(treestore, &iter,
+										TREEBROWSER_COLUMN_ICON, 	NULL,
+										TREEBROWSER_COLUMN_NAME, 	g_strdup_printf("(%s)", _("Empty")),
+										TREEBROWSER_COLUMN_URI, 	NULL,
+										-1);
+					}
 				}
 				else
 				{
@@ -512,9 +521,7 @@
 		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);
@@ -680,10 +687,10 @@
 	item = gtk_separator_menu_item_new();
 	gtk_container_add(GTK_CONTAINER(menu), item);
 
-	/*
-	 * this is no more needen, when is initialized from create_sidebar()
+
+
 	menu_showbars = gtk_check_menu_item_new_with_mnemonic(_("Show bars"));
-	*/
+
 	gtk_container_add(GTK_CONTAINER(menu), menu_showbars);
 	gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menu_showbars), CONFIG_SHOW_BARS);
 	g_signal_connect(menu_showbars, "activate", G_CALLBACK(on_menu_show_bars), NULL);
@@ -916,6 +923,37 @@
  * TREEBROWSER INITIAL FUNCTIONS
  * ------------------ */
 
+static GtkWidget*
+create_view_and_model(void)
+{
+
+	GtkWidget 			*view;
+
+	view 					= gtk_tree_view_new();
+	treeview_column_icon	= gtk_tree_view_column_new();
+	treeview_column_text	= gtk_tree_view_column_new();
+	render_icon 			= gtk_cell_renderer_pixbuf_new();
+	render_text 			= gtk_cell_renderer_text_new();
+
+	gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(view), FALSE);
+
+	gtk_tree_view_append_column(GTK_TREE_VIEW(view), treeview_column_text);
+
+	gtk_tree_view_column_pack_start(treeview_column_text, render_icon, FALSE);
+	gtk_tree_view_column_set_attributes(treeview_column_text, render_icon, "stock-id", TREEBROWSER_RENDER_ICON, NULL);
+
+	gtk_tree_view_column_pack_start(treeview_column_text, render_text, TRUE);
+	gtk_tree_view_column_add_attribute(treeview_column_text, render_text, "text", TREEBROWSER_RENDER_TEXT);
+
+	treestore = gtk_tree_store_new(TREEBROWSER_COLUMNC, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING);
+
+	gtk_tree_view_set_model(GTK_TREE_VIEW(view), GTK_TREE_MODEL(treestore));
+
+	g_signal_connect(G_OBJECT(render_text), "edited", G_CALLBACK(on_treeview_renamed), view);
+
+	return view;
+}
+
 static void
 create_sidebar(void)
 {
@@ -924,21 +962,15 @@
 	GtkWidget 			*wid;
 	GtkTreeSelection 	*selection;
 
-
-	menu_showbars = gtk_check_menu_item_new_with_mnemonic(_("Show bars"));
-
+	treeview 			= create_view_and_model();
+	menu_showbars 		= gtk_check_menu_item_new();
 	sidebar_vbox 		= gtk_vbox_new(FALSE, 0);
 	sidebar_vbox_bars 	= gtk_vbox_new(FALSE, 0);
-
 	selection 			= gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview));
 	addressbar 			= gtk_entry_new();
 	filter 				= gtk_entry_new();
-
 	scrollwin 			= gtk_scrolled_window_new(NULL, NULL);
 
-	page_number 		= gtk_notebook_append_page(GTK_NOTEBOOK(geany->main_widgets->sidebar_notebook),
-							sidebar_vbox, gtk_label_new(_("Tree Browser")));
-
 	gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrollwin), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
 
 	toolbar = gtk_toolbar_new();
@@ -998,41 +1030,13 @@
 
 	gtk_widget_show_all(sidebar_vbox);
 
+	page_number = gtk_notebook_append_page(GTK_NOTEBOOK(geany->main_widgets->sidebar_notebook),
+							sidebar_vbox, gtk_label_new(_("Tree Browser")));
+
 	showbars(CONFIG_SHOW_BARS);
 }
 
-static GtkWidget*
-create_view_and_model(void)
-{
 
-	GtkWidget 			*view;
-
-	view 					= gtk_tree_view_new();
-	treeview_column_icon	= gtk_tree_view_column_new();
-	treeview_column_text	= gtk_tree_view_column_new();
-	render_icon 			= gtk_cell_renderer_pixbuf_new();
-	render_text 			= gtk_cell_renderer_text_new();
-
-	gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(view), FALSE);
-
-	gtk_tree_view_append_column(GTK_TREE_VIEW(view), treeview_column_text);
-
-	gtk_tree_view_column_pack_start(treeview_column_text, render_icon, FALSE);
-	gtk_tree_view_column_set_attributes(treeview_column_text, render_icon, "stock-id", TREEBROWSER_RENDER_ICON, NULL);
-
-	gtk_tree_view_column_pack_start(treeview_column_text, render_text, TRUE);
-	gtk_tree_view_column_add_attribute(treeview_column_text, render_text, "text", TREEBROWSER_RENDER_TEXT);
-
-	treestore = gtk_tree_store_new(TREEBROWSER_COLUMNC, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING);
-
-	gtk_tree_view_set_model(GTK_TREE_VIEW(view), GTK_TREE_MODEL(treestore));
-
-	g_signal_connect(G_OBJECT(render_text), "edited", G_CALLBACK(on_treeview_renamed), view);
-
-	return view;
-}
-
-
 /* ------------------
  * CONFIG DIALOG
  * ------------------ */
@@ -1222,8 +1226,6 @@
 	flag_on_expand_refresh = FALSE;
 
 	load_settings();
-
-	treeview = create_view_and_model();
 	create_sidebar();
 	treebrowser_chroot(get_default_dir());
 
@@ -1234,5 +1236,6 @@
 void
 plugin_cleanup(void)
 {
-	gtk_widget_destroy(GTK_WIDGET(sidebar_vbox));
+	gtk_object_destroy(GTK_OBJECT(treeview));
+	gtk_widget_destroy(sidebar_vbox);
 }


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