forked from enlightenment/enlightenment
More details to worry about. How all the E_Apps connect together.
SVN revision: 25862
This commit is contained in:
parent
db2b722431
commit
c6e7ff1cd1
|
@ -234,7 +234,10 @@ SOLUTION:
|
|||
|
||||
.order files
|
||||
USED BY:
|
||||
Menus, bars, startup, restart.
|
||||
WHEN:
|
||||
When displaying the menu or bar. At startup and restart. When
|
||||
editing them.
|
||||
ISSUES:
|
||||
SOLUTION:
|
||||
|
||||
|
@ -278,6 +281,45 @@ ISSUES:
|
|||
conversion didn't help. It does hide some other bugs though, so that
|
||||
needs to be cleaned up first.
|
||||
|
||||
How this all hangs together is complex.
|
||||
|
||||
Evas_List *_e_app_repositories;
|
||||
Only contains ~/.e/e/applications/all for now.
|
||||
|
||||
E_App *_e_apps_all = ~/.e/e/applications/all
|
||||
Currently has all the E_Apps as subbapps, but only used as if it was a single E_App.
|
||||
On the other hand, this is scanned at startup time, so is used to preload the caches.
|
||||
|
||||
_e_apps_list = Most recently used list / all apps list.
|
||||
|
||||
E_App members -
|
||||
|
||||
E_App *parent; /* the parent e_app node */
|
||||
e_apps.c internal
|
||||
This is in a directory, the parent is the E_App for that directory.
|
||||
|
||||
Evas_List *subapps; /* if this a directory, a list of more E_App's */
|
||||
e_apps.c internal except for _e_startup and _e_int_menus_apps_scan
|
||||
This will be a directory with a .order file, subapps points to the content E_Apps.
|
||||
|
||||
Evas_List *references; /* If this app is in a main repository, this would
|
||||
be a list to other eapp pointing to this */
|
||||
e_apps.c internal
|
||||
E_Apps in a repository are copied before use, this points to those copies.
|
||||
|
||||
E_App *orig; /* if this is a copy, point to the original */
|
||||
e_apps.c internal except for _e_border_menu_cb_icon_edit
|
||||
E_Apps in a repository are copied before use, this points to the original.
|
||||
|
||||
Evas_List *instances; /* a list of all the exe handles for executions */
|
||||
e_apps.c internal except for e_zone_exec
|
||||
Tracks E_Apps that are currently running.
|
||||
|
||||
Ecore_File_Monitor *monitor; /* Check for changes and files */
|
||||
e_apps.c internal
|
||||
Only E_Apps that are directories are monitored.
|
||||
|
||||
|
||||
SOLUTION:
|
||||
Start by putting all filenames in ~/.e/e/applications/all in a hash
|
||||
with "empty" E_Apps. Fill the "empty" E_Apps during idle time, also
|
||||
|
@ -285,8 +327,10 @@ SOLUTION:
|
|||
hash and put it in the directory.
|
||||
|
||||
The most recently used list can be built from whatever gets used, it
|
||||
will actually speed things up if it does not contain everything, as
|
||||
it is usually a linear search.
|
||||
could actually speed things up if it does not contain everything, as
|
||||
it is usually a linear search. On the other hand, we could reuse
|
||||
the subapps of _e_apps_all as this list, since it already exists,
|
||||
and it doesn't care what order its subapps are in.
|
||||
|
||||
Executing an app can probably afford to use a slow search. Border
|
||||
icons could make use of bouncy icon thumbnailing. e_int_config_apps
|
||||
|
|
Loading…
Reference in New Issue