made the symbol list document-oriented, so it has not to be generated on every notebook switch page event

git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@65 ea778897-0a13-0410-b9d1-a72fbfd435f5
This commit is contained in:
Enrico Tröger 2005-12-18 22:08:42 +00:00
parent 90ca4650d0
commit e7e279e24b
6 changed files with 118 additions and 83 deletions

View File

@ -198,9 +198,14 @@ gint document_create_new_sci(const gchar *filename)
gtk_notebook_insert_page_menu(GTK_NOTEBOOK(app->notebook), GTK_WIDGET(sci), hbox, this.tabmenu_label, 0); gtk_notebook_insert_page_menu(GTK_NOTEBOOK(app->notebook), GTK_WIDGET(sci), hbox, this.tabmenu_label, 0);
gtk_notebook_set_current_page(GTK_NOTEBOOK(app->notebook), 0); gtk_notebook_set_current_page(GTK_NOTEBOOK(app->notebook), 0);
iter = treeviews_openfiles_add(new_idx, title); iter = treeviews_openfiles_add(new_idx, title);
g_free(title); g_free(title);
this.tag_store = NULL;
this.tag_tree = NULL;
//this.tag_tree = gtk_tree_view_new();
//gtk_widget_show(this.tag_tree);
//treeviews_prepare_taglist(this.tag_tree, this.tag_store, new_idx);
// "the" SCI signal // "the" SCI signal
g_signal_connect((GtkWidget*) sci, "sci-notify", G_CALLBACK(on_editor_notification), GINT_TO_POINTER(new_idx)); g_signal_connect((GtkWidget*) sci, "sci-notify", G_CALLBACK(on_editor_notification), GINT_TO_POINTER(new_idx));
// signal for insert-key(works without too, but to update the right status bar) // signal for insert-key(works without too, but to update the right status bar)
@ -216,7 +221,6 @@ gint document_create_new_sci(const gchar *filename)
this.scid = sciid; this.scid = sciid;
this.file_name = (filename) ? g_strdup(filename) : NULL; this.file_name = (filename) ? g_strdup(filename) : NULL;
this.sci = sci; this.sci = sci;
//this.tab_button = but;
this.encoding = NULL; this.encoding = NULL;
this.tm_file = NULL; this.tm_file = NULL;
this.iter = iter; this.iter = iter;
@ -228,7 +232,7 @@ gint document_create_new_sci(const gchar *filename)
this.do_overwrite = FALSE; this.do_overwrite = FALSE;
this.readonly = FALSE; this.readonly = FALSE;
doc_list[new_idx] = this; doc_list[new_idx] = this;
//has_tabs = TRUE;
return new_idx; return new_idx;
} }
@ -247,6 +251,11 @@ gboolean document_remove(gint page_num)
} }
gtk_notebook_remove_page(GTK_NOTEBOOK(app->notebook), page_num); gtk_notebook_remove_page(GTK_NOTEBOOK(app->notebook), page_num);
treeviews_openfiles_remove(doc_list[idx].iter); treeviews_openfiles_remove(doc_list[idx].iter);
if (GTK_IS_WIDGET(doc_list[idx].tag_tree))
{
g_object_unref(doc_list[idx].tag_tree);
gtk_widget_destroy(doc_list[idx].tag_tree);
}
msgwin_status_add(_("File %s closed."), msgwin_status_add(_("File %s closed."),
(doc_list[idx].file_name) ? doc_list[idx].file_name : GEANY_STRING_UNTITLED); (doc_list[idx].file_name) ? doc_list[idx].file_name : GEANY_STRING_UNTITLED);
g_free(doc_list[idx].encoding); g_free(doc_list[idx].encoding);
@ -258,7 +267,7 @@ gboolean document_remove(gint page_num)
doc_list[idx].tm_file = NULL; doc_list[idx].tm_file = NULL;
if (gtk_notebook_get_n_pages(GTK_NOTEBOOK(app->notebook)) == 0) if (gtk_notebook_get_n_pages(GTK_NOTEBOOK(app->notebook)) == 0)
{ {
utils_update_visible_tag_lists(-1); utils_update_tag_list(-1, FALSE);
//on_notebook1_switch_page(GTK_NOTEBOOK(app->notebook), NULL, 0, NULL); //on_notebook1_switch_page(GTK_NOTEBOOK(app->notebook), NULL, 0, NULL);
utils_set_window_title(-1); utils_set_window_title(-1);
utils_save_buttons_toggle(FALSE); utils_save_buttons_toggle(FALSE);
@ -285,7 +294,7 @@ void document_new_file(filetype *ft)
document_set_filetype(idx, (ft) ? ft : filetypes[GEANY_FILETYPES_ALL]); document_set_filetype(idx, (ft) ? ft : filetypes[GEANY_FILETYPES_ALL]);
utils_set_window_title(idx); utils_set_window_title(idx);
utils_build_show_hide(idx); utils_build_show_hide(idx);
//utils_update_visible_tag_lists(idx); //utils_update_tag_list(idx, FALSE);
doc_list[idx].mtime = time(NULL); doc_list[idx].mtime = time(NULL);
doc_list[idx].changed = FALSE; doc_list[idx].changed = FALSE;
document_set_text_changed(idx); document_set_text_changed(idx);
@ -442,7 +451,7 @@ void document_open_file(gint idx, const gchar *filename, gint pos, gboolean read
filename, gtk_notebook_get_n_pages(GTK_NOTEBOOK(app->notebook)), filename, gtk_notebook_get_n_pages(GTK_NOTEBOOK(app->notebook)),
(readonly) ? _(", read-only") : ""); (readonly) ? _(", read-only") : "");
} }
//document_update_tag_list(idx); //utils_update_tag_list(idx, FALSE);
document_set_text_changed(idx); document_set_text_changed(idx);
#ifdef GEANY_WIN32 #ifdef GEANY_WIN32
@ -748,13 +757,13 @@ void document_update_tag_list(gint idx)
// parse the file after setting the filetype // parse the file after setting the filetype
TM_SOURCE_FILE(doc_list[idx].tm_file)->lang = getNamedLanguage((doc_list[idx].file_type)->name); TM_SOURCE_FILE(doc_list[idx].tm_file)->lang = getNamedLanguage((doc_list[idx].file_type)->name);
tm_source_file_update(doc_list[idx].tm_file, TRUE, FALSE, TRUE); tm_source_file_update(doc_list[idx].tm_file, TRUE, FALSE, TRUE);
utils_update_visible_tag_lists(idx); utils_update_tag_list(idx, TRUE);
} }
else else
{ {
if (tm_source_file_update(doc_list[idx].tm_file, TRUE, FALSE, TRUE)) if (tm_source_file_update(doc_list[idx].tm_file, TRUE, FALSE, TRUE))
{ {
utils_update_visible_tag_lists(idx); utils_update_tag_list(idx, TRUE);
} }
else else
{ {

View File

@ -81,6 +81,8 @@ typedef struct document
ScintillaObject *sci; ScintillaObject *sci;
GtkWidget *tab_label; GtkWidget *tab_label;
GtkWidget *tabmenu_label; GtkWidget *tabmenu_label;
GtkWidget *tag_tree;
GtkTreeStore *tag_store;
GtkTreeIter iter; GtkTreeIter iter;
gint scid; gint scid;
gboolean readonly; gboolean readonly;
@ -103,6 +105,8 @@ typedef struct MyApp
gint toolbar_icon_style; gint toolbar_icon_style;
gint geometry[4]; gint geometry[4];
gboolean debug_mode; gboolean debug_mode;
// represents the state at startup while opening session files
gboolean opening_session_files;
gboolean have_vte; gboolean have_vte;
gboolean ignore_global_tags; gboolean ignore_global_tags;
gboolean toolbar_visible; gboolean toolbar_visible;
@ -184,6 +188,8 @@ typedef struct MyApp
GtkWidget *find_dialog; GtkWidget *find_dialog;
GtkWidget *replace_dialog; GtkWidget *replace_dialog;
GtkWidget *build_menu_item_link; GtkWidget *build_menu_item_link;
GtkWidget *default_tag_tree;
//GtkTreeStore *default_tag_store;
const TMWorkspace *tm_workspace; const TMWorkspace *tm_workspace;
GQueue *recent_queue; GQueue *recent_queue;
} MyApp; } MyApp;
@ -227,7 +233,6 @@ enum
RIGHT RIGHT
}; };
// prototype from tagmanager/parse.h, used in document.c, ugly but it works // prototype from tagmanager/parse.h, used in document.c, ugly but it works
extern langType getNamedLanguage(const char *const name); extern langType getNamedLanguage(const char *const name);

