improved build support for filetype LaTeX
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@145 ea778897-0a13-0410-b9d1-a72fbfd435f5
This commit is contained in:
parent
0b18a2bd64
commit
c02322ae35
61
src/build.c
61
src/build.c
@ -40,20 +40,67 @@
|
|||||||
#include "msgwindow.h"
|
#include "msgwindow.h"
|
||||||
|
|
||||||
|
|
||||||
GPid build_compile_tex_file(gint idx)
|
GPid build_compile_tex_file(gint idx, gint mode)
|
||||||
{
|
{
|
||||||
gchar **argv;
|
gchar **argv;
|
||||||
|
|
||||||
argv = g_new(gchar *, 5);
|
argv = g_new(gchar*, 3);
|
||||||
argv[0] = g_strdup(app->build_tex_dvi_cmd);
|
argv[0] = (mode == 0) ? g_strdup(app->build_tex_dvi_cmd) : g_strdup(app->build_tex_pdf_cmd);
|
||||||
argv[1] = g_path_get_basename(doc_list[idx].file_name);
|
argv[1] = g_path_get_basename(doc_list[idx].file_name);
|
||||||
argv[2] = g_strdup(app->build_args_inc);
|
argv[2] = NULL;
|
||||||
argv[3] = NULL;
|
|
||||||
|
|
||||||
return build_spawn_cmd(idx, argv);
|
return build_spawn_cmd(idx, argv);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
GPid build_view_tex_file(gint idx, gint mode)
|
||||||
|
{
|
||||||
|
gchar **argv;
|
||||||
|
gchar *executable = g_malloc0(strlen(doc_list[idx].file_name));
|
||||||
|
gchar *view_file;
|
||||||
|
gchar *last_dot = strrchr(doc_list[idx].file_name, '.');
|
||||||
|
GError *error = NULL;
|
||||||
|
gint i = 0;
|
||||||
|
GPid child_pid;
|
||||||
|
struct stat st;
|
||||||
|
|
||||||
|
while ((doc_list[idx].file_name + i) != last_dot)
|
||||||
|
{
|
||||||
|
executable[i] = doc_list[idx].file_name[i];
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
view_file = g_strconcat(executable, (mode == 0) ? ".dvi" : ".pdf", NULL);
|
||||||
|
g_free(executable);
|
||||||
|
|
||||||
|
// check wether view_file exists
|
||||||
|
if (stat(view_file, &st) != 0)
|
||||||
|
{
|
||||||
|
msgwin_status_add(_("Failed to view %s (make sure it is already compiled)"), view_file);
|
||||||
|
g_free(view_file);
|
||||||
|
return (GPid) 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
argv = g_new(gchar*, 3);
|
||||||
|
argv[0] = (mode == 0) ? g_strdup(app->build_tex_view_dvi_cmd) : g_strdup(app->build_tex_view_pdf_cmd);
|
||||||
|
argv[1] = view_file;
|
||||||
|
argv[2] = NULL;
|
||||||
|
|
||||||
|
if (! g_spawn_async_with_pipes(NULL, argv, NULL, G_SPAWN_SEARCH_PATH | G_SPAWN_DO_NOT_REAP_CHILD,
|
||||||
|
NULL, NULL, &child_pid, NULL, NULL, NULL, &error))
|
||||||
|
{
|
||||||
|
geany_debug("g_spawn_async_with_pipes() failed: %s", error->message);
|
||||||
|
msgwin_status_add(_("Process failed (%s)"), error->message);
|
||||||
|
g_strfreev(argv);
|
||||||
|
g_error_free(error);
|
||||||
|
error = NULL;
|
||||||
|
return (GPid) 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
g_strfreev(argv);
|
||||||
|
return child_pid;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
GPid build_make_c_file(gint idx, gboolean cust_target)
|
GPid build_make_c_file(gint idx, gboolean cust_target)
|
||||||
{
|
{
|
||||||
gchar **argv;
|
gchar **argv;
|
||||||
@ -272,7 +319,7 @@ GPid build_spawn_cmd(gint idx, gchar **cmd)
|
|||||||
if (! g_spawn_async_with_pipes(working_dir, argv, NULL, G_SPAWN_SEARCH_PATH | G_SPAWN_DO_NOT_REAP_CHILD,
|
if (! g_spawn_async_with_pipes(working_dir, argv, NULL, G_SPAWN_SEARCH_PATH | G_SPAWN_DO_NOT_REAP_CHILD,
|
||||||
NULL, NULL, &child_pid, NULL, &stdout_fd, &stderr_fd, &error))
|
NULL, NULL, &child_pid, NULL, &stdout_fd, &stderr_fd, &error))
|
||||||
{
|
{
|
||||||
g_warning("g_spawn_async_with_pipes() failed: %s", error->message);
|
geany_debug("g_spawn_async_with_pipes() failed: %s", error->message);
|
||||||
msgwin_status_add(_("Process failed (%s)"), error->message);
|
msgwin_status_add(_("Process failed (%s)"), error->message);
|
||||||
g_strfreev(argv);
|
g_strfreev(argv);
|
||||||
g_error_free(error);
|
g_error_free(error);
|
||||||
@ -425,7 +472,7 @@ GIOChannel *build_set_up_io_channel (gint fd, GIOCondition cond, GIOFunc func, g
|
|||||||
g_io_channel_set_encoding(ioc, encoding, &error);
|
g_io_channel_set_encoding(ioc, encoding, &error);
|
||||||
if (error)
|
if (error)
|
||||||
{
|
{
|
||||||
g_warning("compile: %s", error->message);
|
geany_debug("compile: %s", error->message);
|
||||||
g_error_free(error);
|
g_error_free(error);
|
||||||
return ioc;
|
return ioc;
|
||||||
}
|
}
|
||||||
|
@ -30,7 +30,9 @@ GPid build_make_c_file(gint idx, gboolean cust_target);
|
|||||||
|
|
||||||
GPid build_compile_c_file(gint idx);
|
GPid build_compile_c_file(gint idx);
|
||||||
|
|
||||||
GPid build_compile_tex_file(gint idx);
|
GPid build_compile_tex_file(gint idx, gint mode);
|
||||||
|
|
||||||
|
GPid build_view_tex_file(gint idx, gint mode);
|
||||||
|
|
||||||
GPid build_link_c_file(gint idx);
|
GPid build_link_c_file(gint idx);
|
||||||
|
|
||||||
|
@ -1827,7 +1827,7 @@ on_build_compile_activate (GtkMenuItem *menuitem,
|
|||||||
case GEANY_FILETYPES_CPP: child_pid = build_compile_cpp_file(idx); break;
|
case GEANY_FILETYPES_CPP: child_pid = build_compile_cpp_file(idx); break;
|
||||||
case GEANY_FILETYPES_JAVA: child_pid = build_compile_java_file(idx); break;
|
case GEANY_FILETYPES_JAVA: child_pid = build_compile_java_file(idx); break;
|
||||||
case GEANY_FILETYPES_PASCAL: child_pid = build_compile_pascal_file(idx); break;
|
case GEANY_FILETYPES_PASCAL: child_pid = build_compile_pascal_file(idx); break;
|
||||||
case GEANY_FILETYPES_TEX: child_pid = build_compile_tex_file(idx); break;
|
case GEANY_FILETYPES_TEX: child_pid = build_compile_tex_file(idx, 0); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (child_pid != (GPid) 0)
|
if (child_pid != (GPid) 0)
|
||||||
@ -1838,6 +1838,31 @@ on_build_compile_activate (GtkMenuItem *menuitem,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
on_build_tex_activate (GtkMenuItem *menuitem,
|
||||||
|
gpointer user_data)
|
||||||
|
{
|
||||||
|
gint idx = document_get_cur_idx();
|
||||||
|
GPid child_pid = (GPid) 0;
|
||||||
|
|
||||||
|
if (doc_list[idx].changed) document_save_file(idx);
|
||||||
|
|
||||||
|
switch (GPOINTER_TO_INT(user_data))
|
||||||
|
{
|
||||||
|
case 0: child_pid = build_compile_tex_file(idx, 0); break;
|
||||||
|
case 1: child_pid = build_compile_tex_file(idx, 1); break;
|
||||||
|
case 2: child_pid = build_view_tex_file(idx, 0); break;
|
||||||
|
case 3: child_pid = build_view_tex_file(idx, 1); break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GPOINTER_TO_INT(user_data) <= 1 && child_pid != (GPid) 0)
|
||||||
|
{
|
||||||
|
gtk_widget_set_sensitive(app->compile_button, FALSE);
|
||||||
|
g_child_watch_add(child_pid, build_exit_cb, NULL);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
on_build_build_activate (GtkMenuItem *menuitem,
|
on_build_build_activate (GtkMenuItem *menuitem,
|
||||||
gpointer user_data)
|
gpointer user_data)
|
||||||
@ -1851,6 +1876,9 @@ on_build_build_activate (GtkMenuItem *menuitem,
|
|||||||
{
|
{
|
||||||
case GEANY_FILETYPES_C: child_pid = build_link_c_file(idx); break;
|
case GEANY_FILETYPES_C: child_pid = build_link_c_file(idx); break;
|
||||||
case GEANY_FILETYPES_CPP: child_pid = build_link_cpp_file(idx); break;
|
case GEANY_FILETYPES_CPP: child_pid = build_link_cpp_file(idx); break;
|
||||||
|
/* FIXME: temporary switch to catch F5-shortcut pressed on LaTeX files, as long as
|
||||||
|
* LaTeX build menu has no key accelerator */
|
||||||
|
case GEANY_FILETYPES_TEX: child_pid = build_compile_tex_file(idx, 1); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (child_pid != (GPid) 0)
|
if (child_pid != (GPid) 0)
|
||||||
@ -1893,10 +1921,26 @@ on_build_execute_activate (GtkMenuItem *menuitem,
|
|||||||
{
|
{
|
||||||
gint idx = document_get_cur_idx();
|
gint idx = document_get_cur_idx();
|
||||||
|
|
||||||
|
/* FIXME: temporary switch to catch F5-shortcut pressed on LaTeX files, as long as
|
||||||
|
* LaTeX build menu has no key accelerator */
|
||||||
|
switch (doc_list[idx].file_type->id)
|
||||||
|
{
|
||||||
|
case GEANY_FILETYPES_TEX:
|
||||||
|
{
|
||||||
|
if (build_view_tex_file(idx, 0) == (GPid) 0)
|
||||||
|
{
|
||||||
|
msgwin_status_add(_("Failed to execute the DVI view program"));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
{
|
||||||
if (build_run_cmd(idx) == (GPid) 0)
|
if (build_run_cmd(idx) == (GPid) 0)
|
||||||
{
|
{
|
||||||
msgwin_status_add(_("Failed to execute the terminal program"));
|
msgwin_status_add(_("Failed to execute the terminal program"));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
//gtk_widget_grab_focus(GTK_WIDGET(doc_list[idx].sci));
|
//gtk_widget_grab_focus(GTK_WIDGET(doc_list[idx].sci));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -407,6 +407,10 @@ void
|
|||||||
on_build_compile_activate (GtkMenuItem *menuitem,
|
on_build_compile_activate (GtkMenuItem *menuitem,
|
||||||
gpointer user_data);
|
gpointer user_data);
|
||||||
|
|
||||||
|
void
|
||||||
|
on_build_tex_activate (GtkMenuItem *menuitem,
|
||||||
|
gpointer user_data);
|
||||||
|
|
||||||
void
|
void
|
||||||
on_build_build_activate (GtkMenuItem *menuitem,
|
on_build_build_activate (GtkMenuItem *menuitem,
|
||||||
gpointer user_data);
|
gpointer user_data);
|
||||||
|
@ -556,38 +556,22 @@ GtkWidget *dialogs_create_build_menu_tex(void)
|
|||||||
gtk_widget_show(item);
|
gtk_widget_show(item);
|
||||||
gtk_container_add(GTK_CONTAINER(menu), item);
|
gtk_container_add(GTK_CONTAINER(menu), item);
|
||||||
gtk_tooltips_set_tip(tooltips, item, _("Compiles the current file into a DVI file"), NULL);
|
gtk_tooltips_set_tip(tooltips, item, _("Compiles the current file into a DVI file"), NULL);
|
||||||
gtk_widget_add_accelerator(item, "activate", accel_group, GDK_F8, (GdkModifierType) 0, GTK_ACCEL_VISIBLE);
|
// gtk_widget_add_accelerator(item, "activate", accel_group, GDK_F8, (GdkModifierType) 0, GTK_ACCEL_VISIBLE);
|
||||||
image = gtk_image_new_from_stock("gtk-convert", GTK_ICON_SIZE_MENU);
|
image = gtk_image_new_from_stock("gtk-convert", GTK_ICON_SIZE_MENU);
|
||||||
gtk_widget_show(image);
|
gtk_widget_show(image);
|
||||||
gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), image);
|
gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), image);
|
||||||
g_signal_connect((gpointer) item, "activate", G_CALLBACK(on_build_compile_activate), NULL);
|
g_signal_connect((gpointer) item, "activate", G_CALLBACK(on_build_tex_activate), GINT_TO_POINTER(0));
|
||||||
|
|
||||||
// PDF
|
// PDF
|
||||||
item = gtk_image_menu_item_new_with_label(_("LaTeX -> PDF"));
|
item = gtk_image_menu_item_new_with_label(_("LaTeX -> PDF"));
|
||||||
gtk_widget_show(item);
|
gtk_widget_show(item);
|
||||||
gtk_container_add(GTK_CONTAINER(menu), item);
|
gtk_container_add(GTK_CONTAINER(menu), item);
|
||||||
gtk_tooltips_set_tip(tooltips, item, _("Compiles the current file into a PDF file"), NULL);
|
gtk_tooltips_set_tip(tooltips, item, _("Compiles the current file into a PDF file"), NULL);
|
||||||
gtk_widget_add_accelerator(item, "activate", accel_group, GDK_F9, (GdkModifierType) 0, GTK_ACCEL_VISIBLE);
|
// gtk_widget_add_accelerator(item, "activate", accel_group, GDK_F9, (GdkModifierType) 0, GTK_ACCEL_VISIBLE);
|
||||||
image = gtk_image_new_from_stock("gtk-convert", GTK_ICON_SIZE_MENU);
|
image = gtk_image_new_from_stock("gtk-convert", GTK_ICON_SIZE_MENU);
|
||||||
gtk_widget_show(image);
|
gtk_widget_show(image);
|
||||||
gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), image);
|
gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), image);
|
||||||
g_signal_connect((gpointer) item, "activate", G_CALLBACK(on_build_compile_activate), NULL);
|
g_signal_connect((gpointer) item, "activate", G_CALLBACK(on_build_tex_activate), GINT_TO_POINTER(1));
|
||||||
|
|
||||||
// DVI view
|
|
||||||
item = gtk_menu_item_new_with_label(_("View DVI file"));
|
|
||||||
gtk_widget_show(item);
|
|
||||||
gtk_container_add(GTK_CONTAINER(menu), item);
|
|
||||||
gtk_tooltips_set_tip(tooltips, item, _("Compiles and view the current file"), NULL);
|
|
||||||
gtk_widget_add_accelerator(item, "activate", accel_group, GDK_F9,
|
|
||||||
(GdkModifierType) GDK_SHIFT_MASK, GTK_ACCEL_VISIBLE);
|
|
||||||
g_signal_connect((gpointer) item, "activate", G_CALLBACK(on_build_make_activate), GINT_TO_POINTER(0));
|
|
||||||
|
|
||||||
// PDF view
|
|
||||||
item = gtk_menu_item_new_with_label(_("View PDF file"));
|
|
||||||
gtk_widget_show(item);
|
|
||||||
gtk_container_add(GTK_CONTAINER(menu), item);
|
|
||||||
gtk_tooltips_set_tip(tooltips, item, _("Compiles and view the current file"), NULL);
|
|
||||||
g_signal_connect((gpointer) item, "activate", G_CALLBACK(on_build_make_activate), GINT_TO_POINTER(1));
|
|
||||||
|
|
||||||
// build the code with make all
|
// build the code with make all
|
||||||
item = gtk_menu_item_new_with_label(_("Build with \"make\""));
|
item = gtk_menu_item_new_with_label(_("Build with \"make\""));
|
||||||
@ -595,9 +579,9 @@ GtkWidget *dialogs_create_build_menu_tex(void)
|
|||||||
gtk_container_add(GTK_CONTAINER(menu), item);
|
gtk_container_add(GTK_CONTAINER(menu), item);
|
||||||
gtk_tooltips_set_tip(tooltips, item, _("Builds the current file with the "
|
gtk_tooltips_set_tip(tooltips, item, _("Builds the current file with the "
|
||||||
"make tool and the default target"), NULL);
|
"make tool and the default target"), NULL);
|
||||||
gtk_widget_add_accelerator(item, "activate", accel_group, GDK_F9,
|
/* gtk_widget_add_accelerator(item, "activate", accel_group, GDK_F9,
|
||||||
(GdkModifierType) GDK_SHIFT_MASK, GTK_ACCEL_VISIBLE);
|
(GdkModifierType) GDK_SHIFT_MASK, GTK_ACCEL_VISIBLE);
|
||||||
g_signal_connect((gpointer) item, "activate", G_CALLBACK(on_build_make_activate), GINT_TO_POINTER(0));
|
*/ g_signal_connect((gpointer) item, "activate", G_CALLBACK(on_build_make_activate), GINT_TO_POINTER(0));
|
||||||
|
|
||||||
// build the code with make
|
// build the code with make
|
||||||
item = gtk_menu_item_new_with_label(_("Build with make (custom target)"));
|
item = gtk_menu_item_new_with_label(_("Build with make (custom target)"));
|
||||||
@ -607,6 +591,29 @@ GtkWidget *dialogs_create_build_menu_tex(void)
|
|||||||
"make tool and the specified target"), NULL);
|
"make tool and the specified target"), NULL);
|
||||||
g_signal_connect((gpointer) item, "activate", G_CALLBACK(on_build_make_activate), GINT_TO_POINTER(1));
|
g_signal_connect((gpointer) item, "activate", G_CALLBACK(on_build_make_activate), GINT_TO_POINTER(1));
|
||||||
|
|
||||||
|
// DVI view
|
||||||
|
item = gtk_image_menu_item_new_with_label(_("View DVI file"));
|
||||||
|
gtk_widget_show(item);
|
||||||
|
gtk_container_add(GTK_CONTAINER(menu), item);
|
||||||
|
// gtk_widget_add_accelerator(item, "activate", accel_group, GDK_F5, (GdkModifierType) 0, GTK_ACCEL_VISIBLE);
|
||||||
|
gtk_tooltips_set_tip(tooltips, item, _("Compiles and view the current file"), NULL);
|
||||||
|
image = gtk_image_new_from_stock("gtk-find", GTK_ICON_SIZE_MENU);
|
||||||
|
gtk_widget_show(image);
|
||||||
|
gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), image);
|
||||||
|
g_signal_connect((gpointer) item, "activate", G_CALLBACK(on_build_tex_activate), GINT_TO_POINTER(2));
|
||||||
|
|
||||||
|
// PDF view
|
||||||
|
item = gtk_image_menu_item_new_with_label(_("View PDF file"));
|
||||||
|
gtk_widget_show(item);
|
||||||
|
gtk_container_add(GTK_CONTAINER(menu), item);
|
||||||
|
/* gtk_widget_add_accelerator(item, "activate", accel_group, GDK_F5,
|
||||||
|
(GdkModifierType) GDK_SHIFT_MASK, GTK_ACCEL_VISIBLE);
|
||||||
|
*/ gtk_tooltips_set_tip(tooltips, item, _("Compiles and view the current file"), NULL);
|
||||||
|
image = gtk_image_new_from_stock("gtk-find", GTK_ICON_SIZE_MENU);
|
||||||
|
gtk_widget_show(image);
|
||||||
|
gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), image);
|
||||||
|
g_signal_connect((gpointer) item, "activate", G_CALLBACK(on_build_tex_activate), GINT_TO_POINTER(3));
|
||||||
|
|
||||||
// separator
|
// separator
|
||||||
separator = gtk_separator_menu_item_new();
|
separator = gtk_separator_menu_item_new();
|
||||||
gtk_widget_show(separator);
|
gtk_widget_show(separator);
|
||||||
@ -872,12 +879,12 @@ void dialogs_show_includes_arguments_tex(void)
|
|||||||
{
|
{
|
||||||
GtkWidget *dialog, *label, *entries[3];
|
GtkWidget *dialog, *label, *entries[3];
|
||||||
|
|
||||||
dialog = gtk_dialog_new_with_buttons(_("Set Includes and Arguments"), GTK_WINDOW(app->window),
|
dialog = gtk_dialog_new_with_buttons(_("Set Arguments"), GTK_WINDOW(app->window),
|
||||||
GTK_DIALOG_DESTROY_WITH_PARENT,
|
GTK_DIALOG_DESTROY_WITH_PARENT,
|
||||||
GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT,
|
GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT,
|
||||||
GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, NULL);
|
GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, NULL);
|
||||||
|
|
||||||
label = gtk_label_new(_("Sets the includes and library paths for the compiler and the program arguments for execution\n"));
|
label = gtk_label_new(_("Set programs and options for compilation and viewing (La)TeX files.\nThe filename is appended automatically at the end.\n"));
|
||||||
gtk_misc_set_padding(GTK_MISC(label), 0, 6);
|
gtk_misc_set_padding(GTK_MISC(label), 0, 6);
|
||||||
gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
|
gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
|
||||||
gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), label);
|
gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), label);
|
||||||
@ -893,6 +900,7 @@ void dialogs_show_includes_arguments_tex(void)
|
|||||||
gtk_entry_set_text(GTK_ENTRY(entries[0]), app->build_tex_dvi_cmd);
|
gtk_entry_set_text(GTK_ENTRY(entries[0]), app->build_tex_dvi_cmd);
|
||||||
gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), entries[0]);
|
gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), entries[0]);
|
||||||
|
|
||||||
|
// whitespace
|
||||||
gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), gtk_label_new(""));
|
gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), gtk_label_new(""));
|
||||||
|
|
||||||
// LaTeX -> PDF args
|
// LaTeX -> PDF args
|
||||||
@ -906,10 +914,11 @@ void dialogs_show_includes_arguments_tex(void)
|
|||||||
gtk_entry_set_text(GTK_ENTRY(entries[1]), app->build_tex_pdf_cmd);
|
gtk_entry_set_text(GTK_ENTRY(entries[1]), app->build_tex_pdf_cmd);
|
||||||
gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), entries[1]);
|
gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), entries[1]);
|
||||||
|
|
||||||
|
// whitespace
|
||||||
gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), gtk_label_new(""));
|
gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), gtk_label_new(""));
|
||||||
|
|
||||||
// View LaTeX -> DVI args
|
// View LaTeX -> DVI args
|
||||||
label = gtk_label_new(_("Enter here the (La)TeX command (for DVI creation and preview) and some useful options."));
|
label = gtk_label_new(_("Enter here the (La)TeX command (for DVI preview) and some useful options."));
|
||||||
gtk_misc_set_padding(GTK_MISC(label), 0, 6);
|
gtk_misc_set_padding(GTK_MISC(label), 0, 6);
|
||||||
gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
|
gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
|
||||||
gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), label);
|
gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), label);
|
||||||
@ -919,10 +928,11 @@ void dialogs_show_includes_arguments_tex(void)
|
|||||||
gtk_entry_set_text(GTK_ENTRY(entries[2]), app->build_tex_view_dvi_cmd);
|
gtk_entry_set_text(GTK_ENTRY(entries[2]), app->build_tex_view_dvi_cmd);
|
||||||
gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), entries[2]);
|
gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), entries[2]);
|
||||||
|
|
||||||
|
// whitespace
|
||||||
gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), gtk_label_new(""));
|
gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), gtk_label_new(""));
|
||||||
|
|
||||||
// View LaTeX -> PDF args
|
// View LaTeX -> PDF args
|
||||||
label = gtk_label_new(_("Enter here the (La)TeX command (for PDF creation and preview) and some useful options."));
|
label = gtk_label_new(_("Enter here the (La)TeX command (for PDF preview) and some useful options."));
|
||||||
gtk_misc_set_padding(GTK_MISC(label), 0, 6);
|
gtk_misc_set_padding(GTK_MISC(label), 0, 6);
|
||||||
gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
|
gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
|
||||||
gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), label);
|
gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), label);
|
||||||
@ -932,6 +942,7 @@ void dialogs_show_includes_arguments_tex(void)
|
|||||||
gtk_entry_set_text(GTK_ENTRY(entries[3]), app->build_tex_view_pdf_cmd);
|
gtk_entry_set_text(GTK_ENTRY(entries[3]), app->build_tex_view_pdf_cmd);
|
||||||
gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), entries[3]);
|
gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), entries[3]);
|
||||||
|
|
||||||
|
// whitespace
|
||||||
gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), gtk_label_new(""));
|
gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), gtk_label_new(""));
|
||||||
|
|
||||||
g_object_set_data_full(G_OBJECT(dialog), "tex_entry1",
|
g_object_set_data_full(G_OBJECT(dialog), "tex_entry1",
|
||||||
|
@ -296,19 +296,23 @@ gboolean configuration_load(void)
|
|||||||
app->build_fpc_cmd = utils_get_setting_string(config, "build", "build_fpc_cmd", tmp_string);
|
app->build_fpc_cmd = utils_get_setting_string(config, "build", "build_fpc_cmd", tmp_string);
|
||||||
g_free(tmp_string);
|
g_free(tmp_string);
|
||||||
|
|
||||||
tmp_string = g_find_program_in_path("latex");
|
tmp_string2 = g_find_program_in_path("latex");
|
||||||
|
tmp_string = g_strconcat(tmp_string2, " -interaction=nonstopmode", NULL);
|
||||||
app->build_tex_dvi_cmd = utils_get_setting_string(config, "build", "build_tex_dvi_cmd", tmp_string);
|
app->build_tex_dvi_cmd = utils_get_setting_string(config, "build", "build_tex_dvi_cmd", tmp_string);
|
||||||
g_free(tmp_string);
|
g_free(tmp_string);
|
||||||
|
g_free(tmp_string2);
|
||||||
|
|
||||||
tmp_string = g_find_program_in_path("pdflatex");
|
tmp_string2 = g_find_program_in_path("pdflatex");
|
||||||
|
tmp_string = g_strconcat(tmp_string2, " -interaction=nonstopmode", NULL);
|
||||||
app->build_tex_pdf_cmd = utils_get_setting_string(config, "build", "build_tex_pdf_cmd", tmp_string);
|
app->build_tex_pdf_cmd = utils_get_setting_string(config, "build", "build_tex_pdf_cmd", tmp_string);
|
||||||
g_free(tmp_string);
|
g_free(tmp_string);
|
||||||
|
g_free(tmp_string2);
|
||||||
|
|
||||||
tmp_string = g_find_program_in_path("latex");
|
tmp_string = g_find_program_in_path("xdvi");
|
||||||
app->build_tex_view_dvi_cmd = utils_get_setting_string(config, "build", "build_tex_view_dvi_cmd", tmp_string);
|
app->build_tex_view_dvi_cmd = utils_get_setting_string(config, "build", "build_tex_view_dvi_cmd", tmp_string);
|
||||||
g_free(tmp_string);
|
g_free(tmp_string);
|
||||||
|
|
||||||
tmp_string = g_find_program_in_path("pdflatex");
|
tmp_string = g_find_program_in_path("xpdf");
|
||||||
app->build_tex_view_pdf_cmd = utils_get_setting_string(config, "build", "build_tex_view_pdf_cmd", tmp_string);
|
app->build_tex_view_pdf_cmd = utils_get_setting_string(config, "build", "build_tex_view_pdf_cmd", tmp_string);
|
||||||
g_free(tmp_string);
|
g_free(tmp_string);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user