[maemo-commits] [maemo-commits] r12916 - in projects/haf/trunk/hildon-desktop: . src

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Mon Jul 30 17:31:15 EEST 2007
Author: jobi
Date: 2007-07-30 17:31:12 +0300 (Mon, 30 Jul 2007)
New Revision: 12916

Modified:
   projects/haf/trunk/hildon-desktop/ChangeLog
   projects/haf/trunk/hildon-desktop/src/hd-app-menu-dialog.c
   projects/haf/trunk/hildon-desktop/src/hd-applications-menu-settings-l10n.h
   projects/haf/trunk/hildon-desktop/src/hn-app-button.c
Log:

2007-07-30  Johan Bilien  <johan.bilien at nokia.com>

	* src/hd-app-menu-dialog.c:
	- do not allow adding an existing category
	- show the corresponding info banner.
	Fixes: NB#63132



Modified: projects/haf/trunk/hildon-desktop/ChangeLog
===================================================================
--- projects/haf/trunk/hildon-desktop/ChangeLog	2007-07-30 14:28:11 UTC (rev 12915)
+++ projects/haf/trunk/hildon-desktop/ChangeLog	2007-07-30 14:31:12 UTC (rev 12916)
@@ -1,5 +1,12 @@
 2007-07-30  Johan Bilien  <johan.bilien at nokia.com>
 
+	* src/hd-app-menu-dialog.c:
+	- do not allow adding an existing category
+	- show the corresponding info banner.
+	Fixes: NB#63132
+
+2007-07-30  Johan Bilien  <johan.bilien at nokia.com>
+
 	* configure.ac: 0.0.27
 
 2007-07-30  Johan Bilien  <johan.bilien at nokia.com>

Modified: projects/haf/trunk/hildon-desktop/src/hd-app-menu-dialog.c
===================================================================
--- projects/haf/trunk/hildon-desktop/src/hd-app-menu-dialog.c	2007-07-30 14:28:11 UTC (rev 12915)
+++ projects/haf/trunk/hildon-desktop/src/hd-app-menu-dialog.c	2007-07-30 14:31:12 UTC (rev 12916)
@@ -265,6 +265,39 @@
   gtk_widget_set_sensitive (button, g_utf8_strlen (name, -1) != 0);
 }
 
+static gboolean
+hd_app_menu_dialog_category_exists (HDAppMenuDialog    *dialog,
+                                    const gchar        *category)
+{
+  HDAppMenuDialogPrivate       *priv = dialog->priv;
+  GtkTreeIter                   iter;
+  gboolean                      valid;
+  gboolean                      found = FALSE;
+
+  valid = gtk_tree_model_get_iter_first (priv->model, &iter);
+
+  while (valid)
+  {
+    gchar      *name = NULL;
+
+    gtk_tree_model_get (priv->model, &iter,
+                        TREE_MODEL_LOCALIZED_NAME, &name,
+                        -1);
+
+    if (name && g_str_equal (name, category))
+    {
+      found = TRUE;
+      g_free (name);
+      break;
+    }
+
+    g_free (name);
+    valid = gtk_tree_model_iter_next (priv->model, &iter);
+  }
+
+  return found;
+}
+
 static void
 hd_app_menu_dialog_new_category (HDAppMenuDialog *dialog)
 {
@@ -318,27 +351,39 @@
                     FALSE,
                     0);
 