View File

@ -28,47 +28,44 @@
#include "treeviews.h" #include "treeviews.h"
/* does some preparing things to the tag list widget */ /* the following two functions are document-related, but I think they fit better here than in document.c*/
void treeviews_prepare_taglist(void) void treeviews_prepare_taglist(GtkWidget *tree, GtkTreeStore *store)
{ {
GtkCellRenderer *renderer; GtkCellRenderer *renderer;
GtkTreeViewColumn *column; GtkTreeViewColumn *column;
GtkTreeSelection *select; GtkTreeSelection *select;
tv.tree_taglist = lookup_widget(app->window, "treeview2");
tv.store_taglist = gtk_tree_store_new(1, G_TYPE_STRING);
renderer = gtk_cell_renderer_text_new(); renderer = gtk_cell_renderer_text_new();
column = gtk_tree_view_column_new_with_attributes(_("Symbols"), renderer, "text", 0, NULL); column = gtk_tree_view_column_new_with_attributes(_("Symbols"), renderer, "text", 0, NULL);
gtk_tree_view_append_column(GTK_TREE_VIEW(tv.tree_taglist), column); gtk_tree_view_append_column(GTK_TREE_VIEW(tree), column);
gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(tv.tree_taglist), FALSE); gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(tree), FALSE);
gtk_widget_modify_font(tv.tree_taglist, pango_font_description_from_string(app->tagbar_font)); gtk_widget_modify_font(tree, pango_font_description_from_string(app->tagbar_font));
gtk_tree_view_set_model(GTK_TREE_VIEW(tv.tree_taglist), GTK_TREE_MODEL(tv.store_taglist)); gtk_tree_view_set_model(GTK_TREE_VIEW(tree), GTK_TREE_MODEL(store));
// selection handling // selection handling
select = gtk_tree_view_get_selection(GTK_TREE_VIEW(tv.tree_taglist)); select = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree));
gtk_tree_selection_set_mode(select, GTK_SELECTION_SINGLE); gtk_tree_selection_set_mode(select, GTK_SELECTION_SINGLE);
g_signal_connect(G_OBJECT(select), "changed", G_CALLBACK(on_taglist_tree_selection_changed), NULL); g_signal_connect(G_OBJECT(select), "changed", G_CALLBACK(on_taglist_tree_selection_changed), NULL);
} }
void treeviews_init_tag_list(void) void treeviews_init_tag_list(gint idx)
{ {
gtk_tree_store_append(tv.store_taglist, &(tv.tag_function), NULL); gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_function), NULL);
gtk_tree_store_set(tv.store_taglist, &(tv.tag_function), 0, _("Function"), -1); gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_function), 0, _("Function"), -1);
gtk_tree_store_append(tv.store_taglist, &(tv.tag_macro), NULL); gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_macro), NULL);
gtk_tree_store_set(tv.store_taglist, &(tv.tag_macro), 0, _("Macro"), -1); gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_macro), 0, _("Macro"), -1);
gtk_tree_store_append(tv.store_taglist, &(tv.tag_member), NULL); gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_member), NULL);
gtk_tree_store_set(tv.store_taglist, &(tv.tag_member), 0, _("Members"), -1); gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_member), 0, _("Members"), -1);
gtk_tree_store_append(tv.store_taglist, &(tv.tag_variable), NULL); gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_variable), NULL);
gtk_tree_store_set(tv.store_taglist, &(tv.tag_variable), 0, _("Variables"), -1); gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_variable), 0, _("Variables"), -1);
gtk_tree_store_append(tv.store_taglist, &(tv.tag_namespace), NULL); gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_namespace), NULL);
gtk_tree_store_set(tv.store_taglist, &(tv.tag_namespace), 0, _("Namespace"), -1); gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_namespace), 0, _("Namespace"), -1);
gtk_tree_store_append(tv.store_taglist, &(tv.tag_struct), NULL); gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_struct), NULL);
gtk_tree_store_set(tv.store_taglist, &(tv.tag_struct), 0, _("Struct / Typedef"), -1); gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_struct), 0, _("Struct / Typedef"), -1);
gtk_tree_store_append(tv.store_taglist, &(tv.tag_other), NULL); gtk_tree_store_append(doc_list[idx].tag_store, &(tv.tag_other), NULL);
gtk_tree_store_set(tv.store_taglist, &(tv.tag_other), 0, _("Other"), -1); gtk_tree_store_set(doc_list[idx].tag_store, &(tv.tag_other), 0, _("Other"), -1);
} }

