From cfe29d9ad04761e7a97964af5e8f20fca7d22cfc Mon Sep 17 00:00:00 2001 From: Mike Newman Date: Tue, 10 Jun 2003 21:30:22 +0000 Subject: [PATCH] Allow /t and /n in dialog text. Some code cleanup. --- ChangeLog | 13 +++++++++++++ TODO | 12 ++---------- src/fileselection.c | 12 ++---------- src/main.c | 22 +++++++++++----------- src/tree.c | 6 ------ 5 files changed, 28 insertions(+), 37 deletions(-) diff --git a/ChangeLog b/ChangeLog index 3476015..82888be 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,16 @@ +2003-06-10 Mike Newman + + * src/fileselection.c, src/main.c, src/tree.c, TODO: Allow the use + of '\t' and '\n' in dialog text. Also, g_strcompress the separator + strings in --list and --file-selection so code declared as 'arse' + by Glynn can be removed :) + + Also removed some completed tasks from TODO. + +2003-06-10 Mike Newman + + * src/main.c: allow use of /t and /n in dialog text. + 2003-06-09 Kevin C. Krinke * src/gdialog.in: wrap gdialog.real/dialog when not in X-Window diff --git a/TODO b/TODO index 7016a6b..dead012 100644 --- a/TODO +++ b/TODO @@ -1,21 +1,13 @@ * Canceling progress dialog should kill off process and close the dialog - Current it does a Hangup, I'm not sure how to solve this -* Support extra buttons, help buttons with the ability to change the label on the - button +* Support extra buttons, help buttons with the ability to change the label on the button - Suggested by Kevin Krinke * Text markup - bold, italic, underline, colours, etc.. - Suggested by Kevin Krinke -* Text arguments support '\t' and '\n' - - Suggested by Kevin Krinke * List dialogs should all support --text - Suggested by Kevin Krinke -* Would be nice to have an option to use your own icon in the info/warning/message/question - dialogs +* Would be nice to have an option to use your own icon in the info/warning/message/question dialogs - Suggested by Kevin Krinke -* gdialog used to have env vars to specify the return values of some of the dialogs - - Suggested by Kevin Krinke -* Add multiple file selection support - - Suggested by Kevin Krinke * Add pixmap support to list dialog - Suggested by Dani Brody * Add new format diff --git a/src/fileselection.c b/src/fileselection.c index 4e87d04..d392b0d 100644 --- a/src/fileselection.c +++ b/src/fileselection.c @@ -87,18 +87,10 @@ zenity_fileselection_dialog_response (GtkWidget *widget, int response, gpointer selections = gtk_file_selection_get_selections (GTK_FILE_SELECTION (widget)); for (i=0;selections[i] != NULL; i++) { g_printerr ("%s", g_filename_to_utf8 ((gchar*)selections[i], -1, NULL, NULL, NULL)); - if (selections[i+1] != NULL) { - /* FIXME: This is a blatant copy of Gman's arse in tree.c */ - if (strstr ((const gchar *) separator, (const gchar *) "\\n") != NULL) - g_printerr ("\n"); - else if (strstr ((const gchar *) separator, (const gchar *) "\\t") != NULL) - g_printerr ("\t"); - else + if (selections[i+1] != NULL) g_printerr ("%s",separator); - } else { - g_printerr ("\n"); - } } + g_printerr("\n"); g_strfreev(selections); g_free(separator); diff --git a/src/main.c b/src/main.c index 32c98a1..5a111ef 100644 --- a/src/main.c +++ b/src/main.c @@ -1125,7 +1125,7 @@ zenity_parse_options_callback (poptContext ctx, static gint parse_option_text = 0; static gint parse_option_file = 0; static gint parse_option_editable = 0; - + if (reason == POPT_CALLBACK_REASON_POST) return; else if (reason != POPT_CALLBACK_REASON_OPTION) @@ -1235,22 +1235,22 @@ zenity_parse_options_callback (poptContext ctx, if (parse_option_text > 6) zenity_error ("--text", ERROR_DUPLICATE); - + switch (results->mode) { case MODE_CALENDAR: - results->calendar_data->dialog_text = g_strdup (arg); + results->calendar_data->dialog_text = g_strdup (g_strcompress (arg)); break; case MODE_ENTRY: - results->entry_data->dialog_text = g_strdup (arg); + results->entry_data->dialog_text = g_strdup (g_strcompress (arg)); break; case MODE_ERROR: case MODE_QUESTION: case MODE_WARNING: case MODE_INFO: - results->msg_data->dialog_text = g_strdup (arg); + results->msg_data->dialog_text = g_strdup (g_strcompress (arg)); break; case MODE_PROGRESS: - results->progress_data->dialog_text = g_strdup (arg); + results->progress_data->dialog_text = g_strdup (g_strcompress (arg)); break; default: zenity_error ("--text", ERROR_SUPPORT); @@ -1388,16 +1388,16 @@ zenity_parse_options_callback (poptContext ctx, results->tree_data->radiobox = TRUE; break; case OPTION_SEPERATOR: - if (parse_option_separator) + if (parse_option_separator > 2) zenity_error ("--separator", ERROR_DUPLICATE); switch (results->mode) { case MODE_LIST: - results->tree_data->separator = g_strdup (arg); - parse_option_separator = TRUE; + results->tree_data->separator = g_strdup (g_strcompress (arg)); + parse_option_separator++; break; case MODE_FILE: - results->file_data->separator = g_strdup (arg); - parse_option_separator = TRUE; + results->file_data->separator = g_strdup (g_strcompress (arg)); + parse_option_separator++; break; default: zenity_error ("--separator", ERROR_SUPPORT); diff --git a/src/tree.c b/src/tree.c index 903ef70..80562d8 100644 --- a/src/tree.c +++ b/src/tree.c @@ -478,12 +478,6 @@ zenity_tree_dialog_output (void) for (tmp = selected; tmp; tmp = tmp->next) { if (tmp->next != NULL) { - /* FIXME: There must be a nicer way to do this. This is just arse */ - if (strstr ((const gchar *) separator, (const gchar *) "\\n") != NULL) - g_printerr ("%s\n", (gchar *) tmp->data); - else if (strstr ((const gchar *) separator, (const gchar *) "\\t") != NULL) - g_printerr ("%s\t", (gchar *) tmp->data); - else g_printerr ("%s%s", (gchar *) tmp->data, separator); } else