SF.net SVN: geany-plugins:[1196] trunk/geany-plugins/treebrowser
dimitrov-adrian at users.sourceforge.net
dimitrov-adrian at xxxxx
Sun Mar 21 13:15:32 UTC 2010
Revision: 1196
http://geany-plugins.svn.sourceforge.net/geany-plugins/?rev=1196&view=rev
Author: dimitrov-adrian
Date: 2010-03-21 13:15:32 +0000 (Sun, 21 Mar 2010)
Log Message:
-----------
Treebrowser, configuration dialog added.
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-21 11:12:31 UTC (rev 1195)
+++ trunk/geany-plugins/treebrowser/ChangeLog 2010-03-21 13:15:32 UTC (rev 1196)
@@ -6,6 +6,10 @@
fix few compile warnings with glib and unused vars
now directory is open when it click filling for first time
fixed possible segfault on start
+ added menu option to go up
+ fixed duplicated vbox varname now is 'sidebar_vbox'
+ added configuration dialog
+ improved externally open menu
20-03-2010 Adrian Dimitrov <dimitrov.adrian at gmail.com>
@@ -76,7 +80,7 @@
TODO
---------------------------
(DONE) codestyle improve to be same as other parts as geany`s
- * configuration dialog
+ (DONE) configuration dialog
* trackick path to current focused document
* Windows compitable
* Language files
Modified: trunk/geany-plugins/treebrowser/src/treebrowser.c
===================================================================
--- trunk/geany-plugins/treebrowser/src/treebrowser.c 2010-03-21 11:12:31 UTC (rev 1195)
+++ trunk/geany-plugins/treebrowser/src/treebrowser.c 2010-03-21 13:15:32 UTC (rev 1196)
@@ -17,8 +17,8 @@
static gint page_number = 0;
static GtkTreeStore *treestore;
static GtkWidget *treeview;
-static GtkWidget *vbox;
-static GtkWidget *vbox_bars;
+static GtkWidget *sidebar_vbox;
+static GtkWidget *sidebar_vbox_bars;
static GtkWidget *filter;
static GtkWidget *addressbar;
static gchar *addressbar_last_address = NULL;
@@ -30,6 +30,9 @@
/* ------------------
* CONFIG VARS
* ------------------ */
+
+static gchar *CONFIG_FILE = NULL;
+static gchar *CONFIG_OPEN_EXTERNAL_CMD = "nautilus '%d'";
static gint CONFIG_INITIAL_DIR_DEEP = 1;
static gboolean CONFIG_REVERSE_FILTER = FALSE;
static gboolean CONFIG_ONE_CLICK_CHDOC = FALSE;
@@ -90,7 +93,7 @@
filters = g_strsplit(gtk_entry_get_text(GTK_ENTRY(filter)), ";", 0);
- if (g_strcmp0(filters[0], "!") == 0)
+ if (utils_str_equal(filters[0], "!") == TRUE)
{
temporary_reverse = TRUE;
i = 1;
@@ -239,7 +242,7 @@
return TRUE;
}
- if (g_strcmp0(uri,uri_current) == 0)
+ 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);
@@ -294,8 +297,8 @@
static void
showbars(gboolean state)
{
- if (state) gtk_widget_show(vbox_bars);
- else gtk_widget_hide(vbox_bars);
+ if (state) gtk_widget_show(sidebar_vbox_bars);
+ else gtk_widget_hide(sidebar_vbox_bars);
CONFIG_SHOW_BARS = state;
}
@@ -352,20 +355,51 @@
* ------------------*/
static void
+on_menu_go_up(GtkMenuItem *menuitem, gpointer *user_data)
+{
+ treebrowser_chroot(g_path_get_dirname(addressbar_last_address));
+}
+
+static void
on_menu_open_externally(GtkMenuItem *menuitem, gpointer *user_data)
{
- GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview));
+ GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview));
GtkTreeIter iter;
GtkTreeModel *model;
gchar *uri;
+ gchar *cmd, *locale_cmd, *dir;
+ GString *cmd_str = g_string_new(CONFIG_OPEN_EXTERNAL_CMD);
+ GError *error = NULL;
+
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))
- utils_open_browser(uri);
+
+ dir = g_file_test(uri, G_FILE_TEST_IS_DIR) ? g_strdup(uri) : g_path_get_dirname(uri);
+
+ utils_string_replace_all(cmd_str, "%f", uri);
+ utils_string_replace_all(cmd_str, "%d", dir);
+
+ cmd = g_string_free(cmd_str, FALSE);
+ locale_cmd = utils_get_locale_from_utf8(cmd);
+ if (! g_spawn_command_line_async(locale_cmd, &error))
+ {
+ gchar *c = strchr(cmd, ' ');
+ if (c != NULL)
+ *c = '\0';
+ ui_set_statusbar(TRUE,
+ _("Could not execute configured external command '%s' (%s)."),
+ cmd, error->message);
+ g_error_free(error);
+ }
+ g_free(locale_cmd);
+ g_free(cmd);
+ g_free(dir);
+
}
+
}
static void
@@ -501,6 +535,18 @@
}
static void
+on_menu_expand_all(GtkMenuItem *menuitem, gpointer *user_data)
+{
+ gtk_tree_view_expand_all(GTK_TREE_VIEW(treeview));
+}
+
+static void
+on_menu_collapse_all(GtkMenuItem *menuitem, gpointer *user_data)
+{
+ gtk_tree_view_collapse_all(GTK_TREE_VIEW(treeview));
+}
+
+static void
on_menu_show_bars(GtkMenuItem *menuitem, gpointer *user_data)
{
showbars(gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(menuitem)));
@@ -513,6 +559,10 @@
menu = gtk_menu_new();
+ item = ui_image_menu_item_new(GTK_STOCK_GO_UP, _("Go up"));
+ gtk_container_add(GTK_CONTAINER(menu), item);
+ g_signal_connect(item, "activate", G_CALLBACK(on_menu_go_up), NULL);
+
item = ui_image_menu_item_new(GTK_STOCK_OPEN, _("Open externally"));
gtk_container_add(GTK_CONTAINER(menu), item);
g_signal_connect(item, "activate", G_CALLBACK(on_menu_open_externally), NULL);
@@ -553,6 +603,18 @@
gtk_widget_show(item);
gtk_container_add(GTK_CONTAINER(menu), item);
+ item = ui_image_menu_item_new(GTK_STOCK_GO_FORWARD, _("Expand all"));
+ gtk_container_add(GTK_CONTAINER(menu), item);
+ g_signal_connect(item, "activate", G_CALLBACK(on_menu_expand_all), NULL);
+
+ item = ui_image_menu_item_new(GTK_STOCK_GO_BACK, _("Collapse all"));
+ gtk_container_add(GTK_CONTAINER(menu), item);
+ g_signal_connect(item, "activate", G_CALLBACK(on_menu_collapse_all), NULL);
+
+ item = gtk_separator_menu_item_new();
+ gtk_widget_show(item);
+ gtk_container_add(GTK_CONTAINER(menu), item);
+
item = gtk_check_menu_item_new_with_mnemonic(_("Show bars"));
gtk_container_add(GTK_CONTAINER(menu), item);
gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item), CONFIG_SHOW_BARS);
@@ -748,8 +810,8 @@
GtkWidget *wid;
GtkTreeSelection *selection;
- vbox = gtk_vbox_new(FALSE, 0);
- vbox_bars = gtk_vbox_new(FALSE, 0);
+ 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();
@@ -758,7 +820,7 @@
scrollwin = gtk_scrolled_window_new(NULL, NULL);
page_number = gtk_notebook_append_page(GTK_NOTEBOOK(geany->main_widgets->sidebar_notebook),
- vbox, gtk_label_new(_("Tree Browser")));
+ sidebar_vbox, gtk_label_new(_("Tree Browser")));
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrollwin), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
@@ -792,12 +854,12 @@
gtk_container_add(GTK_CONTAINER(toolbar), wid);
gtk_container_add(GTK_CONTAINER(scrollwin), treeview);
- gtk_box_pack_start(GTK_BOX(vbox_bars), filter, FALSE, TRUE, 1);
- gtk_box_pack_start(GTK_BOX(vbox_bars), addressbar, FALSE, TRUE, 1);
- gtk_box_pack_start(GTK_BOX(vbox_bars), toolbar, FALSE, TRUE, 1);
+ gtk_box_pack_start(GTK_BOX(sidebar_vbox_bars), filter, FALSE, TRUE, 1);
+ gtk_box_pack_start(GTK_BOX(sidebar_vbox_bars), addressbar, FALSE, TRUE, 1);
+ gtk_box_pack_start(GTK_BOX(sidebar_vbox_bars), toolbar, FALSE, TRUE, 1);
- gtk_box_pack_start(GTK_BOX(vbox), scrollwin, TRUE, TRUE, 1);
- gtk_box_pack_start(GTK_BOX(vbox), vbox_bars, FALSE, TRUE, 1);
+ gtk_box_pack_start(GTK_BOX(sidebar_vbox), scrollwin, TRUE, TRUE, 1);
+ gtk_box_pack_start(GTK_BOX(sidebar_vbox), sidebar_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);
@@ -807,7 +869,7 @@
g_signal_connect(addressbar, "activate", G_CALLBACK(on_addressbar_activate), NULL);
g_signal_connect(filter, "activate", G_CALLBACK(on_filter_activate), NULL);
- gtk_widget_show_all(vbox);
+ gtk_widget_show_all(sidebar_vbox);
showbars(CONFIG_SHOW_BARS);
}
@@ -848,68 +910,136 @@
* CONFIG DIALOG
* ------------------ */
+static struct
+{
+ GtkWidget *OPEN_EXTERNAL_CMD;
+ GtkWidget *INITIAL_DIR_DEEP;
+ GtkWidget *REVERSE_FILTER;
+ GtkWidget *ONE_CLICK_CHDOC;
+ GtkWidget *SHOW_HIDDEN_FILES;
+ GtkWidget *SHOW_BARS;
+ GtkWidget *CHROOT_ON_DCLICK;
+ GtkWidget *FOLLOW_CURRENT_DOC;
+} configure_widgets;
+
+
static void
+load_settings(void)
+{
+ GKeyFile *config = g_key_file_new();
+ GError *error = NULL;
+ gboolean tmp;
+
+ g_key_file_load_from_file(config, CONFIG_FILE, G_KEY_FILE_NONE, NULL);
+
+ CONFIG_OPEN_EXTERNAL_CMD = g_key_file_get_string(config, "treebrowser", "open_external_cmd", &error);
+ CONFIG_INITIAL_DIR_DEEP = g_key_file_get_integer(config, "treebrowser", "initial_dir_deep", &error);
+ CONFIG_REVERSE_FILTER = g_key_file_get_boolean(config, "treebrowser", "reverse_filter", &error);
+ CONFIG_ONE_CLICK_CHDOC = g_key_file_get_boolean(config, "treebrowser", "one_click_chdoc", &error);
+ CONFIG_SHOW_HIDDEN_FILES = g_key_file_get_boolean(config, "treebrowser", "show_hidden_files", &error);
+ CONFIG_SHOW_BARS = g_key_file_get_boolean(config, "treebrowser", "show_bars", &error);
+ CONFIG_CHROOT_ON_DCLICK = g_key_file_get_boolean(config, "treebrowser", "chroot_on_dclick", &error);
+ CONFIG_FOLLOW_CURRENT_DOC = g_key_file_get_boolean(config, "treebrowser", "follow_current_doc", &error);
+
+ g_key_file_free(config);
+}
+
+static void
on_configure_response(GtkDialog *dialog, gint response, gpointer user_data)
{
if (! (response == GTK_RESPONSE_OK || response == GTK_RESPONSE_APPLY))
return;
- /*dialogs_show_msgbox(GTK_MESSAGE_INFO, "OKAY");
- */
+ CONFIG_OPEN_EXTERNAL_CMD = gtk_editable_get_chars(GTK_EDITABLE(configure_widgets.OPEN_EXTERNAL_CMD), 0, -1);
+ CONFIG_INITIAL_DIR_DEEP = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(configure_widgets.INITIAL_DIR_DEEP));
+ CONFIG_REVERSE_FILTER = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(configure_widgets.REVERSE_FILTER));
+ CONFIG_ONE_CLICK_CHDOC = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(configure_widgets.ONE_CLICK_CHDOC));
+ CONFIG_SHOW_HIDDEN_FILES = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(configure_widgets.SHOW_HIDDEN_FILES));
+ CONFIG_SHOW_BARS = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(configure_widgets.SHOW_BARS));
+ CONFIG_CHROOT_ON_DCLICK = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(configure_widgets.CHROOT_ON_DCLICK));
+ CONFIG_FOLLOW_CURRENT_DOC = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(configure_widgets.FOLLOW_CURRENT_DOC));
+ GKeyFile *config = g_key_file_new();
+ gchar *config_dir = g_path_get_dirname(CONFIG_FILE);
+ gchar *data;
+
+ g_key_file_load_from_file(config, CONFIG_FILE, G_KEY_FILE_NONE, NULL);
+ if (! g_file_test(config_dir, G_FILE_TEST_IS_DIR) && utils_mkdir(config_dir, TRUE) != 0)
+ dialogs_show_msgbox(GTK_MESSAGE_ERROR,
+ _("Plugin configuration directory could not be created."));
+ else
+ {
+ g_key_file_set_string(config, "treebrowser", "open_external_cmd", CONFIG_OPEN_EXTERNAL_CMD);
+ g_key_file_set_integer(config, "treebrowser", "initial_dir_deep", CONFIG_INITIAL_DIR_DEEP);
+ g_key_file_set_boolean(config, "treebrowser", "reverse_filter", CONFIG_REVERSE_FILTER);
+ g_key_file_set_boolean(config, "treebrowser", "one_click_chdoc", CONFIG_ONE_CLICK_CHDOC);
+ g_key_file_set_boolean(config, "treebrowser", "show_hidden_files", CONFIG_SHOW_HIDDEN_FILES);
+ g_key_file_set_boolean(config, "treebrowser", "show_bars", CONFIG_SHOW_BARS);
+ g_key_file_set_boolean(config, "treebrowser", "chroot_on_dclick", CONFIG_CHROOT_ON_DCLICK);
+ g_key_file_set_boolean(config, "treebrowser", "follow_current_doc", CONFIG_FOLLOW_CURRENT_DOC);
+
+ /* write config to file */
+ data = g_key_file_to_data(config, NULL, NULL);
+ utils_write_file(CONFIG_FILE, data);
+ g_free(data);
+ }
+
}
GtkWidget*
plugin_configure(GtkDialog *dialog)
{
- GtkWidget *label, *entry, *checkbox;
+ GtkWidget *label;
GtkWidget *vbox, *hbox;
- vbox = gtk_vbox_new(FALSE, 0);
+ vbox = gtk_vbox_new(FALSE, 0);
- label = gtk_label_new(_("This is experimental and not working for now."));
- gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0);
-
- hbox = gtk_hbox_new(FALSE, 0);
- label = gtk_label_new(_("External open command: "));
+ hbox = gtk_hbox_new(FALSE, 0);
+ label = gtk_label_new(_("External open command: "));
+ configure_widgets.OPEN_EXTERNAL_CMD = gtk_entry_new();
+ gtk_entry_set_text(GTK_ENTRY(configure_widgets.OPEN_EXTERNAL_CMD), CONFIG_OPEN_EXTERNAL_CMD);
gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
+ ui_widget_set_tooltip_text(configure_widgets.OPEN_EXTERNAL_CMD,
+ _("The command to execute when using \"Open with\". You can use %f and %d wildcards.\n"
+ "%f will be replaced with the filename including full path\n"
+ "%d will be replaced with the path name of the selected file without the filename"));
gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
- entry = gtk_entry_new();
- gtk_box_pack_start(GTK_BOX(hbox), entry, FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(hbox), configure_widgets.OPEN_EXTERNAL_CMD, FALSE, FALSE, 0);
gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 6);
- hbox = gtk_hbox_new(FALSE, 0);
- label = gtk_label_new(_("Initial directory deep: "));
+ hbox = gtk_hbox_new(FALSE, 0);
+ label = gtk_label_new(_("Default directory deep to fill: "));
+ configure_widgets.INITIAL_DIR_DEEP = gtk_spin_button_new_with_range(1, 99, 1);
+ gtk_spin_button_set_value(GTK_SPIN_BUTTON(configure_widgets.INITIAL_DIR_DEEP), CONFIG_INITIAL_DIR_DEEP);
gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
- entry = gtk_entry_new();
- gtk_box_pack_start(GTK_BOX(hbox), entry, FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(hbox), configure_widgets.INITIAL_DIR_DEEP, FALSE, FALSE, 0);
gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 6);
- checkbox = gtk_check_button_new_with_label(_("Show hidden files"));
- gtk_button_set_focus_on_click(GTK_BUTTON(checkbox), FALSE);
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbox), CONFIG_SHOW_HIDDEN_FILES);
- gtk_box_pack_start(GTK_BOX(vbox), checkbox, FALSE, FALSE, 0);
+ configure_widgets.SHOW_HIDDEN_FILES = gtk_check_button_new_with_label(_("Show hidden files"));
+ gtk_button_set_focus_on_click(GTK_BUTTON(configure_widgets.SHOW_HIDDEN_FILES), FALSE);
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(configure_widgets.SHOW_HIDDEN_FILES), CONFIG_SHOW_HIDDEN_FILES);
+ gtk_box_pack_start(GTK_BOX(vbox), configure_widgets.SHOW_HIDDEN_FILES, FALSE, FALSE, 0);
- checkbox = gtk_check_button_new_with_label(_("Reverse filter"));
- gtk_button_set_focus_on_click(GTK_BUTTON(checkbox), FALSE);
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbox), CONFIG_REVERSE_FILTER);
- gtk_box_pack_start(GTK_BOX(vbox), checkbox, FALSE, FALSE, 0);
+ configure_widgets.REVERSE_FILTER = gtk_check_button_new_with_label(_("Reverse filter"));
+ gtk_button_set_focus_on_click(GTK_BUTTON(configure_widgets.REVERSE_FILTER), FALSE);
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(configure_widgets.REVERSE_FILTER), CONFIG_REVERSE_FILTER);
+ gtk_box_pack_start(GTK_BOX(vbox), configure_widgets.REVERSE_FILTER, FALSE, FALSE, 0);
- checkbox = gtk_check_button_new_with_label(_("Follow path"));
- gtk_button_set_focus_on_click(GTK_BUTTON(checkbox), FALSE);
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbox), CONFIG_FOLLOW_CURRENT_DOC);
- gtk_box_pack_start(GTK_BOX(vbox), checkbox, FALSE, FALSE, 0);
+ configure_widgets.FOLLOW_CURRENT_DOC = gtk_check_button_new_with_label(_("Follow current document"));
+ gtk_button_set_focus_on_click(GTK_BUTTON(configure_widgets.FOLLOW_CURRENT_DOC), FALSE);
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(configure_widgets.FOLLOW_CURRENT_DOC), CONFIG_FOLLOW_CURRENT_DOC);
+ gtk_box_pack_start(GTK_BOX(vbox), configure_widgets.FOLLOW_CURRENT_DOC, FALSE, FALSE, 0);
- checkbox = gtk_check_button_new_with_label(_("On click document change"));
- gtk_button_set_focus_on_click(GTK_BUTTON(checkbox), FALSE);
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbox), CONFIG_ONE_CLICK_CHDOC);
- gtk_box_pack_start(GTK_BOX(vbox), checkbox, FALSE, FALSE, 0);
+ configure_widgets.ONE_CLICK_CHDOC = gtk_check_button_new_with_label(_("On click document change"));
+ gtk_button_set_focus_on_click(GTK_BUTTON(configure_widgets.ONE_CLICK_CHDOC), FALSE);
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(configure_widgets.ONE_CLICK_CHDOC), CONFIG_ONE_CLICK_CHDOC);
+ gtk_box_pack_start(GTK_BOX(vbox), configure_widgets.ONE_CLICK_CHDOC, FALSE, FALSE, 0);
- checkbox = gtk_check_button_new_with_label(_("Chroot on dclick"));
- gtk_button_set_focus_on_click(GTK_BUTTON(checkbox), FALSE);
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbox), CONFIG_CHROOT_ON_DCLICK);
- gtk_box_pack_start(GTK_BOX(vbox), checkbox, FALSE, FALSE, 0);
+ configure_widgets.CHROOT_ON_DCLICK = gtk_check_button_new_with_label(_("Chroot on dclick"));
+ gtk_button_set_focus_on_click(GTK_BUTTON(configure_widgets.CHROOT_ON_DCLICK), FALSE);
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(configure_widgets.CHROOT_ON_DCLICK), CONFIG_CHROOT_ON_DCLICK);
+ gtk_box_pack_start(GTK_BOX(vbox), configure_widgets.CHROOT_ON_DCLICK, FALSE, FALSE, 0);
gtk_widget_show_all(vbox);
@@ -926,6 +1056,11 @@
void
plugin_init(GeanyData *data)
{
+ CONFIG_FILE = g_strconcat(geany->app->configdir, G_DIR_SEPARATOR_S, "plugins", G_DIR_SEPARATOR_S,
+ "treebrowser", G_DIR_SEPARATOR_S, "treebrowser.conf", NULL);
+
+ load_settings();
+
treeview = create_view_and_model();
create_sidebar();
treebrowser_chroot(get_default_dir());
@@ -937,5 +1072,5 @@
void
plugin_cleanup(void)
{
- gtk_widget_destroy(GTK_WIDGET(vbox));
+ gtk_widget_destroy(GTK_WIDGET(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