Fix build menu updating
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/branches/build-system@3195 ea778897-0a13-0410-b9d1-a72fbfd435f5
This commit is contained in:
parent
c857941e1d
commit
30de1c33b1
12
ChangeLog
12
ChangeLog
@ -1,3 +1,15 @@
|
|||||||
|
2008-11-10 Lex Trotman <elextr(at)gmail(dot)com>
|
||||||
|
|
||||||
|
Fixed build menu updating after dialog close
|
||||||
|
|
||||||
|
* src/build.c:
|
||||||
|
on_includes_arguments_dialog_response calls projects::update_ui()
|
||||||
|
create_build_menu_gen() fixed reference to build_2_label SB 3
|
||||||
|
format it
|
||||||
|
* src/projects.c:
|
||||||
|
make update_ui() non-static
|
||||||
|
format it
|
||||||
|
|
||||||
2008-11-05 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
|
2008-11-05 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
|
||||||
|
|
||||||
* src/build.c:
|
* src/build.c:
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
<meta name="generator" content="Docutils 0.4: http://docutils.sourceforge.net/" />
|
<meta name="generator" content="Docutils 0.4: http://docutils.sourceforge.net/" />
|
||||||
<title>Geany</title>
|
<title>Geany</title>
|
||||||
<meta name="authors" content="Enrico Tröger Nick Treleaven Frank Lanitz" />
|
<meta name="authors" content="Enrico Tröger Nick Treleaven Frank Lanitz" />
|
||||||
<meta name="date" content="2008-10-27" />
|
<meta name="date" content="2008-11-01" />
|
||||||
<style type="text/css">
|
<style type="text/css">
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -139,7 +139,7 @@ Stylesheet for Geany's documentation based on a version of John Gabriele.
|
|||||||
<br />Nick Treleaven
|
<br />Nick Treleaven
|
||||||
<br />Frank Lanitz</td></tr>
|
<br />Frank Lanitz</td></tr>
|
||||||
<tr><th class="docinfo-name">Date:</th>
|
<tr><th class="docinfo-name">Date:</th>
|
||||||
<td>2008-10-27</td></tr>
|
<td>2008-11-01</td></tr>
|
||||||
<tr><th class="docinfo-name">Version:</th>
|
<tr><th class="docinfo-name">Version:</th>
|
||||||
<td>0.15</td></tr>
|
<td>0.15</td></tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
@ -4506,7 +4506,7 @@ USE OR PERFORMANCE OF THIS SOFTWARE.</p>
|
|||||||
<div class="footer">
|
<div class="footer">
|
||||||
<hr class="footer" />
|
<hr class="footer" />
|
||||||
<a class="reference" href="geany.txt">View document source</a>.
|
<a class="reference" href="geany.txt">View document source</a>.
|
||||||
Generated on: 2008-11-01 02:40 UTC.
|
Generated on: 2008-11-04 00:47 UTC.
|
||||||
Generated by <a class="reference" href="http://docutils.sourceforge.net/">Docutils</a> from <a class="reference" href="http://docutils.sourceforge.net/rst.html">reStructuredText</a> source.
|
Generated by <a class="reference" href="http://docutils.sourceforge.net/">Docutils</a> from <a class="reference" href="http://docutils.sourceforge.net/rst.html">reStructuredText</a> source.
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
@ -1127,9 +1127,9 @@ static void create_build_menu_gen(BuildMenuItems *menu_items)
|
|||||||
menu_items->item_make_custom = item;
|
menu_items->item_make_custom = item;
|
||||||
|
|
||||||
/* build the code with make object */
|
/* build the code with make object */
|
||||||
if (proj!=NULL && proj->build_2_label!=NULL)
|
if (proj!=NULL && proj->build_3_label!=NULL)
|
||||||
{
|
{
|
||||||
item = gtk_image_menu_item_new_with_mnemonic(proj->build_2_label);
|
item = gtk_image_menu_item_new_with_mnemonic(proj->build_3_label);
|
||||||
tiptext = NULL;
|
tiptext = NULL;
|
||||||
} /* else if prefs */
|
} /* else if prefs */
|
||||||
else
|
else
|
||||||
@ -1601,6 +1601,7 @@ on_includes_arguments_dialog_response (GtkDialog *dialog,
|
|||||||
proj->build_3_cmd = g_strdup(newstr);
|
proj->build_3_cmd = g_strdup(newstr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
update_ui();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
258
src/project.c
258
src/project.c
@ -82,7 +82,7 @@ static void on_entries_changed(GtkEditable *editable, PropertyDialogElements *e)
|
|||||||
|
|
||||||
|
|
||||||
#define SHOW_ERR(args) dialogs_show_msgbox(GTK_MESSAGE_ERROR, args)
|
#define SHOW_ERR(args) dialogs_show_msgbox(GTK_MESSAGE_ERROR, args)
|
||||||
#define SHOW_ERR1(args,more) dialogs_show_msgbox(GTK_MESSAGE_ERROR, args, more)
|
#define SHOW_ERR1(args, more) dialogs_show_msgbox(GTK_MESSAGE_ERROR, args, more)
|
||||||
#define MAX_NAME_LEN 50
|
#define MAX_NAME_LEN 50
|
||||||
/* "projects" is part of the default project base path so be careful when translating
|
/* "projects" is part of the default project base path so be careful when translating
|
||||||
* please avoid special characters and spaces, look at the source for details or ask Frank */
|
* please avoid special characters and spaces, look at the source for details or ask Frank */
|
||||||
@ -91,15 +91,15 @@ static void on_entries_changed(GtkEditable *editable, PropertyDialogElements *e)
|
|||||||
|
|
||||||
void project_new()
|
void project_new()
|
||||||
{
|
{
|
||||||
GtkWidget *vbox;
|
GtkWidget *vbox;
|
||||||
GtkWidget *table;
|
GtkWidget *table;
|
||||||
GtkWidget *image;
|
GtkWidget *image;
|
||||||
GtkWidget *button;
|
GtkWidget *button;
|
||||||
GtkWidget *bbox;
|
GtkWidget *bbox;
|
||||||
GtkWidget *label;
|
GtkWidget *label;
|
||||||
GtkTooltips *tooltips = GTK_TOOLTIPS(lookup_widget(main_widgets.window, "tooltips"));
|
GtkTooltips *tooltips = GTK_TOOLTIPS(lookup_widget(main_widgets.window, "tooltips"));
|
||||||
PropertyDialogElements *e;
|
PropertyDialogElements *e;
|
||||||
gint response;
|
gint response;
|
||||||
|
|
||||||
if (! close_open_project()) return;
|
if (! close_open_project()) return;
|
||||||
|
|
||||||
@ -107,8 +107,8 @@ void project_new()
|
|||||||
|
|
||||||
e = g_new0(PropertyDialogElements, 1);
|
e = g_new0(PropertyDialogElements, 1);
|
||||||
e->dialog = gtk_dialog_new_with_buttons(_("New Project"), GTK_WINDOW(main_widgets.window),
|
e->dialog = gtk_dialog_new_with_buttons(_("New Project"), GTK_WINDOW(main_widgets.window),
|
||||||
GTK_DIALOG_DESTROY_WITH_PARENT,
|
GTK_DIALOG_DESTROY_WITH_PARENT,
|
||||||
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, NULL);
|
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, NULL);
|
||||||
|
|
||||||
gtk_widget_set_name(e->dialog, "GeanyDialogProject");
|
gtk_widget_set_name(e->dialog, "GeanyDialogProject");
|
||||||
bbox = gtk_hbox_new(FALSE, 0);
|
bbox = gtk_hbox_new(FALSE, 0);
|
||||||
@ -156,11 +156,11 @@ void project_new()
|
|||||||
|
|
||||||
e->base_path = gtk_entry_new();
|
e->base_path = gtk_entry_new();
|
||||||
gtk_tooltips_set_tip(tooltips, e->base_path,
|
gtk_tooltips_set_tip(tooltips, e->base_path,
|
||||||
_("Base directory of all files that make up the project. "
|
_("Base directory of all files that make up the project. "
|
||||||
"This can be a new path, or an existing directory tree. "
|
"This can be a new path, or an existing directory tree. "
|
||||||
"You can use paths relative to the project filename."), NULL);
|
"You can use paths relative to the project filename."), NULL);
|
||||||
bbox = ui_path_box_new(_("Choose Project Base Path"),
|
bbox = ui_path_box_new(_("Choose Project Base Path"),
|
||||||
GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, GTK_ENTRY(e->base_path));
|
GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, GTK_ENTRY(e->base_path));
|
||||||
|
|
||||||
ui_table_add_row(GTK_TABLE(table), 2, label, bbox, NULL);
|
ui_table_add_row(GTK_TABLE(table), 2, label, bbox, NULL);
|
||||||
|
|
||||||
@ -219,6 +219,8 @@ static void run_open_dialog(GtkDialog *dialog)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
@ -228,9 +230,9 @@ void project_open()
|
|||||||
#ifdef G_OS_WIN32
|
#ifdef G_OS_WIN32
|
||||||
gchar *file;
|
gchar *file;
|
||||||
#else
|
#else
|
||||||
GtkWidget *dialog;
|
GtkWidget *dialog;
|
||||||
GtkFileFilter *filter;
|
GtkFileFilter *filter;
|
||||||
gchar *locale_path;
|
gchar *locale_path;
|
||||||
#endif
|
#endif
|
||||||
if (! close_open_project()) return;
|
if (! close_open_project()) return;
|
||||||
|
|
||||||
@ -254,9 +256,9 @@ void project_open()
|
|||||||
#else
|
#else
|
||||||
|
|
||||||
dialog = gtk_file_chooser_dialog_new(_("Open Project"), GTK_WINDOW(main_widgets.window),
|
dialog = gtk_file_chooser_dialog_new(_("Open Project"), GTK_WINDOW(main_widgets.window),
|
||||||
GTK_FILE_CHOOSER_ACTION_OPEN,
|
GTK_FILE_CHOOSER_ACTION_OPEN,
|
||||||
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
|
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
|
||||||
GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, NULL);
|
GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, NULL);
|
||||||
gtk_widget_set_name(dialog, "GeanyDialogProject");
|
gtk_widget_set_name(dialog, "GeanyDialogProject");
|
||||||
|
|
||||||
/* set default Open, so pressing enter can open multiple files */
|
/* set default Open, so pressing enter can open multiple files */
|
||||||
@ -293,10 +295,11 @@ void project_open()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Called when creating, opening, closing and updating projects. */
|
/* Called when creating, opening, closing and updating projects or changing
|
||||||
static void update_ui(void)
|
* build commands. */
|
||||||
|
void update_ui(void)
|
||||||
{
|
{
|
||||||
build_default_menu();
|
build_default_menu();
|
||||||
ui_set_window_title(NULL);
|
ui_set_window_title(NULL);
|
||||||
build_menu_update(NULL);
|
build_menu_update(NULL);
|
||||||
}
|
}
|
||||||
@ -346,18 +349,18 @@ void project_close(gboolean open_default)
|
|||||||
|
|
||||||
static void create_properties_dialog(PropertyDialogElements *e)
|
static void create_properties_dialog(PropertyDialogElements *e)
|
||||||
{
|
{
|
||||||
GtkWidget *vbox;
|
GtkWidget *vbox;
|
||||||
GtkWidget *table;
|
GtkWidget *table;
|
||||||
GtkWidget *image;
|
GtkWidget *image;
|
||||||
GtkWidget *button;
|
GtkWidget *button;
|
||||||
GtkWidget *bbox;
|
GtkWidget *bbox;
|
||||||
GtkWidget *label;
|
GtkWidget *label;
|
||||||
GtkWidget *swin;
|
GtkWidget *swin;
|
||||||
GtkTooltips *tooltips = GTK_TOOLTIPS(lookup_widget(main_widgets.window, "tooltips"));
|
GtkTooltips *tooltips = GTK_TOOLTIPS(lookup_widget(main_widgets.window, "tooltips"));
|
||||||
|
|
||||||
e->dialog = gtk_dialog_new_with_buttons(_("Project Properties"), GTK_WINDOW(main_widgets.window),
|
e->dialog = gtk_dialog_new_with_buttons(_("Project Properties"), GTK_WINDOW(main_widgets.window),
|
||||||
GTK_DIALOG_DESTROY_WITH_PARENT,
|
GTK_DIALOG_DESTROY_WITH_PARENT,
|
||||||
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, NULL);
|
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, NULL);
|
||||||
gtk_dialog_add_buttons(GTK_DIALOG(e->dialog), GTK_STOCK_OK, GTK_RESPONSE_OK, NULL);
|
gtk_dialog_add_buttons(GTK_DIALOG(e->dialog), GTK_STOCK_OK, GTK_RESPONSE_OK, NULL);
|
||||||
gtk_widget_set_name(e->dialog, "GeanyDialogProject");
|
gtk_widget_set_name(e->dialog, "GeanyDialogProject");
|
||||||
|
|
||||||
@ -369,32 +372,32 @@ static void create_properties_dialog(PropertyDialogElements *e)
|
|||||||
|
|
||||||
label = gtk_label_new(_("Name:"));
|
label = gtk_label_new(_("Name:"));
|
||||||
gtk_table_attach(GTK_TABLE(table), label, 0, 1, 0, 1,
|
gtk_table_attach(GTK_TABLE(table), label, 0, 1, 0, 1,
|
||||||
(GtkAttachOptions) (GTK_FILL),
|
(GtkAttachOptions) (GTK_FILL),
|
||||||
(GtkAttachOptions) (0), 0, 0);
|
(GtkAttachOptions) (0), 0, 0);
|
||||||
gtk_misc_set_alignment(GTK_MISC(label), -1, 0);
|
gtk_misc_set_alignment(GTK_MISC(label), -1, 0);
|
||||||
|
|
||||||
e->name = gtk_entry_new();
|
e->name = gtk_entry_new();
|
||||||
gtk_entry_set_max_length(GTK_ENTRY(e->name), MAX_NAME_LEN);
|
gtk_entry_set_max_length(GTK_ENTRY(e->name), MAX_NAME_LEN);
|
||||||
gtk_table_attach(GTK_TABLE(table), e->name, 1, 2, 0, 1,
|
gtk_table_attach(GTK_TABLE(table), e->name, 1, 2, 0, 1,
|
||||||
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
|
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
|
||||||
(GtkAttachOptions) (0), 0, 0);
|
(GtkAttachOptions) (0), 0, 0);
|
||||||
|
|
||||||
label = gtk_label_new(_("Filename:"));
|
label = gtk_label_new(_("Filename:"));
|
||||||
gtk_table_attach(GTK_TABLE(table), label, 0, 1, 1, 2,
|
gtk_table_attach(GTK_TABLE(table), label, 0, 1, 1, 2,
|
||||||
(GtkAttachOptions) (GTK_FILL),
|
(GtkAttachOptions) (GTK_FILL),
|
||||||
(GtkAttachOptions) (0), 0, 0);
|
(GtkAttachOptions) (0), 0, 0);
|
||||||
gtk_misc_set_alignment(GTK_MISC(label), -1, 0);
|
gtk_misc_set_alignment(GTK_MISC(label), -1, 0);
|
||||||
|
|
||||||
e->file_name = gtk_entry_new();
|
e->file_name = gtk_entry_new();
|
||||||
gtk_editable_set_editable(GTK_EDITABLE(e->file_name), FALSE); /* read-only */
|
gtk_editable_set_editable(GTK_EDITABLE(e->file_name), FALSE); /* read-only */
|
||||||
gtk_table_attach(GTK_TABLE(table), e->file_name, 1, 2, 1, 2,
|
gtk_table_attach(GTK_TABLE(table), e->file_name, 1, 2, 1, 2,
|
||||||
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
|
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
|
||||||
(GtkAttachOptions) (0), 0, 0);
|
(GtkAttachOptions) (0), 0, 0);
|
||||||
|
|
||||||
label = gtk_label_new(_("Description:"));
|
label = gtk_label_new(_("Description:"));
|
||||||
gtk_table_attach(GTK_TABLE(table), label, 0, 1, 2, 3,
|
gtk_table_attach(GTK_TABLE(table), label, 0, 1, 2, 3,
|
||||||
(GtkAttachOptions) (GTK_FILL),
|
(GtkAttachOptions) (GTK_FILL),
|
||||||
(GtkAttachOptions) (GTK_FILL), 0, 0);
|
(GtkAttachOptions) (GTK_FILL), 0, 0);
|
||||||
gtk_misc_set_alignment(GTK_MISC(label), -1, 0);
|
gtk_misc_set_alignment(GTK_MISC(label), -1, 0);
|
||||||
|
|
||||||
e->description = gtk_text_view_new();
|
e->description = gtk_text_view_new();
|
||||||
@ -402,45 +405,45 @@ static void create_properties_dialog(PropertyDialogElements *e)
|
|||||||
swin = gtk_scrolled_window_new(NULL, NULL);
|
swin = gtk_scrolled_window_new(NULL, NULL);
|
||||||
gtk_widget_set_size_request(swin, 250, 80);
|
gtk_widget_set_size_request(swin, 250, 80);
|
||||||
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(swin),
|
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(swin),
|
||||||
GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
|
GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
|
||||||
gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(swin), GTK_WIDGET(e->description));
|
gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(swin), GTK_WIDGET(e->description));
|
||||||
gtk_table_attach(GTK_TABLE(table), swin, 1, 2, 2, 3,
|
gtk_table_attach(GTK_TABLE(table), swin, 1, 2, 2, 3,
|
||||||
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
|
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
|
||||||
(GtkAttachOptions) (0), 0, 0);
|
(GtkAttachOptions) (0), 0, 0);
|
||||||
|
|
||||||
label = gtk_label_new(_("Base path:"));
|
label = gtk_label_new(_("Base path:"));
|
||||||
gtk_table_attach(GTK_TABLE(table), label, 0, 1, 3, 4,
|
gtk_table_attach(GTK_TABLE(table), label, 0, 1, 3, 4,
|
||||||
(GtkAttachOptions) (GTK_FILL),
|
(GtkAttachOptions) (GTK_FILL),
|
||||||
(GtkAttachOptions) (0), 0, 0);
|
(GtkAttachOptions) (0), 0, 0);
|
||||||
gtk_misc_set_alignment(GTK_MISC(label), -1, 0);
|
gtk_misc_set_alignment(GTK_MISC(label), -1, 0);
|
||||||
|
|
||||||
e->base_path = gtk_entry_new();
|
e->base_path = gtk_entry_new();
|
||||||
gtk_tooltips_set_tip(tooltips, e->base_path,
|
gtk_tooltips_set_tip(tooltips, e->base_path,
|
||||||
_("Base directory of all files that make up the project. "
|
_("Base directory of all files that make up the project. "
|
||||||
"This can be a new path, or an existing directory tree. "
|
"This can be a new path, or an existing directory tree. "
|
||||||
"You can use paths relative to the project filename."), NULL);
|
"You can use paths relative to the project filename."), NULL);
|
||||||
bbox = ui_path_box_new(_("Choose Project Base Path"),
|
bbox = ui_path_box_new(_("Choose Project Base Path"),
|
||||||
GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, GTK_ENTRY(e->base_path));
|
GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, GTK_ENTRY(e->base_path));
|
||||||
gtk_table_attach(GTK_TABLE(table), bbox, 1, 2, 3, 4,
|
gtk_table_attach(GTK_TABLE(table), bbox, 1, 2, 3, 4,
|
||||||
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
|
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
|
||||||
(GtkAttachOptions) (0), 0, 0);
|
(GtkAttachOptions) (0), 0, 0);
|
||||||
|
|
||||||
e->make_in_base_path = gtk_check_button_new_with_label(_("Make in base path"));
|
e->make_in_base_path = gtk_check_button_new_with_label(_("Make in base path"));
|
||||||
gtk_table_attach(GTK_TABLE(table), e->make_in_base_path, 0, 3, 4, 5,
|
gtk_table_attach(GTK_TABLE(table), e->make_in_base_path, 0, 3, 4, 5,
|
||||||
(GtkAttachOptions) (GTK_FILL),
|
(GtkAttachOptions) (GTK_FILL),
|
||||||
(GtkAttachOptions) (0), 0, 0);
|
(GtkAttachOptions) (0), 0, 0);
|
||||||
|
|
||||||
label = gtk_label_new(_("Run command:"));
|
label = gtk_label_new(_("Run command:"));
|
||||||
gtk_table_attach(GTK_TABLE(table), label, 0, 1, 5, 6,
|
gtk_table_attach(GTK_TABLE(table), label, 0, 1, 5, 6,
|
||||||
(GtkAttachOptions) (GTK_FILL),
|
(GtkAttachOptions) (GTK_FILL),
|
||||||
(GtkAttachOptions) (0), 0, 0);
|
(GtkAttachOptions) (0), 0, 0);
|
||||||
gtk_misc_set_alignment(GTK_MISC(label), -1, 0);
|
gtk_misc_set_alignment(GTK_MISC(label), -1, 0);
|
||||||
|
|
||||||
e->run_cmd = gtk_entry_new();
|
e->run_cmd = gtk_entry_new();
|
||||||
gtk_tooltips_set_tip(tooltips, e->run_cmd,
|
gtk_tooltips_set_tip(tooltips, e->run_cmd,
|
||||||
_("Command-line to run in the project base directory. "
|
_("Command-line to run in the project base directory. "
|
||||||
"Options can be appended to the command. "
|
"Options can be appended to the command. "
|
||||||
"Leave blank to use the default run command."), NULL);
|
"Leave blank to use the default run command."), NULL);
|
||||||
button = gtk_button_new();
|
button = gtk_button_new();
|
||||||
g_signal_connect(button, "clicked", G_CALLBACK(on_file_open_button_clicked), e->run_cmd);
|
g_signal_connect(button, "clicked", G_CALLBACK(on_file_open_button_clicked), e->run_cmd);
|
||||||
image = gtk_image_new_from_stock("gtk-open", GTK_ICON_SIZE_BUTTON);
|
image = gtk_image_new_from_stock("gtk-open", GTK_ICON_SIZE_BUTTON);
|
||||||
@ -449,26 +452,26 @@ static void create_properties_dialog(PropertyDialogElements *e)
|
|||||||
gtk_box_pack_start_defaults(GTK_BOX(bbox), e->run_cmd);
|
gtk_box_pack_start_defaults(GTK_BOX(bbox), e->run_cmd);
|
||||||
gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);
|
gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0);
|
||||||
gtk_table_attach(GTK_TABLE(table), bbox, 1, 2, 5, 6,
|
gtk_table_attach(GTK_TABLE(table), bbox, 1, 2, 5, 6,
|
||||||
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
|
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
|
||||||
(GtkAttachOptions) (0), 0, 0);
|
(GtkAttachOptions) (0), 0, 0);
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
label = gtk_label_new(_("File patterns:"));
|
label = gtk_label_new(_("File patterns:"));
|
||||||
/* <small>Separate multiple patterns by a new line</small> */
|
/* <small>Separate multiple patterns by a new line</small> */
|
||||||
gtk_table_attach(GTK_TABLE(table), label, 0, 1, 6, 7,
|
gtk_table_attach(GTK_TABLE(table), label, 0, 1, 6, 7,
|
||||||
(GtkAttachOptions) (GTK_FILL),
|
(GtkAttachOptions) (GTK_FILL),
|
||||||
(GtkAttachOptions) (GTK_FILL), 0, 0);
|
(GtkAttachOptions) (GTK_FILL), 0, 0);
|
||||||
gtk_misc_set_alignment(GTK_MISC(label), -1, 0);
|
gtk_misc_set_alignment(GTK_MISC(label), -1, 0);
|
||||||
|
|
||||||
e->patterns = gtk_text_view_new();
|
e->patterns = gtk_text_view_new();
|
||||||
swin = gtk_scrolled_window_new(NULL, NULL);
|
swin = gtk_scrolled_window_new(NULL, NULL);
|
||||||
gtk_widget_set_size_request(swin, -1, 80);
|
gtk_widget_set_size_request(swin, -1, 80);
|
||||||
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(swin),
|
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(swin),
|
||||||
GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
|
GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
|
||||||
gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(swin), GTK_WIDGET(e->patterns));
|
gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(swin), GTK_WIDGET(e->patterns));
|
||||||
gtk_table_attach(GTK_TABLE(table), swin, 1, 2, 6, 7,
|
gtk_table_attach(GTK_TABLE(table), swin, 1, 2, 6, 7,
|
||||||
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
|
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
|
||||||
(GtkAttachOptions) (0), 0, 0);
|
(GtkAttachOptions) (0), 0, 0);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
gtk_container_add(GTK_CONTAINER(vbox), table);
|
gtk_container_add(GTK_CONTAINER(vbox), table);
|
||||||
@ -478,8 +481,8 @@ static void create_properties_dialog(PropertyDialogElements *e)
|
|||||||
void project_properties()
|
void project_properties()
|
||||||
{
|
{
|
||||||
PropertyDialogElements *e = g_new(PropertyDialogElements, 1);
|
PropertyDialogElements *e = g_new(PropertyDialogElements, 1);
|
||||||
GeanyProject *p = app->project;
|
GeanyProject *p = app->project;
|
||||||
gint response;
|
gint response;
|
||||||
|
|
||||||
g_return_if_fail(app->project != NULL);
|
g_return_if_fail(app->project != NULL);
|
||||||
|
|
||||||
@ -491,18 +494,18 @@ void project_properties()
|
|||||||
gtk_entry_set_text(GTK_ENTRY(e->name), p->name);
|
gtk_entry_set_text(GTK_ENTRY(e->name), p->name);
|
||||||
|
|
||||||
if (p->description != NULL)
|
if (p->description != NULL)
|
||||||
{ /* set text */
|
{ /* set text */
|
||||||
GtkTextBuffer *buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(e->description));
|
GtkTextBuffer *buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(e->description));
|
||||||
gtk_text_buffer_set_text(buffer, p->description, -1);
|
gtk_text_buffer_set_text(buffer, p->description, -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
if (p->file_patterns != NULL)
|
if (p->file_patterns != NULL)
|
||||||
{ /* set the file patterns */
|
{ /* set the file patterns */
|
||||||
gint i;
|
gint i;
|
||||||
gint len = g_strv_length(p->file_patterns);
|
gint len = g_strv_length(p->file_patterns);
|
||||||
GtkTextBuffer *buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(e->patterns));
|
GtkTextBuffer *buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(e->patterns));
|
||||||
GString *str = g_string_sized_new(len * 4);
|
GString *str = g_string_sized_new(len * 4);
|
||||||
|
|
||||||
for (i = 0; i < len; i++)
|
for (i = 0; i < len; i++)
|
||||||
{
|
{
|
||||||
@ -520,7 +523,7 @@ void project_properties()
|
|||||||
gtk_entry_set_text(GTK_ENTRY(e->file_name), p->file_name);
|
gtk_entry_set_text(GTK_ENTRY(e->file_name), p->file_name);
|
||||||
gtk_entry_set_text(GTK_ENTRY(e->base_path), p->base_path);
|
gtk_entry_set_text(GTK_ENTRY(e->base_path), p->base_path);
|
||||||
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(e->make_in_base_path),
|
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(e->make_in_base_path),
|
||||||
p->make_in_base_path);
|
p->make_in_base_path);
|
||||||
if (p->run_cmd != NULL)
|
if (p->run_cmd != NULL)
|
||||||
gtk_entry_set_text(GTK_ENTRY(e->run_cmd), p->run_cmd);
|
gtk_entry_set_text(GTK_ENTRY(e->run_cmd), p->run_cmd);
|
||||||
|
|
||||||
@ -547,8 +550,8 @@ static gboolean close_open_project()
|
|||||||
if (app->project != NULL)
|
if (app->project != NULL)
|
||||||
{
|
{
|
||||||
if (dialogs_show_question_full(NULL, GTK_STOCK_CLOSE, GTK_STOCK_CANCEL,
|
if (dialogs_show_question_full(NULL, GTK_STOCK_CLOSE, GTK_STOCK_CANCEL,
|
||||||
_("Do you want to close it before proceeding?"),
|
_("Do you want to close it before proceeding?"),
|
||||||
_("The '%s' project is already open."), app->project->name))
|
_("The '%s' project is already open."), app->project->name))
|
||||||
{
|
{
|
||||||
project_close(FALSE);
|
project_close(FALSE);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
@ -565,11 +568,11 @@ static gboolean close_open_project()
|
|||||||
* Returns: FALSE if the user needs to change any data. */
|
* Returns: FALSE if the user needs to change any data. */
|
||||||
static gboolean update_config(const PropertyDialogElements *e)
|
static gboolean update_config(const PropertyDialogElements *e)
|
||||||
{
|
{
|
||||||
const gchar *name, *file_name, *base_path;
|
const gchar *name, *file_name, *base_path;
|
||||||
gchar *locale_filename;
|
gchar *locale_filename;
|
||||||
gint name_len;
|
gint name_len;
|
||||||
gint err_code = 0;
|
gint err_code = 0;
|
||||||
gboolean new_project = FALSE;
|
gboolean new_project = FALSE;
|
||||||
GeanyProject *p;
|
GeanyProject *p;
|
||||||
|
|
||||||
g_return_val_if_fail(e != NULL, TRUE);
|
g_return_val_if_fail(e != NULL, TRUE);
|
||||||
@ -600,11 +603,11 @@ static gboolean update_config(const PropertyDialogElements *e)
|
|||||||
locale_filename = utils_get_locale_from_utf8(file_name);
|
locale_filename = utils_get_locale_from_utf8(file_name);
|
||||||
base_path = gtk_entry_get_text(GTK_ENTRY(e->base_path));
|
base_path = gtk_entry_get_text(GTK_ENTRY(e->base_path));
|
||||||
if (NZV(base_path))
|
if (NZV(base_path))
|
||||||
{ /* check whether the given directory actually exists */
|
{ /* check whether the given directory actually exists */
|
||||||
gchar *locale_path = utils_get_locale_from_utf8(base_path);
|
gchar *locale_path = utils_get_locale_from_utf8(base_path);
|
||||||
|
|
||||||
if (! g_path_is_absolute(locale_path))
|
if (! g_path_is_absolute(locale_path))
|
||||||
{ /* relative base path, so add base dir of project file name */
|
{ /* relative base path, so add base dir of project file name */
|
||||||
gchar *dir = g_path_get_dirname(locale_filename);
|
gchar *dir = g_path_get_dirname(locale_filename);
|
||||||
setptr(locale_path, g_strconcat(dir, G_DIR_SEPARATOR_S, locale_path, NULL));
|
setptr(locale_path, g_strconcat(dir, G_DIR_SEPARATOR_S, locale_path, NULL));
|
||||||
g_free(dir);
|
g_free(dir);
|
||||||
@ -615,9 +618,9 @@ static gboolean update_config(const PropertyDialogElements *e)
|
|||||||
gboolean create_dir;
|
gboolean create_dir;
|
||||||
|
|
||||||
create_dir = dialogs_show_question_full(NULL, GTK_STOCK_OK, GTK_STOCK_CANCEL,
|
create_dir = dialogs_show_question_full(NULL, GTK_STOCK_OK, GTK_STOCK_CANCEL,
|
||||||
_("Create the project's base path directory?"),
|
_("Create the project's base path directory?"),
|
||||||
_("The path \"%s\" does not exist."),
|
_("The path \"%s\" does not exist."),
|
||||||
base_path);
|
base_path);
|
||||||
|
|
||||||
if (create_dir)
|
if (create_dir)
|
||||||
err_code = utils_mkdir(locale_path, TRUE);
|
err_code = utils_mkdir(locale_path, TRUE);
|
||||||
@ -626,7 +629,7 @@ static gboolean update_config(const PropertyDialogElements *e)
|
|||||||
{
|
{
|
||||||
if (err_code != 0)
|
if (err_code != 0)
|
||||||
SHOW_ERR1(_("Project base directory could not be created (%s)."),
|
SHOW_ERR1(_("Project base directory could not be created (%s)."),
|
||||||
g_strerror(err_code));
|
g_strerror(err_code));
|
||||||
gtk_widget_grab_focus(e->base_path);
|
gtk_widget_grab_focus(e->base_path);
|
||||||
utils_free_pointers(locale_path, locale_filename, NULL);
|
utils_free_pointers(locale_path, locale_filename, NULL);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
@ -656,7 +659,7 @@ static gboolean update_config(const PropertyDialogElements *e)
|
|||||||
/* use "." if base_path is empty */
|
/* use "." if base_path is empty */
|
||||||
setptr(p->base_path, g_strdup(NZV(base_path) ? base_path : "./"));
|
setptr(p->base_path, g_strdup(NZV(base_path) ? base_path : "./"));
|
||||||
|
|
||||||
if (! new_project) /* save properties specific fields */
|
if (! new_project) /* save properties specific fields */
|
||||||
{
|
{
|
||||||
GtkTextIter start, end;
|
GtkTextIter start, end;
|
||||||
/*gchar *tmp;*/
|
/*gchar *tmp;*/
|
||||||
@ -700,7 +703,7 @@ static void run_dialog(GtkWidget *dialog, GtkWidget *entry)
|
|||||||
{
|
{
|
||||||
/* set filename in the file chooser dialog */
|
/* set filename in the file chooser dialog */
|
||||||
const gchar *utf8_filename = gtk_entry_get_text(GTK_ENTRY(entry));
|
const gchar *utf8_filename = gtk_entry_get_text(GTK_ENTRY(entry));
|
||||||
gchar *locale_filename = utils_get_locale_from_utf8(utf8_filename);
|
gchar *locale_filename = utils_get_locale_from_utf8(utf8_filename);
|
||||||
|
|
||||||
if (g_path_is_absolute(locale_filename))
|
if (g_path_is_absolute(locale_filename))
|
||||||
{
|
{
|
||||||
@ -747,6 +750,8 @@ static void run_dialog(GtkWidget *dialog, GtkWidget *entry)
|
|||||||
}
|
}
|
||||||
gtk_widget_destroy(dialog);
|
gtk_widget_destroy(dialog);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
@ -754,7 +759,8 @@ static void on_file_save_button_clicked(GtkButton *button, PropertyDialogElement
|
|||||||
{
|
{
|
||||||
#ifdef G_OS_WIN32
|
#ifdef G_OS_WIN32
|
||||||
gchar *path = win32_show_project_open_dialog(e->dialog, _("Choose Project Filename"),
|
gchar *path = win32_show_project_open_dialog(e->dialog, _("Choose Project Filename"),
|
||||||
gtk_entry_get_text(GTK_ENTRY(e->file_name)), TRUE, TRUE);
|
gtk_entry_get_text(GTK_ENTRY(
|
||||||
|
e->file_name)), TRUE, TRUE);
|
||||||
if (path != NULL)
|
if (path != NULL)
|
||||||
{
|
{
|
||||||
gtk_entry_set_text(GTK_ENTRY(e->file_name), path);
|
gtk_entry_set_text(GTK_ENTRY(e->file_name), path);
|
||||||
@ -765,9 +771,9 @@ static void on_file_save_button_clicked(GtkButton *button, PropertyDialogElement
|
|||||||
|
|
||||||
/* initialise the dialog */
|
/* initialise the dialog */
|
||||||
dialog = gtk_file_chooser_dialog_new(_("Choose Project Filename"), NULL,
|
dialog = gtk_file_chooser_dialog_new(_("Choose Project Filename"), NULL,
|
||||||
GTK_FILE_CHOOSER_ACTION_SAVE,
|
GTK_FILE_CHOOSER_ACTION_SAVE,
|
||||||
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
|
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
|
||||||
GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT, NULL);
|
GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT, NULL);
|
||||||
gtk_widget_set_name(dialog, "GeanyDialogProject");
|
gtk_widget_set_name(dialog, "GeanyDialogProject");
|
||||||
gtk_window_set_destroy_with_parent(GTK_WINDOW(dialog), TRUE);
|
gtk_window_set_destroy_with_parent(GTK_WINDOW(dialog), TRUE);
|
||||||
gtk_window_set_skip_taskbar_hint(GTK_WINDOW(dialog), TRUE);
|
gtk_window_set_skip_taskbar_hint(GTK_WINDOW(dialog), TRUE);
|
||||||
@ -783,7 +789,8 @@ static void on_file_open_button_clicked(GtkButton *button, PropertyDialogElement
|
|||||||
{
|
{
|
||||||
#ifdef G_OS_WIN32
|
#ifdef G_OS_WIN32
|
||||||
gchar *path = win32_show_project_open_dialog(e->dialog, _("Choose Project Run Command"),
|
gchar *path = win32_show_project_open_dialog(e->dialog, _("Choose Project Run Command"),
|
||||||
gtk_entry_get_text(GTK_ENTRY(e->run_cmd)), FALSE, FALSE);
|
gtk_entry_get_text(GTK_ENTRY(
|
||||||
|
e->run_cmd)), FALSE, FALSE);
|
||||||
if (path != NULL)
|
if (path != NULL)
|
||||||
{
|
{
|
||||||
gtk_entry_set_text(GTK_ENTRY(e->run_cmd), path);
|
gtk_entry_set_text(GTK_ENTRY(e->run_cmd), path);
|
||||||
@ -794,9 +801,9 @@ static void on_file_open_button_clicked(GtkButton *button, PropertyDialogElement
|
|||||||
|
|
||||||
/* initialise the dialog */
|
/* initialise the dialog */
|
||||||
dialog = gtk_file_chooser_dialog_new(_("Choose Project Run Command"), NULL,
|
dialog = gtk_file_chooser_dialog_new(_("Choose Project Run Command"), NULL,
|
||||||
GTK_FILE_CHOOSER_ACTION_OPEN,
|
GTK_FILE_CHOOSER_ACTION_OPEN,
|
||||||
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
|
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
|
||||||
GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, NULL);
|
GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, NULL);
|
||||||
gtk_widget_set_name(dialog, "GeanyDialog");
|
gtk_widget_set_name(dialog, "GeanyDialog");
|
||||||
gtk_window_set_destroy_with_parent(GTK_WINDOW(dialog), TRUE);
|
gtk_window_set_destroy_with_parent(GTK_WINDOW(dialog), TRUE);
|
||||||
gtk_window_set_skip_taskbar_hint(GTK_WINDOW(dialog), TRUE);
|
gtk_window_set_skip_taskbar_hint(GTK_WINDOW(dialog), TRUE);
|
||||||
@ -811,9 +818,9 @@ static void on_file_open_button_clicked(GtkButton *button, PropertyDialogElement
|
|||||||
/* sets the project base path and the project file name according to the project name */
|
/* sets the project base path and the project file name according to the project name */
|
||||||
static void on_name_entry_changed(GtkEditable *editable, PropertyDialogElements *e)
|
static void on_name_entry_changed(GtkEditable *editable, PropertyDialogElements *e)
|
||||||
{
|
{
|
||||||
gchar *base_path;
|
gchar *base_path;
|
||||||
gchar *file_name;
|
gchar *file_name;
|
||||||
gchar *name;
|
gchar *name;
|
||||||
const gchar *project_dir = local_prefs.project_file_path;
|
const gchar *project_dir = local_prefs.project_file_path;
|
||||||
|
|
||||||
if (entries_modified)
|
if (entries_modified)
|
||||||
@ -823,13 +830,13 @@ static void on_name_entry_changed(GtkEditable *editable, PropertyDialogElements
|
|||||||
if (name != NULL && strlen(name) > 0)
|
if (name != NULL && strlen(name) > 0)
|
||||||
{
|
{
|
||||||
base_path = g_strconcat(project_dir, G_DIR_SEPARATOR_S,
|
base_path = g_strconcat(project_dir, G_DIR_SEPARATOR_S,
|
||||||
name, G_DIR_SEPARATOR_S, NULL);
|
name, G_DIR_SEPARATOR_S, NULL);
|
||||||
if (project_prefs.project_file_in_basedir)
|
if (project_prefs.project_file_in_basedir)
|
||||||
file_name = g_strconcat(project_dir, G_DIR_SEPARATOR_S, name, G_DIR_SEPARATOR_S,
|
file_name = g_strconcat(project_dir, G_DIR_SEPARATOR_S, name, G_DIR_SEPARATOR_S,
|
||||||
name, "." GEANY_PROJECT_EXT, NULL);
|
name, "." GEANY_PROJECT_EXT, NULL);
|
||||||
else
|
else
|
||||||
file_name = g_strconcat(project_dir, G_DIR_SEPARATOR_S,
|
file_name = g_strconcat(project_dir, G_DIR_SEPARATOR_S,
|
||||||
name, "." GEANY_PROJECT_EXT, NULL);
|
name, "." GEANY_PROJECT_EXT, NULL);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -880,7 +887,7 @@ gboolean project_load_file(const gchar *locale_file_name)
|
|||||||
* The filename is expected in the locale encoding. */
|
* The filename is expected in the locale encoding. */
|
||||||
static gboolean load_config(const gchar *filename)
|
static gboolean load_config(const gchar *filename)
|
||||||
{
|
{
|
||||||
GKeyFile *config;
|
GKeyFile *config;
|
||||||
GeanyProject *p;
|
GeanyProject *p;
|
||||||
|
|
||||||
/* there should not be an open project */
|
/* there should not be an open project */
|
||||||
@ -902,13 +909,13 @@ static gboolean load_config(const gchar *filename)
|
|||||||
p->make_in_base_path = utils_get_setting_boolean(config, "project", "make_in_base_path", TRUE);
|
p->make_in_base_path = utils_get_setting_boolean(config, "project", "make_in_base_path", TRUE);
|
||||||
p->run_cmd = utils_get_setting_string(config, "project", "run_cmd", "");
|
p->run_cmd = utils_get_setting_string(config, "project", "run_cmd", "");
|
||||||
p->file_patterns = g_key_file_get_string_list(config, "project", "file_patterns", NULL, NULL);
|
p->file_patterns = g_key_file_get_string_list(config, "project", "file_patterns", NULL, NULL);
|
||||||
|
|
||||||
p->build_1_cmd = utils_get_setting_string(config, "build_menu", "cmd_1", NULL );
|
p->build_1_cmd = utils_get_setting_string(config, "build_menu", "cmd_1", NULL);
|
||||||
p->build_2_cmd = utils_get_setting_string(config, "build_menu", "cmd_2", NULL );
|
p->build_2_cmd = utils_get_setting_string(config, "build_menu", "cmd_2", NULL);
|
||||||
p->build_3_cmd = utils_get_setting_string(config, "build_menu", "cmd_3", NULL );
|
p->build_3_cmd = utils_get_setting_string(config, "build_menu", "cmd_3", NULL);
|
||||||
p->build_1_label = utils_get_setting_string(config, "build_menu", "label_1", NULL );
|
p->build_1_label = utils_get_setting_string(config, "build_menu", "label_1", NULL);
|
||||||
p->build_2_label = utils_get_setting_string(config, "build_menu", "label_2", NULL );
|
p->build_2_label = utils_get_setting_string(config, "build_menu", "label_2", NULL);
|
||||||
p->build_3_label = utils_get_setting_string(config, "build_menu", "label_3", NULL );
|
p->build_3_label = utils_get_setting_string(config, "build_menu", "label_3", NULL);
|
||||||
|
|
||||||
if (project_prefs.project_session)
|
if (project_prefs.project_session)
|
||||||
{
|
{
|
||||||
@ -939,10 +946,10 @@ static gboolean load_config(const gchar *filename)
|
|||||||
static gboolean write_config(gboolean emit_signal)
|
static gboolean write_config(gboolean emit_signal)
|
||||||
{
|
{
|
||||||
GeanyProject *p;
|
GeanyProject *p;
|
||||||
GKeyFile *config;
|
GKeyFile *config;
|
||||||
gchar *filename;
|
gchar *filename;
|
||||||
gchar *data;
|
gchar *data;
|
||||||
gboolean ret = FALSE;
|
gboolean ret = FALSE;
|
||||||
|
|
||||||
g_return_val_if_fail(app->project != NULL, FALSE);
|
g_return_val_if_fail(app->project != NULL, FALSE);
|
||||||
|
|
||||||
@ -975,7 +982,7 @@ static gboolean write_config(gboolean emit_signal)
|
|||||||
g_key_file_set_string(config, "build_menu", "label_3", p->build_3_label);
|
g_key_file_set_string(config, "build_menu", "label_3", p->build_3_label);
|
||||||
if (p->file_patterns)
|
if (p->file_patterns)
|
||||||
g_key_file_set_string_list(config, "project", "file_patterns",
|
g_key_file_set_string_list(config, "project", "file_patterns",
|
||||||
(const gchar**) p->file_patterns, g_strv_length(p->file_patterns));
|
(const gchar**) p->file_patterns, g_strv_length(p->file_patterns));
|
||||||
|
|
||||||
/* store the session files into the project too */
|
/* store the session files into the project too */
|
||||||
if (project_prefs.project_session)
|
if (project_prefs.project_session)
|
||||||
@ -1011,7 +1018,8 @@ gchar *project_get_base_path()
|
|||||||
if (g_path_is_absolute(project->base_path))
|
if (g_path_is_absolute(project->base_path))
|
||||||
return g_strdup(project->base_path);
|
return g_strdup(project->base_path);
|
||||||
else
|
else
|
||||||
{ /* build base_path out of project file name's dir and base_path */
|
{
|
||||||
|
/* build base_path out of project file name's dir and base_path */
|
||||||
gchar *path;
|
gchar *path;
|
||||||
gchar *dir = g_path_get_dirname(project->file_name);
|
gchar *dir = g_path_get_dirname(project->file_name);
|
||||||
|
|
||||||
@ -1049,7 +1057,7 @@ void project_save_prefs(GKeyFile *config)
|
|||||||
g_key_file_set_string(config, "project", "session_file", utf8_filename);
|
g_key_file_set_string(config, "project", "session_file", utf8_filename);
|
||||||
}
|
}
|
||||||
g_key_file_set_string(config, "project", "project_file_path",
|
g_key_file_set_string(config, "project", "project_file_path",
|
||||||
NVL(local_prefs.project_file_path, ""));
|
NVL(local_prefs.project_file_path, ""));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1059,14 +1067,14 @@ void project_load_prefs(GKeyFile *config)
|
|||||||
{
|
{
|
||||||
g_return_if_fail(project_prefs.session_file == NULL);
|
g_return_if_fail(project_prefs.session_file == NULL);
|
||||||
project_prefs.session_file = utils_get_setting_string(config, "project",
|
project_prefs.session_file = utils_get_setting_string(config, "project",
|
||||||
"session_file", "");
|
"session_file", "");
|
||||||
}
|
}
|
||||||
local_prefs.project_file_path = utils_get_setting_string(config, "project",
|
local_prefs.project_file_path = utils_get_setting_string(config, "project",
|
||||||
"project_file_path", NULL);
|
"project_file_path", NULL);
|
||||||
if (local_prefs.project_file_path == NULL)
|
if (local_prefs.project_file_path == NULL)
|
||||||
{
|
{
|
||||||
local_prefs.project_file_path = g_strconcat(g_get_home_dir(),
|
local_prefs.project_file_path = g_strconcat(g_get_home_dir(),
|
||||||
G_DIR_SEPARATOR_S, PROJECT_DIR, NULL);
|
G_DIR_SEPARATOR_S, PROJECT_DIR, NULL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1080,14 +1088,14 @@ void project_setup_prefs()
|
|||||||
g_return_if_fail(local_prefs.project_file_path != NULL);
|
g_return_if_fail(local_prefs.project_file_path != NULL);
|
||||||
gtk_entry_set_text(GTK_ENTRY(path_entry), local_prefs.project_file_path);
|
gtk_entry_set_text(GTK_ENTRY(path_entry), local_prefs.project_file_path);
|
||||||
ui_setup_open_button_callback(path_btn, NULL,
|
ui_setup_open_button_callback(path_btn, NULL,
|
||||||
GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, GTK_ENTRY(path_entry));
|
GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, GTK_ENTRY(path_entry));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Update project-related preferences after using the Preferences dialog. */
|
/* Update project-related preferences after using the Preferences dialog. */
|
||||||
void project_apply_prefs()
|
void project_apply_prefs()
|
||||||
{
|
{
|
||||||
GtkWidget *path_entry = lookup_widget(ui_widgets.prefs_dialog, "project_file_path_entry");
|
GtkWidget *path_entry = lookup_widget(ui_widgets.prefs_dialog, "project_file_path_entry");
|
||||||
const gchar *str;
|
const gchar *str;
|
||||||
|
|
||||||
str = gtk_entry_get_text(GTK_ENTRY(path_entry));
|
str = gtk_entry_get_text(GTK_ENTRY(path_entry));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user