Fix bug#5020 - Unable to save a preset called "ontheroead (vibration)".
[tweakr] / modules / tweakr-profile.c
index 128035c..00c1a26 100644 (file)
@@ -152,9 +152,10 @@ _save_preset_clicked (HildonPickerButton *button,
 
     gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), entry,
                         TRUE, TRUE, 0);
-    while (text == NULL || text [0] == '\0')
+    while (TRUE)
     {
         gint ret;
+        gint iter;
 
         ret = gtk_dialog_run (GTK_DIALOG (dialog));
         if (ret == GTK_RESPONSE_OK)
@@ -162,6 +163,7 @@ _save_preset_clicked (HildonPickerButton *button,
             GtkWidget *banner;
             profileval_t *values, *values_iter;
             GConfClient *gconf;
+            gboolean cont = FALSE;
 
             text = hildon_entry_get_text (HILDON_ENTRY (entry));
             if (text == NULL || text[0] == '\0')
@@ -174,6 +176,25 @@ _save_preset_clicked (HildonPickerButton *button,
                 continue;
             }
 
+            for (iter = 0; iter < strlen (text); iter++)
+            {
+                if (!g_ascii_isalnum (text[iter]) &&
+                    text[iter] != '-' &&
+                    text[iter] != '_')
+                {
+                    GtkWidget *banner;
+
+                    banner = hildon_banner_show_information
+                        (dialog, NULL,
+                         _("Preset name can only contains letters, numbers, - and _."));
+
+                    cont = TRUE;
+                }
+            }
+
+            if (cont)
+                continue;
+
             /* Save the settings to our own gconf directory. */
 
             gconf = gconf_client_get_default ();