Commit Graph

241 Commits

Author SHA1 Message Date
Gustavo Sverzut Barbieri 200c92f82a efreet mime types icon cache.
This cache is very simple and should work fine when system does not
change, it keeps a direct association of mime-types and found icons,
remembering theme and icon size. Search is very fast since it uses
stringshared strings and thus direct pointer comparison in hash
search. We could optimize it even more if we assumed stringshared
strings to come in, so no need to eina_stringshare_add() (which is a
hash per se), using just eina_stringshare_ref().

Cache population is limited to compile-time value and just values
older than a given threshold are deleted. I do not keep a LRU explicit
list, so you might have some old but unused items always alive. I
don't find this too bad, sure it will consume more memory, but will
not hurt performance. We can change this to purge all expired items by
not checking for number of items to remove, removing all that match.

Next I plan to find out a good way to cache and speed up file->mime
discovery. I plan to do auto-generated state-machine to match
extensions, so you don't need to check the same extension character
more than once. Example:

   Input: bla.edc
   Extensions: edc edj eps png bmp

It would first try to match against 'e', 'p' and 'b'. It will match
'e' and then check for 'd' (edc or edj) or 'p' (eps). It will match
'd' and then check for 'c' or 'j'. This will reduce number of
comparisons considerably.

As I'm running out of time (4am, not much time left on this month), I
could use some help here.



SVN revision: 39343
2009-03-03 07:20:21 +00:00
Gustavo Sverzut Barbieri 09f9cd39c5 Oops! forgot to test binaries and missed including config.h
SVN revision: 39261
2009-02-26 22:38:14 +00:00
Gustavo Sverzut Barbieri ab2e35127f Fix most compiler & clang warnings.
Left warnings regarding signed and unsigned comparison since
eina_list_count() returns unsigned, can use a cast in this return, but
not big deal for now.


By: Luis Felipe Strano Moraes & myself.



SVN revision: 39260
2009-02-26 22:35:38 +00:00
Cedric BAIL 452695bd6c * efreet: Fix opening file.
SVN revision: 39246
2009-02-26 16:14:22 +00:00
Gustavo Sverzut Barbieri 2bcea93a7c Fix port to eina_list.
* efreet_desktop_command_build(): should consider the first
   run. Before had a "first" toggle variable, which vanished with eina
   port. I changed it to do {} while (), making it work again.

 * exec string is already freed by callback (in e_exec.c), to keep old
   behavior, just free the list with eina_list_free(). Just pay
   attention to ecore_list and double check if they had a free
   function set or not. If it didn't, then we should not free nodes!



SVN revision: 39228
2009-02-26 03:56:21 +00:00
Carsten Haitzler 7646b3e4af fix custom icon dirs api so u CAN add to the icon dirs!
SVN revision: 39226
2009-02-26 03:46:35 +00:00
Cedric BAIL 7e64baf165 * efreet: Prevent crash when no Efreet_Desktop are found.
SVN revision: 39214
2009-02-25 17:40:40 +00:00
Cedric BAIL 0b41f0e138 * efreet: Fix previously broken efreet cache.
SVN revision: 39211
2009-02-25 16:46:51 +00:00
Cedric BAIL 6978e98dc6 * estickies,
* etk,
	* PROTO/exalt,
	* E-MODULES-EXTRA/diskio,
	* E-MODULES-EXTRA/drawer,
	* E-MODULES-EXTRA/penguins,
	* E-MODULES-EXTRA/slideshow,
	* E-MODULES-EXTRA/mail,
	* E-MODULES-EXTRA/forecasts,
	* E-MODULES-EXTRA/iiirk,
	* E-MODULES-EXTRA/places,
	* e,
	* ewl,
	* ecore,
	* elitaire,
	* entrance,
	* e_dbus,
	* efreet: Here we go, move from Ecore_List to Eina_List.

	NOTE: This patch is huge, I did test it a lot, and I hope nothing is
	broken. But if you think something change after this commit, please
	contact me ASAP.


SVN revision: 39200
2009-02-25 11:03:47 +00:00
Gustavo Sverzut Barbieri 24328d9738 Fix problems reported by some C++ compilers.
SVN revision: 38975
2009-02-09 01:11:27 +00:00
Carsten Haitzler b00bae1d92 a really simple hash cache for icon finds - this massively makes stuff faster
for app dialogs etc. yes - it uses ram. thats next - make it leaner on ram
usage. its simple enough now where that shouldnt be a problem.



