Revision: 1202 http://svn.sourceforge.net/geany/?rev=1202&view=rev Author: eht16 Date: 2007-01-18 10:48:43 -0800 (Thu, 18 Jan 2007)
Log Message: ----------- Do not auto complete project filename and base path when they were changed manually.
Modified Paths: -------------- trunk/ChangeLog trunk/src/project.c
Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2007-01-18 11:31:37 UTC (rev 1201) +++ trunk/ChangeLog 2007-01-18 18:48:43 UTC (rev 1202) @@ -1,3 +1,9 @@ +2007-01-18 Enrico Tröger enrico.troeger@uvena.de + + * src/project.c: Do not auto complete project filename and base path + when they were changed manually. + + 2007-01-18 Nick Treleaven nick.treleaven@btinternet.com
* src/keybindings.c:
Modified: trunk/src/project.c =================================================================== --- trunk/src/project.c 2007-01-18 11:31:37 UTC (rev 1201) +++ trunk/src/project.c 2007-01-18 18:48:43 UTC (rev 1202) @@ -35,6 +35,8 @@ #endif
+static gboolean entries_modified; + // simple struct to keep references to the elements of the properties dialog typedef struct { @@ -54,6 +56,7 @@ static void on_folder_open_button_clicked(GtkButton *button, GtkWidget *entry); static gboolean close_open_project(); static void on_name_entry_changed(GtkEditable *editable, PropertyDialogElements *e); +static void on_entries_changed(GtkEditable *editable, PropertyDialogElements *e);
void project_new() @@ -112,6 +115,7 @@ ok_button, GTK_RESPONSE_OK, NULL); vbox = ui_dialog_vbox_new(GTK_DIALOG(e->dialog));
+ entries_modified = FALSE;
table = gtk_table_new(5, 2, FALSE); gtk_table_set_row_spacings(GTK_TABLE(table), 5); @@ -207,6 +211,9 @@ g_signal_connect((gpointer) e->name, "changed", G_CALLBACK(on_name_entry_changed), e); // run the callback manually to initialise the base_path and file_name fields on_name_entry_changed(GTK_EDITABLE(e->name), e); + + g_signal_connect((gpointer) e->file_name, "changed", G_CALLBACK(on_entries_changed), e); + g_signal_connect((gpointer) e->base_path, "changed", G_CALLBACK(on_entries_changed), e); } g_signal_connect((gpointer) e->dialog, "response", G_CALLBACK(on_properties_dialog_response), e); @@ -465,18 +472,21 @@ #endif }
+ // "projects" is part of the default project base path so be carefully when translating // please avoid special characters and spaces, look at the source for details or ask Frank #define PROJECT_DIR _("projects")
/* sets the project base path and the project file name according to the project name */ -/// TODO cancel the process once base_path resp. file_name has been changed manually static void on_name_entry_changed(GtkEditable *editable, PropertyDialogElements *e) { gchar *base_path; gchar *file_name; gchar *name;
+ if (entries_modified) + return; + name = gtk_editable_get_chars(editable, 0, -1); if (name != NULL && strlen(name) > 0) { @@ -499,6 +509,14 @@ gtk_entry_set_text(GTK_ENTRY(e->base_path), base_path); gtk_entry_set_text(GTK_ENTRY(e->file_name), file_name);
+ entries_modified = FALSE; + g_free(base_path); g_free(file_name); } + + +static void on_entries_changed(GtkEditable *editable, PropertyDialogElements *e) +{ + entries_modified = TRUE; +}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.