Kaydet (Commit) 6f00febd authored tarafından Enrico Tröger's avatar Enrico Tröger

Fixed crash when using "Make object" on new files(closes #1570818).


git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@866 ea778897-0a13-0410-b9d1-a72fbfd435f5
üst 90199738
2006-10-04 Enrico Tröger <enrico.troeger@uvena.de>
* src/ui_utils.c, src/main.c, src/document.c, src/callbacks.c:
Renamed ui_build_show_hide() in ui_update_build_menu().
* src/filetypes.c, src/ui_utils.c:
Fixed crash when using "Make object" on new files(closes #1570818).
2006-10-03 Enrico Tröger <enrico.troeger@uvena.de>
* src/callbacks.c: Save configuration(i.e. list of open files) as late
......
......@@ -759,7 +759,7 @@ on_notebook1_switch_page (GtkNotebook *notebook,
document_set_text_changed(idx);
ui_document_show_hide(idx); // update the document menu
ui_build_show_hide(idx);
ui_update_build_menu(idx);
ui_update_statusbar(idx, -1);
ui_set_window_title(idx);
ui_update_tag_list(idx, FALSE);
......@@ -930,7 +930,7 @@ on_file_save_dialog_response (GtkDialog *dialog,
utils_replace_filename(idx);
document_save_file(idx, TRUE);
ui_build_show_hide(idx);
ui_update_build_menu(idx);
// finally add current file to recent files menu
ui_add_recent_file(doc_list[idx].file_name);
......@@ -1648,21 +1648,25 @@ on_build_make_activate (GtkMenuItem *menuitem,
case 2: //make object
{
gchar *locale_filename, *short_file, *noext, *object_file; //temp
locale_filename = utils_get_locale_from_utf8(doc_list[idx].file_name);
short_file = g_path_get_basename(locale_filename);
g_free(locale_filename);
if (doc_list[idx].file_name != NULL)
{
locale_filename = utils_get_locale_from_utf8(doc_list[idx].file_name);
short_file = g_path_get_basename(locale_filename);
g_free(locale_filename);
noext = utils_remove_ext_from_filename(short_file);
g_free(short_file);
noext = utils_remove_ext_from_filename(short_file);
g_free(short_file);
object_file = g_strdup_printf("%s.o", noext);
g_free(noext);
object_file = g_strdup_printf("%s.o", noext);
g_free(noext);
g_free(app->build_make_custopt);
app->build_make_custopt = g_strdup(object_file);
g_free(object_file);
make_object = TRUE;
g_free(app->build_make_custopt);
app->build_make_custopt = g_strdup(object_file);
g_free(object_file);
make_object = TRUE;
}
}
// fall through
......
......@@ -354,7 +354,7 @@ gboolean document_remove(guint page_num)
ui_set_window_title(-1);
ui_save_buttons_toggle(FALSE);
ui_close_buttons_toggle();
ui_build_show_hide(-1);
ui_update_build_menu(-1);
}
}
else geany_debug("Error: idx: %d page_num: %d", idx, page_num);
......@@ -389,7 +389,7 @@ void document_new_file(filetype *ft)
document_set_filetype(idx, ft); // also clears taglist
if (ft == NULL) filetypes[GEANY_FILETYPES_ALL]->style_func_ptr(doc_list[idx].sci);
ui_set_window_title(idx);
ui_build_show_hide(idx);
ui_update_build_menu(idx);
doc_list[idx].mtime = time(NULL);
doc_list[idx].changed = FALSE;
document_set_text_changed(idx);
......@@ -666,7 +666,7 @@ int document_open_file(gint idx, const gchar *filename, gint pos, gboolean reado
sci_set_readonly(doc_list[idx].sci, readonly);
document_set_filetype(idx, use_ft); // also sets taglist
ui_build_show_hide(idx);
ui_update_build_menu(idx);
}
else
{ // reloading
......@@ -1197,7 +1197,7 @@ void document_set_filetype(gint idx, filetype *type)
}
}
sci_colourise(doc_list[idx].sci, 0, -1);
ui_build_show_hide(idx);
ui_update_build_menu(idx);
}
......
......@@ -805,6 +805,9 @@ void filetypes_free_types(void)
if (filetypes[i]->menu_items->item_exec != NULL &&
GTK_IS_WIDGET(filetypes[i]->menu_items->item_exec))
gtk_widget_destroy(filetypes[i]->menu_items->item_exec);
if (filetypes[i]->menu_items->item_make_object != NULL &&
GTK_IS_WIDGET(filetypes[i]->menu_items->item_make_object))
gtk_widget_destroy(filetypes[i]->menu_items->item_make_object);
*/ g_free(filetypes[i]->menu_items);
g_strfreev(filetypes[i]->pattern);
......@@ -941,7 +944,7 @@ void filetypes_save_commands()
gchar *fname, *ext, *data;
if (! bp->modified) continue;
ext = get_conf_extension(i);
fname = g_strconcat(conf_prefix, ext, NULL);
g_free(ext);
......
......@@ -70,6 +70,7 @@ struct build_menu_items
GtkWidget *item_compile;
GtkWidget *item_link;
GtkWidget *item_exec;
GtkWidget *item_make_object;
gboolean can_compile;
gboolean can_link;
gboolean can_exec;
......
......@@ -608,7 +608,7 @@ gint main(gint argc, gchar **argv)
idx = document_get_cur_idx();
gtk_widget_grab_focus(GTK_WIDGET(doc_list[idx].sci));
gtk_tree_model_foreach(GTK_TREE_MODEL(tv.store_openfiles), treeviews_find_node, GINT_TO_POINTER(idx));
ui_build_show_hide(idx);
ui_update_build_menu(idx);
ui_update_tag_list(idx, FALSE);
#ifdef G_OS_WIN32
......
......@@ -618,7 +618,7 @@ void ui_widget_show_hide(GtkWidget *widget, gboolean show)
}
void ui_build_show_hide(gint idx)
void ui_update_build_menu(gint idx)
{
gboolean is_header = FALSE;
gchar *ext = NULL;
......@@ -671,7 +671,7 @@ void ui_build_show_hide(gint idx)
gtk_menu_item_set_submenu(GTK_MENU_ITEM(lookup_widget(app->window, "menu_build1")),
ft->menu_items->menu);
if (is_header)
if (is_header) // means also filename is NULL
{
gtk_widget_set_sensitive(app->compile_button, FALSE);
gtk_widget_set_sensitive(app->run_button, FALSE);
......@@ -681,6 +681,7 @@ void ui_build_show_hide(gint idx)
gtk_widget_set_sensitive(ft->menu_items->item_link, FALSE);
if (ft->menu_items->can_exec)
gtk_widget_set_sensitive(ft->menu_items->item_exec, FALSE);
gtk_widget_set_sensitive(ft->menu_items->item_make_object, FALSE);
}
else
{
......@@ -692,8 +693,8 @@ void ui_build_show_hide(gint idx)
gtk_widget_set_sensitive(ft->menu_items->item_link, TRUE);
if (ft->menu_items->can_exec)
gtk_widget_set_sensitive(ft->menu_items->item_exec, TRUE);
gtk_widget_set_sensitive(ft->menu_items->item_make_object, TRUE);
}
break;
}
case GEANY_FILETYPES_LATEX:
......@@ -709,7 +710,7 @@ void ui_build_show_hide(gint idx)
ft->menu_items->menu);
gtk_widget_set_sensitive(app->compile_button, FALSE);
gtk_widget_set_sensitive(app->run_button, FALSE);
}
}
else
{
gtk_menu_item_set_submenu(GTK_MENU_ITEM(lookup_widget(app->window, "menu_build1")),
......@@ -738,6 +739,7 @@ void ui_build_show_hide(gint idx)
if (ft->menu_items->can_link)
gtk_widget_set_sensitive(ft->menu_items->item_link, FALSE);
if (ft->menu_items->can_exec) gtk_widget_set_sensitive(ft->menu_items->item_exec, FALSE);
gtk_widget_set_sensitive(ft->menu_items->item_make_object, FALSE);
}
else
{
......@@ -751,6 +753,7 @@ void ui_build_show_hide(gint idx)
gtk_widget_set_sensitive(ft->menu_items->item_link, TRUE);
if (ft->menu_items->can_exec)
gtk_widget_set_sensitive(ft->menu_items->item_exec, TRUE);
gtk_widget_set_sensitive(ft->menu_items->item_make_object, TRUE);
}
}
}
......@@ -832,6 +835,7 @@ static GtkWidget *create_build_menu_gen(gint idx)
gtk_tooltips_set_tip(tooltips, item, _("Compiles the current file using the "
"make tool"), NULL);
g_signal_connect((gpointer) item, "activate", G_CALLBACK(on_build_make_activate), GINT_TO_POINTER(2));
ft->menu_items->item_make_object = item;
#endif
if (ft->menu_items->can_exec)
......@@ -1378,7 +1382,7 @@ GtkContainer *ui_frame_new(GtkContainer *parent, const gchar *label_text)
align = gtk_alignment_new (0.5, 0.5, 1, 1);
gtk_container_add (GTK_CONTAINER (frame), align);
gtk_alignment_set_padding (GTK_ALIGNMENT (align), 0, 0, 12, 0);
gtk_alignment_set_padding (GTK_ALIGNMENT (align), 0, 0, 12, 0);
label_markup = g_strconcat("<b>", label_text, "</b>", NULL);
label = gtk_label_new (label_markup);
......
......@@ -68,7 +68,7 @@ void ui_close_buttons_toggle();
void ui_widget_show_hide(GtkWidget *widget, gboolean show);
void ui_build_show_hide(gint);
void ui_update_build_menu(gint);
void ui_treeviews_show_hide(gboolean force);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment