Enlightenment CVS committal

Author  : andreas99
Project : e16
Module  : tools

Dir     : e16/tools/e16menuedit2/src


Modified Files:
        e16menu.c e16menu.h treeview.c 


Log Message:
removed strange bug that could possibly destroy menu files

===================================================================
RCS file: /cvsroot/enlightenment/e16/tools/e16menuedit2/src/e16menu.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -3 -r1.1 -r1.2
--- e16menu.c   28 Jul 2004 22:12:28 -0000      1.1
+++ e16menu.c   6 Aug 2004 19:18:43 -0000       1.2
@@ -25,6 +25,7 @@
  */
  
  #include <stdio.h>
+ #include <errno.h>
  #include "e16menu.h"
  #include "file.h"
  #include "e16menuedit2.h"
@@ -344,3 +345,60 @@
 
   return FALSE;
 }
+
+gboolean table_check_func (GtkTreeModel *model, GtkTreePath *path,
+                          GtkTreeIter *iter, gpointer user_data)
+{
+  gchar *description, *icon, *params;
+  gchar *tree_path_str;
+  gboolean has_child;
+  gint depth;
+  gchar buffer[128];
+
+  gtk_tree_model_get (model, iter,
+                      COL_DESCRIPTION, &description,
+                      COL_ICONNAME, &icon,
+                      COL_PARAMS, &params,
+                      -1);
+
+  tree_path_str = gtk_tree_path_to_string(path);
+
+  has_child = gtk_tree_model_iter_has_child (model, iter);
+  depth = gtk_tree_path_get_depth (path) - 1;
+
+  errno = 0;
+
+  if (depth + 1 >= MAX_RECURSION)
+  {
+    g_print ("maximum menu recursion reached! -> %d\n", MAX_RECURSION);
+    return TRUE;
+  }
+
+  if (depth > 0)
+  {
+    if (has_child)
+    {      
+      /* some checks for submenus */
+      if (!strcmp (params, ""))
+      {
+       errno = 1;
+       return TRUE;
+      }
+    }
+    else
+    {
+      /* some checks for entries */
+    }
+  }
+  else
+  {
+    /* check for root node */
+  }
+
+  g_free(tree_path_str);
+  g_free(description);
+  g_free(icon);
+  g_free(params);
+
+  return FALSE;
+}
===================================================================
RCS file: /cvsroot/enlightenment/e16/tools/e16menuedit2/src/e16menu.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -3 -r1.1 -r1.2
--- e16menu.h   28 Jul 2004 22:12:28 -0000      1.1
+++ e16menu.h   6 Aug 2004 19:18:43 -0000       1.2
@@ -39,6 +39,8 @@
                               GtkTreeIter *iter);
 gboolean table_save_func (GtkTreeModel *model, GtkTreePath *path,
                           GtkTreeIter *iter, gpointer user_data);
+gboolean table_check_func (GtkTreeModel *model, GtkTreePath *path,
+                          GtkTreeIter *iter, gpointer user_data);                     
   
 
 gchar *menu_file[MAX_RECURSION];
 
===================================================================
RCS file: /cvsroot/enlightenment/e16/tools/e16menuedit2/src/treeview.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -3 -r1.2 -r1.3
--- treeview.c  2 Aug 2004 19:36:15 -0000       1.2
+++ treeview.c  6 Aug 2004 19:18:43 -0000       1.3
@@ -25,6 +25,7 @@
  */
 
 #include <string.h>
+#include <errno.h>
 #include "treeview.h"
 #include "e16menu.h"
 #include "callbacks.h"
@@ -48,14 +49,14 @@
   gtk_tree_view_insert_column_with_attributes (
     GTK_TREE_VIEW (treeview_menu),
     -1,
-    "Description",
+    _("Description"),
     renderer_desc,
     "text", COL_DESCRIPTION,
     NULL);
 
   renderer_icon = gtk_cell_renderer_pixbuf_new ();
   icon_column = gtk_tree_view_column_new_with_attributes (
-                  "Icon",
+                  _("Icon"),
                   renderer_icon,
                   "pixbuf", COL_ICON,
                   NULL);
@@ -77,7 +78,7 @@
   g_object_set (renderer_params, "editable", TRUE, NULL);
   gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview_menu),
       -1,
-      "Parameters",
+      _("Parameters"),
       renderer_params,
       "text", COL_PARAMS,
       NULL);
@@ -186,14 +187,25 @@
   int i = 0;
 
   model = gtk_tree_view_get_model (GTK_TREE_VIEW (treeview_menu));
-  gtk_tree_model_foreach (GTK_TREE_MODEL(model), table_save_func, NULL);
+  gtk_tree_model_foreach (GTK_TREE_MODEL(model), table_check_func, NULL);
 
-  g_print ("Menu saved!\n");
-
-  /* free allocated menu files */
-  while (menu_file[i] != NULL)
+  if (errno == 0)
+  {
+    gtk_tree_model_foreach (GTK_TREE_MODEL(model), table_save_func, NULL);
+    g_print ("Menu saved!\n");
+  
+    /* free allocated menu files */
+    while (menu_file[i] != NULL)
+    {
+      g_free (menu_file[i]);
+      i++;
+    }
+  }
+  else
   {
-    g_free (menu_file[i]);
-    i++;
+    g_print ("some error occurred while checking menu!\nmenu not saved!\n");
   }
+
+
+
 }




-------------------------------------------------------
This SF.Net email is sponsored by OSTG. Have you noticed the changes on
Linux.com, ITManagersJournal and NewsForge in the past few weeks? Now,
one more big change to announce. We are now OSTG- Open Source Technology
Group. Come see the changes on the new OSTG site. www.ostg.com
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to