Enlightenment CVS committal

Author  : englebass
Project : e17
Module  : libs/efreet

Dir     : e17/libs/efreet/src/lib


Modified Files:
        efreet_menu.c 


Log Message:
implement more of fdo menu layout.

===================================================================
RCS file: /cvs/e/e17/libs/efreet/src/lib/efreet_menu.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -3 -r1.14 -r1.15
--- efreet_menu.c       15 Apr 2007 04:54:45 -0000      1.14
+++ efreet_menu.c       2 May 2007 19:35:43 -0000       1.15
@@ -3690,47 +3690,50 @@
                 sub_entry = efreet_menu_layout_menu(sub);
                 if (!show_empty && !sub_entry->entries)
                     efreet_menu_free(sub_entry);
-#if 0
                 else if (in_line &&
                         ((inline_limit == 0) ||
-                         (!sub->entries || (ecore_list_nodes(sub->entries) <= 
inline_limit))))
+                         (!sub_entry->entries || 
(ecore_list_nodes(sub_entry->entries) <= inline_limit))))
                 {
-                    /* We don't delete the submenu when inlining, as we use 
information
-                     * from it. */
                     /* Inline */
-                    if (!sub->entries)
+                    if (!sub_entry->entries)
                     {
                         /* Can't inline an empty submenu */
-                        entry = efreet_menu_entry_new();
-                        entry->type = EFREET_MENU_ENTRY_MENU;
-                        entry->name = sub->name.name;
-                        if (sub->directory) entry->icon = sub->directory->icon;
-                        entry->content.menu = sub;
-                        ecore_list_append(internal->entries, entry);
+                        ecore_list_append(entry->entries, sub_entry);
                     }
-                    else if (inline_alias && (ecore_list_nodes(sub->entries) 
== 1))
+                    else if (inline_alias && 
(ecore_list_nodes(sub_entry->entries) == 1))
                     {
-                        entry = ecore_list_remove_first(sub->entries);
-                        entry->name = sub->name.name;
-                        if (sub->directory) entry->icon = sub->directory->icon;
-                        ecore_list_append(internal->entries, entry);
+                        Efreet_Menu *tmp;
+
+                        tmp = ecore_list_remove_first(sub_entry->entries);
+                        IF_RELEASE(tmp->name);
+                        tmp->name = sub_entry->name;
+                        sub_entry->name = NULL;
+                        IF_RELEASE(tmp->icon);
+                        tmp->icon = sub_entry->icon;
+                        sub_entry->icon = NULL;
+                        ecore_list_append(entry->entries, tmp);
+                        efreet_menu_free(sub_entry);
                     }
                     else
                     {
+                        Efreet_Menu *tmp;
+
                         if (inline_header)
                         {
-                            entry = efreet_menu_entry_new();
-                            entry->type = EFREET_MENU_ENTRY_HEADER;
-                            entry->name = sub->name.name;
-                            if (sub->directory) entry->icon = 
sub->directory->icon;
-                            ecore_list_append(internal->entries, entry);
+                            tmp = efreet_menu_entry_new();
+                            tmp->type = EFREET_MENU_ENTRY_HEADER;
+                            tmp->name = sub_entry->name;
+                            sub_entry->name = NULL;
+                            tmp->icon = sub_entry->icon;
+                            sub_entry->icon = NULL;
+                            ecore_list_append(entry->entries, tmp);
                         }
-                        ecore_list_goto_first(sub->entries);
-                        while ((entry = ecore_list_remove_first(sub->entries)))
-                            ecore_list_append(internal->entries, entry);
+                        ecore_list_goto_first(sub_entry->entries);
+                        while ((tmp = 
ecore_list_remove_first(sub_entry->entries)))
+                            ecore_list_append(entry->entries, tmp);
+                        efreet_menu_free(sub_entry);
                     }
                 }
-#endif
                 else
                     ecore_list_append(entry->entries, sub_entry);
             }
@@ -3790,47 +3793,53 @@
                     sub_entry = efreet_menu_layout_menu(sub);
                     if (!internal->show_empty && !sub_entry->entries)
                         efreet_menu_free(sub_entry);
-#if 0
                     else if (internal->in_line &&
                             ((internal->inline_limit == 0) ||
-                             (!sub->entries || (ecore_list_nodes(sub->entries) 
<= internal->inline_limit))))
+                             (!sub_entry->entries || 
(ecore_list_nodes(sub_entry->entries) <= internal->inline_limit))))
                     {
-                        /* We don't delete the submenu when inlining, as we
-                         * use information from it. */
                         /* Inline */
-                        if (!sub->entries)
+                        if (!sub_entry->entries)
                         {
                             /* Can't inline an empty submenu */
-                            entry = efreet_menu_entry_new();
-                            entry->type = EFREET_MENU_ENTRY_MENU;
-                            entry->name = sub->name.name;
-                            if (sub->directory) entry->icon = 
sub->directory->icon;
-                            entry->content.menu = sub;
-                            ecore_list_append(internal->entries, entry);
+                            ecore_list_append(entry->entries, sub_entry);
                         }
-                        else if (internal->inline_alias && 
(ecore_list_nodes(sub->entries) == 1))
+                        else if (internal->inline_alias && 
(ecore_list_nodes(sub_entry->entries) == 1))
                         {
-                            entry = ecore_list_remove_first(sub->entries);
-                            entry->name = sub->name.name;
-                            if (sub->directory) entry->icon = 
sub->directory->icon;
-                            ecore_list_append(internal->entries, entry);
+                            Efreet_Menu *tmp;
+
+                            tmp = ecore_list_remove_first(sub_entry->entries);
+                            ecore_string_release(tmp->name);
+                            tmp->name = sub_entry->name;
+                            sub_entry->name = NULL;
+                            IF_RELEASE(tmp->icon);
+                            if (sub_entry->icon)
+                            {
+                                tmp->icon = sub_entry->icon;
+                                sub_entry->icon = NULL;
+                            }
+                            ecore_list_append(entry->entries, tmp);
+                            efreet_menu_free(sub_entry);
                         }
                         else
                         {
+                            Efreet_Menu *tmp;
+
                             if (internal->inline_header)
                             {
-                                entry = efreet_menu_entry_new();
-                                entry->type = EFREET_MENU_ENTRY_HEADER;
-                                entry->name = sub->name.name;
-                                if (sub->directory) entry->icon = 
sub->directory->icon;
-                                ecore_list_append(internal->entries, entry);
+                                tmp = efreet_menu_entry_new();
+                                tmp->type = EFREET_MENU_ENTRY_HEADER;
+                                tmp->name = sub_entry->name;
+                                sub_entry->name = NULL;
+                                if (sub_entry->icon) tmp->icon = 
sub_entry->icon;
+                                sub_entry->icon = NULL;
+                                ecore_list_append(entry->entries, tmp);
                             }
-                            ecore_list_goto_first(sub->entries);
-                            while ((entry = 
ecore_list_remove_first(sub->entries)))
-                                ecore_list_append(internal->entries, entry);
+                            ecore_list_goto_first(sub_entry->entries);
+                            while ((tmp = 
ecore_list_remove_first(sub_entry->entries)))
+                                ecore_list_append(entry->entries, tmp);
+                            efreet_menu_free(sub_entry);
                         }
                     }
-#endif
                     else
                         ecore_list_append(entry->entries, sub_entry);
                 }



-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to