Revision: 5752 http://geany.svn.sourceforge.net/geany/?rev=5752&view=rev Author: colombanw Date: 2011-04-30 21:50:22 +0000 (Sat, 30 Apr 2011)
Log Message: ----------- Fix project patterns and make them visible
Project patterns support was almost present but deactivated by default because they were not used for anything. Enable them and change the pattern separator to space similarly to the find in files dialog.
Based on a patch by Ji?\197?\153?\195?\173 Techet, thanks.
Modified Paths: -------------- trunk/ChangeLog trunk/src/project.c
Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2011-04-30 16:24:53 UTC (rev 5751) +++ trunk/ChangeLog 2011-04-30 21:50:22 UTC (rev 5752) @@ -1,3 +1,10 @@ +2011-04-30 Colomban Wendling <colomban(at)geany(dot)org> + + * src/project.c: + Fix project patterns and make them visible (based on a patch + by Jiří Techet, thanks). + + 2011-04-30 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
* src/filetypes.c, data/filetype_extensions.conf:
Modified: trunk/src/project.c =================================================================== --- trunk/src/project.c 2011-04-30 16:24:53 UTC (rev 5751) +++ trunk/src/project.c 2011-04-30 21:50:22 UTC (rev 5752) @@ -487,24 +487,19 @@ g_signal_connect(ui_lookup_widget(e->dialog, "radio_long_line_custom"), "toggled", G_CALLBACK(on_radio_long_line_custom_toggled), ui_lookup_widget(e->dialog, "spin_long_line"));
-#if 0 label = gtk_label_new(_("File patterns:")); - /* <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, 4, 5, (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (GTK_FILL), 0, 0); + (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
- e->patterns = gtk_text_view_new(); - swin = gtk_scrolled_window_new(NULL, NULL); - gtk_widget_set_size_request(swin, -1, 80); - gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(swin), - GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); - gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(swin), GTK_WIDGET(e->patterns)); - gtk_table_attach(GTK_TABLE(table), swin, 1, 2, 4, 5, + e->patterns = gtk_entry_new(); + ui_widget_set_tooltip_text(e->patterns, + _("Space separated list of file patterns used for the find in files dialog " + "(e.g. *.c *.h)")); + gtk_table_attach(GTK_TABLE(table), e->patterns, 1, 2, 4, 5, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); -#endif
label = gtk_label_new(_("Project")); gtk_notebook_insert_page(GTK_NOTEBOOK(notebook), table, label, 0); @@ -551,26 +546,14 @@ gtk_text_buffer_set_text(buffer, p->description, -1); }
-#if 0 if (p->file_patterns != NULL) { /* set the file patterns */ - gint i; - gint len = g_strv_length(p->file_patterns); - GtkTextBuffer *buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(e->patterns)); - GString *str = g_string_sized_new(len * 4); + gchar *str;
- for (i = 0; i < len; i++) - { - if (p->file_patterns[i] != NULL) - { - g_string_append(str, p->file_patterns[i]); - g_string_append_c(str, '\n'); - } - } - gtk_text_buffer_set_text(buffer, str->str, -1); - g_string_free(str, TRUE); + str = g_strjoinv(" ", p->file_patterns); + gtk_entry_set_text(GTK_ENTRY(e->patterns), str); + g_free(str); } -#endif
g_signal_emit_by_name(geany_object, "project-dialog-create", e->notebook); gtk_widget_show_all(e->dialog); @@ -644,6 +627,8 @@ priv.indentation = &indentation; project->priv = &priv;
+ project->file_patterns = NULL; + project->long_line_behaviour = 1 /* use global settings */; project->long_line_column = editor_prefs.long_line_column;
@@ -759,6 +744,8 @@ GeanyBuildCommand *oldvalue; GeanyFiletype *ft = doc ? doc->file_type : NULL; GtkWidget *widget; + gchar *tmp; + GString *str;
/* get and set the project description */ buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(e->description)); @@ -798,16 +785,15 @@ p->long_line_column = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widget)); apply_editor_prefs();
-#if 0 /* get and set the project file patterns */ - buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(e->patterns)); - gtk_text_buffer_get_start_iter(buffer, &start); - gtk_text_buffer_get_end_iter(buffer, &end); - tmp = gtk_text_buffer_get_text(buffer, &start, &end, FALSE); + tmp = g_strdup(gtk_entry_get_text(GTK_ENTRY(e->patterns))); g_strfreev(p->file_patterns); - p->file_patterns = g_strsplit(tmp, "\n", -1); + g_strstrip(tmp); + str = g_string_new(tmp); + do {} while (utils_string_replace_all(str, " ", " ")); + p->file_patterns = g_strsplit(str->str, " ", -1); + g_string_free(str, TRUE); g_free(tmp); -#endif }
update_ui();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.