Enlightenment CVS committal

Author  : onefang
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_fdo_menu_to_order.c e_fdo_menu_to_order.h 
        e_int_config_apps.c e_main.c 


Log Message:
Part one of the quick'n'dirty "save our menu costumizations" hack.

===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_fdo_menu_to_order.c,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -3 -r1.24 -r1.25
--- e_fdo_menu_to_order.c       13 Nov 2006 21:47:05 -0000      1.24
+++ e_fdo_menu_to_order.c       14 Nov 2006 21:44:34 -0000      1.25
@@ -3,8 +3,10 @@
 //#define DEBUG 1
 
 
+// FIXME: Scan through ~/.e/e/applications/all, nuke any dangling links.  
Start simple, add smarts later.
 // FIXME: If there is only one top level menu, likely called "Applications", 
then throw it away.  The top level is already called "Applications".
 
+
 struct order_data
 {
    char order_path[PATH_MAX];
@@ -28,22 +30,27 @@
 
 static int menu_count;
 static int item_count;
+static int _do_nuke;
 
 EAPI void
-e_fdo_menu_to_order(void)
+e_fdo_menu_to_order(int do_nuke)
 {
    char dir[PATH_MAX];
 
-   ecore_desktop_instrumentation_reset();
-   /* Nuke the old menus. */
-   snprintf(dir, sizeof(dir), "%s/.e/e/applications/menu/all/", 
e_user_homedir_get());
-   ecore_file_recursive_rm(dir);
    menu_count = 0;
    item_count = 0;
+   _do_nuke = do_nuke;
+   ecore_desktop_instrumentation_reset();
+   if (do_nuke)
+     {
+        /* Nuke the old menus. */
+        snprintf(dir, sizeof(dir), "%s/.e/e/applications/menu/all/", 
e_user_homedir_get());
+        ecore_file_recursive_rm(dir);
+     }
    ecore_desktop_menu_for_each(_e_fdo_menu_to_order_make_apps);
    ecore_desktop_instrumentation_print();
    /* This is a hueristic to guess if there are not enough apps.  Feel free to 
tweak it. */
-   if ((item_count < 50) || (menu_count > (item_count * 3)))
+   if ((do_nuke) && ((item_count < 50) || (menu_count > (item_count * 3))) )
       {
          struct category_data cat_data;
 
@@ -119,12 +126,22 @@
    Ecore_Hash_Node *node;
    Ecore_Desktop *desktop;
    const char *file, *key;
+   char path2[PATH_MAX];
+   int do_add, exists = 0;
 
    order_data = (struct order_data *)user_data;
    node = (Ecore_Hash_Node *) value;
    key = (char *)node->key;
    file = (char *)node->value;
-   desktop = ecore_desktop_get(file, NULL);
+   do_add = _do_nuke;
+   snprintf(path2, sizeof(path2), "%s/.e/e/applications/all/%s", 
e_user_homedir_get(), key);
+   if (ecore_file_exists(path2))
+     {
+        desktop = ecore_desktop_get(path2, NULL);
+       exists = 1;
+     }
+   else
+      desktop = ecore_desktop_get(file, NULL);
    /* Check if we process */
    if (!desktop) return;
    if ( (!desktop->hidden) && (!desktop->no_display) 
@@ -132,16 +149,17 @@
       && ((desktop->OnlyShowIn == NULL) ||(ecore_hash_get(desktop->OnlyShowIn, 
"Enlightenment") != NULL))
       && ((desktop->NotShowIn == NULL) ||(ecore_hash_get(desktop->NotShowIn, 
"Enlightenment") == NULL)) )
       {
-         char path2[PATH_MAX];
-
+         item_count++;
+         if (!exists)
+          {
 #ifdef DEBUG
-         printf("MAKING MENU ITEM %s -> %s  (%s)\n", order_data->order_path, 
file, key);
+              printf("MAKING MENU ITEM %s -> %s  (%s)\n", 
order_data->order_path, file, key);
 #endif
-         item_count++;
-         snprintf(path2, sizeof(path2), "%s/.e/e/applications/all/%s", 
e_user_homedir_get(), key);
-         if (!ecore_file_exists(path2))
-            ecore_file_symlink(file, path2);
-         ecore_sheap_insert(order_data->sheap, strdup(key));
+              ecore_file_symlink(file, path2);
+             do_add = 1;
+          }
+        if (do_add)
+            ecore_sheap_insert(order_data->sheap, strdup(key));
      }
 }
 
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_fdo_menu_to_order.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -3 -r1.2 -r1.3
--- e_fdo_menu_to_order.h       22 Aug 2006 23:20:12 -0000      1.2
+++ e_fdo_menu_to_order.h       14 Nov 2006 21:44:34 -0000      1.3
@@ -6,7 +6,7 @@
 #ifndef E_FDO_MENU_TO_ORDER_H
 #define E_FDO_MENU_TO_ORDER_H
 
-EAPI void e_fdo_menu_to_order(void);
+EAPI void e_fdo_menu_to_order(int do_nuke);
 
 #endif
 #endif
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_int_config_apps.c,v
retrieving revision 1.42
retrieving revision 1.43
diff -u -3 -r1.42 -r1.43
--- e_int_config_apps.c 11 Nov 2006 22:20:36 -0000      1.42
+++ e_int_config_apps.c 14 Nov 2006 21:44:34 -0000      1.43
@@ -515,20 +515,21 @@
 static E_Dialog *_e_int_config_apps_regen_dialog = NULL;
 
 static void
-_e_int_config_apps_cb_regen_dialog_ok(void *data, E_Dialog *dia)
+_e_int_config_apps_cb_regen_dialog_regen(void *data, E_Dialog *dia)
 {
    e_object_del(E_OBJECT(_e_int_config_apps_regen_dialog));
    _e_int_config_apps_regen_dialog = NULL;
-   e_fdo_menu_to_order();
+   e_fdo_menu_to_order(1);
 //   if (cfdata->gui.o_fm_all)   e_fm2_refresh(cfdata->gui.o_fm_all);
 //   if (cfdata->gui.o_fm)       e_fm2_refresh(cfdata->gui.o_fm);
 }
 
 static void
-_e_int_config_apps_cb_regen_dialog_cancel(void *data, E_Dialog *dia)
+_e_int_config_apps_cb_regen_dialog_update(void *data, E_Dialog *dia)
 {
    e_object_del(E_OBJECT(_e_int_config_apps_regen_dialog));
    _e_int_config_apps_regen_dialog = NULL;
+   e_fdo_menu_to_order(0);
 }
 
 static void
@@ -537,7 +538,8 @@
    E_Dialog *dia;
 
    dia = win->data;
-   _e_int_config_apps_cb_regen_dialog_cancel(NULL, dia);
+   e_object_del(E_OBJECT(_e_int_config_apps_regen_dialog));
+   _e_int_config_apps_regen_dialog = NULL;
 }
 
 static void
@@ -550,19 +552,21 @@
    _e_int_config_apps_regen_dialog = 
e_dialog_new(e_container_current_get(e_manager_current_get()), "E", 
"_menu_regen_dialog");
    if (!_e_int_config_apps_regen_dialog) return;
    e_win_delete_callback_set(_e_int_config_apps_regen_dialog->win, 
_e_int_config_apps_cb_regen_dialog_delete);
-   e_dialog_title_set(_e_int_config_apps_regen_dialog, _("Are you sure you 
want to regenerate your Applications menus?"));
+   e_dialog_title_set(_e_int_config_apps_regen_dialog, _("Regenerate or update 
your Applications menu?"));
    e_dialog_text_set(_e_int_config_apps_regen_dialog,
-                    _("You are about to regenerate your Applications 
menus.<br>"
+                    _("You can regenerate your Applications menu.<br>"
                       "This will delete any customizations you have made.<br>"
-                      "This will replace the Applications menu with the system 
menus.<br>"
+                      "This will replace the Applications menu with the system 
menu.<br>"
                       "<br>"
-                      "Are you sure you want to do this?"
+                      "Or you could just update your Applications menu.<br>"
+                      "This will add any new Applications, and remove any old 
ones from<br>"
+                      "your Applications menu.  Customizations you have made 
will remain."
                       ));
    e_dialog_icon_set(_e_int_config_apps_regen_dialog, 
"enlightenment/regenerate_menus", 64);
-   e_dialog_button_add(_e_int_config_apps_regen_dialog, _("Yes"), NULL,
-                      _e_int_config_apps_cb_regen_dialog_ok, NULL);
-   e_dialog_button_add(_e_int_config_apps_regen_dialog, _("No"), NULL,
-                      _e_int_config_apps_cb_regen_dialog_cancel, NULL);
+   e_dialog_button_add(_e_int_config_apps_regen_dialog, _("Regenerate"), NULL,
+                      _e_int_config_apps_cb_regen_dialog_regen, NULL);
+   e_dialog_button_add(_e_int_config_apps_regen_dialog, _("Update"), NULL,
+                      _e_int_config_apps_cb_regen_dialog_update, NULL);
    e_dialog_button_focus_num(_e_int_config_apps_regen_dialog, 1);
    e_win_centered_set(_e_int_config_apps_regen_dialog->win, 1);
    e_dialog_show(_e_int_config_apps_regen_dialog);
@@ -741,7 +745,7 @@
 */
    if (!once)
       {
-         mt = e_widget_button_add(evas, _("Regenerate \"Applications\" Menu"), 
"enlightenment/regenerate_menus",
+         mt = e_widget_button_add(evas, _("Regenerate/update \"Applications\" 
Menu"), "enlightenment/regenerate_menus",
                           _cb_button_regen, cfdata, NULL);
          cfdata->gui.o_regen_button = mt;
          e_widget_framelist_object_append(of, mt);
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_main.c,v
retrieving revision 1.197
retrieving revision 1.198
diff -u -3 -r1.197 -r1.198
--- e_main.c    13 Nov 2006 14:47:56 -0000      1.197
+++ e_main.c    14 Nov 2006 21:44:34 -0000      1.198
@@ -996,13 +996,8 @@
    snprintf(buf, sizeof(buf), "%s/.e/e/applications/menu/all/.order", homedir);
    if (!ecore_file_exists(buf))
      {
-        e_fdo_menu_to_order();
+        e_fdo_menu_to_order(1);
      }
-   /* FIXME: Add another temporary hack to keep the users happy.
-    * Move ~/.e/e/applications/all/*.eap to ~/.e/e/icons/*.edj
-    * Read the non .edj info from them and construct a matching 
~/.e/e/applications/all/*.desktop
-    * Add an icon path to these .desktop files that points to the 
~/.e/e/icons/*.edj files.
-    */
    /* FIXME: THIS is to get people started - shoudl be in a wizard */
    snprintf(buf, sizeof(buf), "%s/.e/e/fileman/favorites", homedir);
    if (!ecore_file_exists(buf))



-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to