SVN revision: 38839
2009-01-29 07:36:58 +00:00
Cedric BAIL 35540b3a3b This commit is huge. I did test it a lot on my computer, and it run fine here.
But is so big i fear i could have broken some piece of code. So report any wrong
behaviour to me (cedric on #edevelop).

So moving e17 and efreet to eina_hash. With a little efreet API break so they
must come together.


SVN revision: 38185
2008-12-17 15:33:43 +00:00
Sebastian Dransfeld 1de2e74d74 Adding missing Name entry in efreet_menu.
Add fix from Massimiliano Calamelli.

SVN revision: 38153
2008-12-15 20:23:24 +00:00
Sebastian Dransfeld 82c1c80632 Only save menu element name if it exists.
SVN revision: 38131
2008-12-13 21:00:49 +00:00
Gustavo Sverzut Barbieri d5f5e6eb55 src/bin/ stuff uses it, so these symbols must be exported.
SVN revision: 37634
2008-11-14 20:22:03 +00:00
Sebastian Dransfeld b41023437d Remove warning by adding parentheses.
SVN revision: 37167
2008-10-26 20:05:46 +00:00
Sebastian Dransfeld b439133578 Don't compile in unused code.
SVN revision: 37166
2008-10-26 20:05:34 +00:00
Carsten Haitzler 1065c6298a support setting the default menu explicitly.
SVN revision: 37098
2008-10-25 15:06:31 +00:00
Cedric BAIL 02bf306fdd Remove macro provided by Eina.
SVN revision: 36863
2008-10-20 16:34:59 +00:00
Cedric BAIL 01befd2b67 Switch ecore_strings to eina_stringshare.
SVN revision: 36676
2008-10-15 14:48:03 +00:00
Cedric BAIL b6a71c63e6 Make efreet depend on eina. No change in the code yet, so just fix your build system and no bug must show up.
SVN revision: 36625
2008-10-13 16:00:19 +00:00
Carsten Haitzler 0e1ee5edb7 add null theme check
SVN revision: 35658
2008-08-25 09:14:13 +00:00
Sebastian Dransfeld 77cb8587de define (void *)-1 as a macro
SVN revision: 35574
2008-08-19 06:32:40 +00:00
Sebastian Dransfeld 8d6938ec31 Fix ef_read_dir() (ecore_file_ls() returns filenames without path).
SVN revision: 35565
2008-08-18 21:03:13 +00:00
Sebastian Dransfeld ddfdbe237e Use Tango as default test theme.
SVN revision: 35564
2008-08-18 20:54:46 +00:00
Carsten Haitzler 0d3a45be0f ok. i think most binary files are now fixed.
SVN revision: 35525
2008-08-18 00:02:26 +00:00
Sebastian Dransfeld bfb18778e2 Pass icon size as unsigned int.
SVN revision: 35490
2008-08-14 20:48:41 +00:00
Sebastian Dransfeld e52e71e475 Do atoi only once for each query.
SVN revision: 35489
2008-08-14 20:02:07 +00:00
Sebastian Dransfeld 7ee9598bd2 Make the icon cache work for efreet_icon_list_find.
SVN revision: 35488
2008-08-14 19:47:48 +00:00
Sebastian Dransfeld 25c29b62a3 ignore missing icons for 5 seconds.
SVN revision: 35480
2008-08-14 16:59:41 +00:00
Davide Andreoli 71e9fe89e9 Move Efreet_Uri stuff on the proper file. We can now use this in e instead of the internal one.
SVN revision: 35312
2008-08-03 00:07:17 +00:00
Dan Sinclair 5c0aaab8f1 - cleanups
SVN revision: 35309
2008-08-02 22:09:04 +00:00
Davide Andreoli f438c7eb9a * Fix Doxy warnings
SVN revision: 35307
2008-08-02 21:48:44 +00:00
Sebastian Dransfeld e909810628 remove uneeded variable.
SVN revision: 35245
2008-07-29 18:55:41 +00:00
Sebastian Dransfeld 31c9bed503 Reduce the needed amount of ecore_strlcpy.
SVN revision: 35244
2008-07-29 18:52:27 +00:00
Miculcy Brian cf33734edf enable failback when empty localisation string are found
SVN revision: 35184
2008-07-22 13:30:25 +00:00
Sebastian Dransfeld 018b1cae14 FDO Trash.
SVN revision: 35129
2008-07-16 19:45:12 +00:00
Sebastian Dransfeld 2daf954148 Fix single quouting, patch from ���������� ����������
SVN revision: 35013
2008-07-06 14:06:31 +00:00
Carsten Haitzler 43821d36e4 * add efreet garbage data check
* remove printfs that clutter output
* add efreet file type check - only parse regular files
* chekc mmap returns correctly for MAP_FAILED results
* edje has some stubs for adding script-only objecvts - but nothing useful
right now


SVN revision: 34689
2008-05-29 02:00:04 +00:00
Carsten Haitzler 6982d7fb37 pass make distcheck and a snapshot asparagus release - been a while
SVN revision: 34600
2008-05-19 00:07:12 +00:00
Dan Sinclair cecac6f9d6 - add comments
- fix formatting


SVN revision: 34512
2008-05-08 14:22:21 +00:00
Carsten Haitzler 69a1a1a2e0 slackdood seems to report creating new apps is broken. this may be it.
SVN revision: 34508
2008-05-08 07:11:48 +00:00
Dan Sinclair 3322ce3b12 - deal with blank lines outside the invalid file checks
- this fixes the warning about a missing = sign
- you can have a blank value set on a key
  - this fixes the warnings about invalid key=value pairs
- formatting changes


SVN revision: 34496
2008-05-07 04:14:45 +00:00
Dan Sinclair 3624e4e923 - if we can't parse the INI file we can't set ini->data so return NULL
instead of an invalid ini file


SVN revision: 34493
2008-05-07 03:04:58 +00:00
Dan Sinclair bc35dd6189 - fix the package paths used in the test files. this makes 19/19 tests pass.
SVN revision: 34492
2008-05-07 03:04:12 +00:00
Dan Sinclair 4cbf818700 - efreet_icon_theme_list_get doesn't return themes without a name, fix test
case


SVN revision: 34491
2008-05-07 02:48:06 +00:00
Dan Sinclair 74b5878da7 - fix warnings
SVN revision: 34490
2008-05-07 02:16:50 +00:00
Cedric BAIL 14a01955ef Switch efreet_ini_parse to use mmap instead of fopen. Small speed improvements and little code cleanup.
FIXME: If people wonder we are loosing 50% of efreet time inside ecore_hash_* and ecore_string_*.


SVN revision: 34482
2008-05-06 15:56:40 +00:00
Carsten Haitzler 9e6e6a86e2 efreet segv maker removed. bad unescaping causing segvs! fixxored.
SVN revision: 34445
2008-05-03 09:25:43 +00:00
Sebastian Dransfeld b495b19470 formatting
SVN revision: 34212
2008-04-07 05:52:45 +00:00