-  response = gtk_dialog_run (GTK_DIALOG (new_dialog));
+  while (TRUE)
+  {
+    response = gtk_dialog_run (GTK_DIALOG (new_dialog));
 
-  name = gtk_entry_get_text (GTK_ENTRY (entry));
+    name = gtk_entry_get_text (GTK_ENTRY (entry));
 
-  if (response == GTK_RESPONSE_OK && GTK_IS_TREE_STORE (dialog->priv->model))
-  {
-    GtkTreeIter         iter;
-    GdkPixbuf          *icon;
+    if (response == GTK_RESPONSE_OK && GTK_IS_TREE_STORE (dialog->priv->model))
+    {
+      GtkTreeIter         iter;
+      GdkPixbuf          *icon;
 
-    icon = get_icon (ICON_FOLDER, ICON_SIZE);
+      if (hd_app_menu_dialog_category_exists (dialog, name))
+      {
+        hildon_banner_show_information (GTK_WIDGET (dialog),
+                                        NULL,
+                                        HD_APP_MENU_DIALOG_ALREADY_IN_USE);
+        continue;
+      }
 
-    gtk_tree_store_append (GTK_TREE_STORE (dialog->priv->model), &iter, NULL);
+      icon = get_icon (ICON_FOLDER, ICON_SIZE);
 
-    gtk_tree_store_set (GTK_TREE_STORE (dialog->priv->model), &iter,
-                        TREE_MODEL_NAME, g_strdup (name),
-                        TREE_MODEL_LOCALIZED_NAME, g_strdup (name),
-                        TREE_MODEL_ICON, icon,
-                        -1);
+      gtk_tree_store_append (GTK_TREE_STORE (dialog->priv->model), &iter, NULL);
 
-    g_object_unref (icon);
+      gtk_tree_store_set (GTK_TREE_STORE (dialog->priv->model), &iter,
+                          TREE_MODEL_NAME, g_strdup (name),
+                          TREE_MODEL_LOCALIZED_NAME, g_strdup (name),
+                          TREE_MODEL_ICON, icon,
+                          -1);
 
+      g_object_unref (icon);
+    }
+    break;
+
   }
 
   gtk_widget_destroy (new_dialog);
@@ -410,18 +455,29 @@
                     FALSE,
                     FALSE,
                     0);
+  while (TRUE)
+  {
+    response = gtk_dialog_run (GTK_DIALOG (new_dialog));
 
-  response = gtk_dialog_run (GTK_DIALOG (new_dialog));
+    name = gtk_entry_get_text (GTK_ENTRY (entry));
 
-  name = gtk_entry_get_text (GTK_ENTRY (entry));
+    if (response == GTK_RESPONSE_OK && GTK_IS_TREE_STORE (dialog->priv->model))
+    {
+      if (hd_app_menu_dialog_category_exists (dialog, name))
+      {
+        hildon_banner_show_information (GTK_WIDGET (dialog),
+                                        NULL,
+                                        HD_APP_MENU_DIALOG_ALREADY_IN_USE);
+        continue;
+      }
 
-  if (response == GTK_RESPONSE_OK && GTK_IS_TREE_STORE (dialog->priv->model))
-  {
       gtk_tree_store_set (GTK_TREE_STORE (dialog->priv->model), &iter,
                           TREE_MODEL_NAME, name,
                           TREE_MODEL_LOCALIZED_NAME, name,
                           -1);
+    }
 
+    break;
   }
 
   gtk_widget_destroy (new_dialog);

Modified: projects/haf/trunk/hildon-desktop/src/hd-applications-menu-settings-l10n.h
===================================================================
--- projects/haf/trunk/hildon-desktop/src/hd-applications-menu-settings-l10n.h	2007-07-30 14:28:11 UTC (rev 12915)
+++ projects/haf/trunk/hildon-desktop/src/hd-applications-menu-settings-l10n.h	2007-07-30 14:31:12 UTC (rev 12916)
@@ -60,6 +60,7 @@
 
 #define HD_APP_MENU_DIALOG_NO_APP_DEL           _OAT("tncpa_ib_no_app_del")
 #define HD_APP_MENU_DIALOG_NO_APP_REN           _OAT("tncpa_ib_no_app_ren")
+#define HD_APP_MENU_DIALOG_ALREADY_IN_USE       _HCS("ckdg_ib_folder_already_exists")
 
 
 #endif

Modified: projects/haf/trunk/hildon-desktop/src/hn-app-button.c
===================================================================
--- projects/haf/trunk/hildon-desktop/src/hn-app-button.c	2007-07-30 14:28:11 UTC (rev 12915)
+++ projects/haf/trunk/hildon-desktop/src/hn-app-button.c	2007-07-30 14:31:12 UTC (rev 12916)
@@ -410,12 +410,12 @@
 
   menu = gtk_menu_new ();
 
-#ifndef MAEMO_CHANGES
+/*#ifndef MAEMO_CHANGES*/
  /* If we attach it doesn't show up with VKB */
   gtk_menu_attach_to_widget (GTK_MENU (menu), 
 		  	     GTK_WIDGET (app_button),
 			     NULL);
-#endif  
+/*#endif  */
   children = hd_wm_entry_info_get_children (info);
   for (l = children; l != NULL; l = l->next)
   {


More information about the maemo-commits mailing list