aboutsummaryrefslogtreecommitdiff
path: root/hardinfo2/report.c
diff options
context:
space:
mode:
authorLeandro A. F. Pereira <leandro@hardinfo.org>2006-10-25 13:38:32 +0000
committerLeandro A. F. Pereira <leandro@hardinfo.org>2006-10-25 13:38:32 +0000
commitfd6337f2c940aa3aae42eb9952b32ca12f8b757d (patch)
treea50a07b2919f34ba48baec9378124533d8f92bb3 /hardinfo2/report.c
parent7b773f5c8225479e0748db69b9ac7f92b127890c (diff)
Fix report output format option.
Diffstat (limited to 'hardinfo2/report.c')
-rw-r--r--hardinfo2/report.c39
1 files changed, 11 insertions, 28 deletions
diff --git a/hardinfo2/report.c b/hardinfo2/report.c
index 20025183..d20a8041 100644
--- a/hardinfo2/report.c
+++ b/hardinfo2/report.c
@@ -104,11 +104,7 @@ report_table(ReportContext *ctx, gchar *text)
}
if (*key == '$') {
- gchar **tmp;
-
- tmp = g_strsplit(++key, "$", 0);
- report_key_value(ctx, tmp[1], value);
- g_strfreev(tmp);
+ report_key_value(ctx, strchr(key + 1, '$') + 1, value);
} else {
report_key_value(ctx, key, value);
}
@@ -294,6 +290,11 @@ report_get_filename(void)
GtkFileFilter *filter;
GtkWidget *dialog;
gchar *filename = NULL;
+ static FileTypes file_types[] = {
+ { "HTML", "text/html", ".html" },
+ { "Plain Text", "text/plain", ".txt" },
+ { NULL, NULL, NULL }
+ };
dialog = gtk_file_chooser_dialog_new("Save File",
NULL,
@@ -308,31 +309,13 @@ report_get_filename(void)
gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER(dialog), "hardinfo report");
- filter = gtk_file_filter_new();
- gtk_file_filter_add_mime_type(filter, "text/html");
- gtk_file_filter_set_name(filter, "HTML");
- gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(dialog), filter);
-
- filter = gtk_file_filter_new();
- gtk_file_filter_add_mime_type(filter, "text/plain");
- gtk_file_filter_set_name(filter, "Text");
- gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(dialog), filter);
+ file_chooser_add_filters(dialog, file_types);
+ file_chooser_open_expander(dialog);
if (gtk_dialog_run(GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT) {
- const gchar *f;
- filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER (dialog));
-
- filter = gtk_file_chooser_get_filter(GTK_FILE_CHOOSER(dialog));
- f = gtk_file_filter_get_name(filter);
-
- if (g_str_equal(f, "HTML") && !g_str_has_suffix(filename, ".html")) {
- filename = g_strconcat(filename, ".html", NULL);
- } else if (g_str_equal(f, "Text") && !g_str_has_suffix(filename, ".txt")) {
- filename = g_strconcat(filename, ".txt", NULL);
- } else {
- g_free(filename);
- filename = NULL;
- }
+ gchar *ext = file_chooser_get_extension(dialog, file_types);
+
+ filename = file_chooser_build_filename(dialog, ext);
}
gtk_widget_destroy (dialog);