From 1e48267fd459c86a2da99f176b87749eb5b7970a Mon Sep 17 00:00:00 2001 From: =?utf8?q?Pekka=20Geh=C3=B6r?= Date: Thu, 8 Jan 2009 07:47:06 +0200 Subject: [PATCH] fix theme name --- irreco/src/core/irreco_theme_save_dlg.c | 38 ++++++++++++++++++--------------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/irreco/src/core/irreco_theme_save_dlg.c b/irreco/src/core/irreco_theme_save_dlg.c index 284fbf4d..e5fc2e3d 100644 --- a/irreco/src/core/irreco_theme_save_dlg.c +++ b/irreco/src/core/irreco_theme_save_dlg.c @@ -172,19 +172,18 @@ gboolean _save_theme_to_dir(IrrecoThemeSaveDlg *self, IrrecoData *irreco_data, gchar *folder = NULL; IrrecoThemeManager *theme_manager = irreco_data->theme_manager; IrrecoTheme *same_theme = NULL; - - gint delete_mode = 0; - gchar *same_theme_folder = NULL; - GString *message = g_string_new(NULL); - + gint delete_mode = 0; + gchar *same_theme_folder = NULL; + GString *message = g_string_new(NULL); + GString *theme_name; + gchar *redy_theme_name; IRRECO_ENTER /* Create Theme Folder */ - theme_path = g_string_new(""); - + theme_name = g_string_new(irreco_theme->name->str); if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(self->radio1))) { folder = "/media/mmc1/irreco/"; @@ -200,7 +199,13 @@ gboolean _save_theme_to_dir(IrrecoThemeSaveDlg *self, IrrecoData *irreco_data, } else { } - g_string_printf(theme_path, "%s%s", folder, irreco_theme->name->str); + + /* parse theme name */ + g_string_ascii_down(theme_name); + redy_theme_name = g_strdup(theme_name->str); + g_strdelimit(redy_theme_name, " ", '_'); + g_strdelimit(redy_theme_name, ",-|> <.", 'a'); + g_string_printf(theme_path, "%s%s", folder, redy_theme_name); IRRECO_STRING_TABLE_FOREACH_DATA(theme_manager->themes, IrrecoTheme *, theme) @@ -214,7 +219,6 @@ gboolean _save_theme_to_dir(IrrecoThemeSaveDlg *self, IrrecoData *irreco_data, "Please remove it first from the\n" "Application Manager or change the name of the theme"), theme->name->str); - irreco_error_dlg(GTK_WINDOW(self), message->str); goto end; @@ -265,6 +269,7 @@ gboolean _save_theme_to_dir(IrrecoThemeSaveDlg *self, IrrecoData *irreco_data, /* Create dialog*/ if (!irreco_yes_no_dlg( GTK_WINDOW(self), message->str)) { + goto end; /*continue;*/ } else { /* Remove theme folder and then make it again*/ @@ -285,13 +290,11 @@ gboolean _save_theme_to_dir(IrrecoThemeSaveDlg *self, IrrecoData *irreco_data, /*Create folder */ g_mkdir(theme_path->str, 0777); - /*Create new theme*/ if (delete_mode == 0 || delete_mode == 2) { irreco_theme_save(irreco_theme, irreco_data, theme_path->str); - } else { irreco_theme_set(same_theme, irreco_theme->name->str, @@ -301,16 +304,16 @@ gboolean _save_theme_to_dir(IrrecoThemeSaveDlg *self, IrrecoData *irreco_data, irreco_theme->comment->str, irreco_theme->preview_button_name->str, NULL); - } + } - rvalue = TRUE; + rvalue = TRUE; end: + g_string_free(theme_name, TRUE); g_string_free(message, TRUE); g_string_free(theme_path, TRUE); - IRRECO_RETURN_BOOL(rvalue); } @@ -350,10 +353,11 @@ irreco_theme_save_dlg_run(IrrecoData *irreco_data, IrrecoTheme *irreco_theme, if (_save_theme_to_dir(self, irreco_data, irreco_theme)) { - + loop = FALSE; + rvalue = TRUE; + } else { + loop = TRUE; } - loop = FALSE; - rvalue = TRUE; break; case GTK_RESPONSE_CANCEL: -- 2.11.4.GIT