A bit more analyses of where E_App caching is needed. Added stub for .order.

SVN revision: 25856
devs/princeamd/enlightenment-0.17-elive
David Walter Seikel 17 years ago
parent 6e12d30138
commit 3cc1775e81
  1. 62
      doc/cache.txt

@ -232,6 +232,14 @@ SOLUTION:
-----------------------------------------------------------------------
.order files
USED BY:
WHEN:
ISSUES:
SOLUTION:
-----------------------------------------------------------------------
E_Apps
USED BY:
@ -240,20 +248,50 @@ WHEN:
Currently all read in at startup time. Should change this to an
idle time task. Still need to read in them all near startup time
though. We need all of them for searching.
a_actions searches for filename, name, generic, and exe to find an
app to execute. Updates the most recently used list.
e_border searches for border and pid to find the border icon. The
border search involves searching all E_Apps for win_* and exe that
match the app in the border. The pid search involves searching all
instances of all E_Apps, looking for a matching pid. Both searches
update the most recently used list. None of this is needed for
remember stuff.
e_exebuf searches/lists all apps and most recently used apps based
on a partially typed in string. It globs name, exe, generic, and
comment. When actually listing the matches, it searches for exe.
When showing an icon for the current match, it searches exe, name,
then generic. Updates the most recently used list.
e_zone searches for exe to find a matching E_App when it is
executing things. Updates the most recently used list.
e_int_config_apps shows a sorted list of all apps.
Everything else loads E_Apps by file name or directory name. Some
have .order files.
ISSUES:
The current eap caching code is not up to scratch, and the .desktop
conversion didn't help. It does hide some other bugs though, so that
needs to be cleaned up first.
We need quick sorted access to all Apps on the system. Things like
menus and bars need quick access to the ones in their .order files.
As mentioned above, we need quick searching of them all.
SOLUTION:
Nuke the existing cache code. Replace with...
Hash of filenames that contains the E_App structures, alphabetically
sorted list (Ecore_Sheap?) of human visible names that contains the
filenames. Fill them during idle time, also as needed, and finish
it async when exebuf starts up. Later we shall see if an on disk
copy is needed.
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
as needed. Everytime a new .desktop file is created, add it to the
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.
Executing an app can probably afford to use a slow search. Border
icons could make use of bouncy icon thumbnailing. e_int_config_apps
can just show ~/.e/e/applications/all, but e_fm will need to know to
sort based on visible name. e_exebuf can also use bouncy icon
thumbnailing, but may need more speedups for its globbing.
Later we shall see if an on disk copy is needed.

Loading…
Cancel
Save