View File

@ -28,10 +28,9 @@
typedef struct treeviews { typedef struct treeviews {
//GtkListStore *store_taglist; //GtkTreeStore *store_taglist;
GtkTreeStore *store_taglist;
GtkListStore *store_openfiles; GtkListStore *store_openfiles;
GtkWidget *tree_taglist; //GtkWidget *tree_taglist;
GtkWidget *tree_openfiles; GtkWidget *tree_openfiles;
GtkWidget *popup_openfiles; GtkWidget *popup_openfiles;
GtkTreeIter tag_function; GtkTreeIter tag_function;
@ -47,11 +46,11 @@ treeviews tv;
void treeviews_prepare_taglist(void); void treeviews_prepare_taglist(GtkWidget *tree, GtkTreeStore *store);
gint treeviews_sort_tag_list(GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer user_data); gint treeviews_sort_tag_list(GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer user_data);
void treeviews_init_tag_list(void); void treeviews_init_tag_list(gint idx);
void treeviews_prepare_openfiles(void); void treeviews_prepare_openfiles(void);

View File

@ -655,45 +655,59 @@ void utils_set_fullscreen(void)
} }
void utils_update_visible_tag_lists(gint idx) void utils_update_tag_list(gint idx, gboolean update)
{ {
GList *tmp; GList *tmp;
const GList *tags; const GList *tags;
if (gtk_bin_get_child(GTK_BIN(app->tagbar)))
gtk_container_remove(GTK_CONTAINER(app->tagbar), gtk_bin_get_child(GTK_BIN(app->tagbar)));
if (app->default_tag_tree == NULL)
{
GtkTreeIter iter;
GtkTreeStore *store = gtk_tree_store_new(1, G_TYPE_STRING);
app->default_tag_tree = gtk_tree_view_new();
treeviews_prepare_taglist(app->default_tag_tree, store);
gtk_tree_store_append(store, &iter, NULL);
gtk_tree_store_set(store, &iter, 0, _("No tags found"), -1);
gtk_widget_show(app->default_tag_tree);
g_object_ref((gpointer)app->default_tag_tree); // to hold it after removing
}
// make all inactive, because there is no more tab left, or something strange occured // make all inactive, because there is no more tab left, or something strange occured
if (idx == -1 && app->treeview_symbol_visible) if (idx == -1 || ! app->treeview_symbol_visible || ! doc_list[idx].file_type->has_tags)
{
GtkTreeIter iter;
gtk_tree_store_clear(tv.store_taglist);
gtk_tree_store_append(tv.store_taglist, &iter, NULL);
gtk_tree_store_set(tv.store_taglist, &iter, 0, _("No tags found"), -1);
gtk_widget_set_sensitive(app->tagbar, FALSE);
return;
}
if (! doc_list[idx].file_type->has_tags)
{ {
gtk_widget_set_sensitive(app->tagbar, FALSE); gtk_widget_set_sensitive(app->tagbar, FALSE);
gtk_container_add(GTK_CONTAINER(app->tagbar), app->default_tag_tree);
return; return;
} }
//geany_debug("before %d", update);
// updating the tag list in the left tag window if visisble if (update)
if (app->treeview_symbol_visible) { // updating the tag list in the left tag window
if (doc_list[idx].tag_tree == NULL)
{ {
GtkTreeIter iter; doc_list[idx].tag_store = gtk_tree_store_new(1, G_TYPE_STRING);
doc_list[idx].tag_tree = gtk_tree_view_new();
treeviews_prepare_taglist(doc_list[idx].tag_tree, doc_list[idx].tag_store);
gtk_widget_show(doc_list[idx].tag_tree);
g_object_ref((gpointer)doc_list[idx].tag_tree); // to hold it after removing
}
tags = utils_get_tag_list(idx, tm_tag_max_t); tags = utils_get_tag_list(idx, tm_tag_max_t);
gtk_tree_store_clear(tv.store_taglist); if (doc_list[idx].tm_file != NULL && tags != NULL)
if (doc_list[idx].tm_file && tags)
{ {
GtkTreeIter iter;
GtkTreeModel *model; GtkTreeModel *model;
gtk_widget_set_sensitive(app->tagbar, TRUE);
gtk_tree_store_clear(doc_list[idx].tag_store);
// unref the store to speed up the filling(from TreeView Tutorial) // unref the store to speed up the filling(from TreeView Tutorial)
model = gtk_tree_view_get_model(GTK_TREE_VIEW(tv.tree_taglist)); model = gtk_tree_view_get_model(GTK_TREE_VIEW(doc_list[idx].tag_tree));
g_object_ref(model); // Make sure the model stays with us after the tree view unrefs it g_object_ref(model); // Make sure the model stays with us after the tree view unrefs it
gtk_tree_view_set_model(GTK_TREE_VIEW(tv.tree_taglist), NULL); // Detach model from view gtk_tree_view_set_model(GTK_TREE_VIEW(doc_list[idx].tag_tree), NULL); // Detach model from view
treeviews_init_tag_list();
treeviews_init_tag_list(idx);
for (tmp = (GList*)tags; tmp; tmp = g_list_next(tmp)) for (tmp = (GList*)tags; tmp; tmp = g_list_next(tmp))
{ {
switch (((GeanySymbol*)tmp->data)->type) switch (((GeanySymbol*)tmp->data)->type)
@ -701,59 +715,70 @@ void utils_update_visible_tag_lists(gint idx)
case tm_tag_prototype_t: case tm_tag_prototype_t:
case tm_tag_function_t: case tm_tag_function_t:
{ {
gtk_tree_store_append(tv.store_taglist, &iter, &(tv.tag_function)); gtk_tree_store_append(doc_list[idx].tag_store, &iter, &(tv.tag_function));
gtk_tree_store_set(tv.store_taglist, &iter, 0, ((GeanySymbol*)tmp->data)->str, -1); gtk_tree_store_set(doc_list[idx].tag_store, &iter, 0, ((GeanySymbol*)tmp->data)->str, -1);
break; break;
} }
case tm_tag_macro_t: case tm_tag_macro_t:
case tm_tag_macro_with_arg_t: case tm_tag_macro_with_arg_t:
{ {
gtk_tree_store_append(tv.store_taglist, &iter, &(tv.tag_macro)); gtk_tree_store_append(doc_list[idx].tag_store, &iter, &(tv.tag_macro));
gtk_tree_store_set(tv.store_taglist, &iter, 0, ((GeanySymbol*)tmp->data)->str, -1); gtk_tree_store_set(doc_list[idx].tag_store, &iter, 0, ((GeanySymbol*)tmp->data)->str, -1);
break; break;
} }
case tm_tag_member_t: case tm_tag_member_t:
{ {
gtk_tree_store_append(tv.store_taglist, &iter, &(tv.tag_member)); gtk_tree_store_append(doc_list[idx].tag_store, &iter, &(tv.tag_member));
gtk_tree_store_set(tv.store_taglist, &iter, 0, ((GeanySymbol*)tmp->data)->str, -1); gtk_tree_store_set(doc_list[idx].tag_store, &iter, 0, ((GeanySymbol*)tmp->data)->str, -1);
break; break;
} }
case tm_tag_typedef_t: case tm_tag_typedef_t:
case tm_tag_struct_t: case tm_tag_struct_t:
{ {
gtk_tree_store_append(tv.store_taglist, &iter, &(tv.tag_struct)); gtk_tree_store_append(doc_list[idx].tag_store, &iter, &(tv.tag_struct));
gtk_tree_store_set(tv.store_taglist, &iter, 0, ((GeanySymbol*)tmp->data)->str, -1); gtk_tree_store_set(doc_list[idx].tag_store, &iter, 0, ((GeanySymbol*)tmp->data)->str, -1);
break; break;
} }
case tm_tag_variable_t: case tm_tag_variable_t:
{ {
gtk_tree_store_append(tv.store_taglist, &iter, &(tv.tag_variable)); gtk_tree_store_append(doc_list[idx].tag_store, &iter, &(tv.tag_variable));
gtk_tree_store_set(tv.store_taglist, &iter, 0, ((GeanySymbol*)tmp->data)->str, -1); gtk_tree_store_set(doc_list[idx].tag_store, &iter, 0, ((GeanySymbol*)tmp->data)->str, -1);
break; break;
} }
case tm_tag_namespace_t: case tm_tag_namespace_t:
{ {
gtk_tree_store_append(tv.store_taglist, &iter, &(tv.tag_namespace)); gtk_tree_store_append(doc_list[idx].tag_store, &iter, &(tv.tag_namespace));
gtk_tree_store_set(tv.store_taglist, &iter, 0, ((GeanySymbol*)tmp->data)->str, -1); gtk_tree_store_set(doc_list[idx].tag_store, &iter, 0, ((GeanySymbol*)tmp->data)->str, -1);
break; break;
} }
default: default:
{ {
gtk_tree_store_append(tv.store_taglist, &iter, &(tv.tag_other)); gtk_tree_store_append(doc_list[idx].tag_store, &iter, &(tv.tag_other));
gtk_tree_store_set(tv.store_taglist, &iter, 0, ((GeanySymbol*)tmp->data)->str, -1); gtk_tree_store_set(doc_list[idx].tag_store, &iter, 0, ((GeanySymbol*)tmp->data)->str, -1);
} }
} }
} }
gtk_tree_view_set_model(GTK_TREE_VIEW(tv.tree_taglist), model); // Re-attach model to view gtk_tree_view_set_model(GTK_TREE_VIEW(doc_list[idx].tag_tree), model); // Re-attach model to view
g_object_unref(model); g_object_unref(model);
gtk_tree_view_expand_all(GTK_TREE_VIEW(doc_list[idx].tag_tree));
gtk_widget_set_sensitive(app->tagbar, TRUE);
gtk_container_add(GTK_CONTAINER(app->tagbar), doc_list[idx].tag_tree);
/// TODO why I have to do this here?
g_object_ref((gpointer)doc_list[idx].tag_tree);
} }
else else
{ { // tags == NULL
gtk_tree_store_append(tv.store_taglist, &iter, NULL);
gtk_tree_store_set(tv.store_taglist, &iter, 0, _("No tags found"), -1);
gtk_widget_set_sensitive(app->tagbar, FALSE); gtk_widget_set_sensitive(app->tagbar, FALSE);
gtk_container_add(GTK_CONTAINER(app->tagbar), app->default_tag_tree);
} }
} }
else
{ // update == FALSE
gtk_widget_set_sensitive(app->tagbar, TRUE);
gtk_container_add(GTK_CONTAINER(app->tagbar), doc_list[idx].tag_tree);
}
} }
@ -971,7 +996,7 @@ gboolean utils_check_disk_status(gint idx, const gboolean force)
{ {
if (force) if (force)
{ {
document_open_file(idx, NULL, 0, FALSE); document_open_file(idx, NULL, 0, doc_list[idx].readonly);
} }
else else
{ {
@ -982,7 +1007,7 @@ gboolean utils_check_disk_status(gint idx, const gboolean force)
if (dialogs_show_reload_warning(buff)) if (dialogs_show_reload_warning(buff))
{ {
document_open_file(idx, NULL, 0, FALSE); document_open_file(idx, NULL, 0, doc_list[idx].readonly);
doc_list[idx].last_check = t; doc_list[idx].last_check = t;
} }
else else

View File

@ -85,7 +85,7 @@ void utils_set_fullscreen(void);
GtkFileFilter *utils_create_file_filter(filetype *ft); GtkFileFilter *utils_create_file_filter(filetype *ft);
void utils_update_visible_tag_lists(gint idx); void utils_update_tag_list(gint idx, gboolean update);
gchar *utils_convert_to_utf8(const gchar *buffer, gsize size, gchar **used_encoding); gchar *utils_convert_to_utf8(const gchar *buffer, gsize size, gchar **used_encoding);