This was spotted by a segmentation faults on systems where sprintf()
don't handle NULL as "%s" (Solaris, BSDs), but it makes no sense to
lookup "*(null)" as extension on Linux either.
Reported by: mcalamell
SVN revision: 40120
This cleanup replaces snprintf() usage with specific calls, they have
the benefit of being cleaner (so easier to grep), typing less and also
marginal speed up compared to the other (specially concat_static),
although those are rarely used in critical paths.
I'm testing it for some time and seems to not break anything, but let
me know of any problem. If you can review the patch and try to spot
incorrect names, please do.
SVN revision: 40014
I was replicating this code in many places, it should go into eina itself.
It's the right way to change strings that you don't know are
stringshared before, since it will first add a reference and then
remove, making it impossible to have references to go 0 and string
being released before adding new references, fixing the following
possible problem:
x = eina_stringshare_add("x");
replace(x, x);
then:
incorrect_replace(const char **b, const char *a) {
eina_stringshare_del(*b); /* reference gets to 0 */
eina_stringshare_add(a); /* BUG!!! */
*b = a;
}
SVN revision: 39903
* e_fm_op : report sizes (done and total) now refer to the whole task, not the single file
* e_fwin : better operation monitor label (and add a delay on delete)
SVN revision: 39787
This huge commit will add e_fm2_op_registry, a central place that will
store all on-going operations. You will find that it will report when
operations are added, remove and when they change, for example when
they change progress.
Please notice that the recommended way to present information is to
add listener to specific entries, as opposed to use
E_EVENT_FM_OP_REGISTRY_CHANGED since it will be called immediately and
you do not have to filter which entry is being changed.
Entries will be associated with the e_fm object that originated
it. With that one can get the Ecore_X_Window and request the window to
be raised from somewhere else (ie: gadman/gadget). If object is
deleted (ie: window is closed), the pointer will be made NULL and it
will be a "windowless operation".
TO DO (I need someone to do those):
- e_fwin: windows should present on-going operations as an overlay,
Dave Andreolli already started such work, it's just a matter of
using the new infrastructure.
- create a new gadget that present all on-going operations and maybe
a history. It would be nice to show the e_fwin of if the entry is
clicked, as well as a cancel button and a progress bar. See
"places" module, make them similar.
SVN revision: 39541
- _e_fm2_typebuf_match has the new argument 'next'; one can now go to the prev/next match with up/down keys while typebuffer is active
SVN revision: 39534
between all ecore graphic engine to ease porting of application and reduce the amount of
specific code per engine. This patch does just that.
All your application should continu to work has previously, if it's not the case
please report any new behaviour regarding mouse and keyboard.
SVN revision: 39505
You will probably loose desktop icons until you get a fresh profile. Or you can edit the
.desktop files in .e/e/fileman/favorites (new icons name are: user-desktop, user-home, computer and user-temp)
Sorry for bothering... the next commit should be the last ;)
SVN revision: 39419
e_util_menu_item_fdo_icon_set to e_util_menu_item_theme_icon_set
As it looks for icons in e theme AND in fdo icon themes.
* Use the new function everywere instead of e_util_menu_item_edje_icon_set,
that is now marked as DEPRECATED
You should not see any difference with this commit. With the next few commit I'm
going to rename all the icons in the theme following fdo standard. I will not change
any icons, just rename them to match fdo ones.
SVN revision: 39370
Please add the following to your /etc/mime.types:
application/x-edje edj
And the following to your ~/.e/e/config/$PROFILE/e.cfg (see hint below):
group "mime_icons" list {
group "E_Config_Mime_Icon" struct {
value "mime" string: "application/x-edje";
value "icon" string: "THUMB";
}
}
or just remove your settings and choose a newly installed profile.
How to edit your ~/.e/e/config/$PROFILE/e.cfg:
PROFILE=`eet -x ~/.e/e/config/profile.cfg config /dev/stdout`
eet -d ~/.e/e/config/$PROFILE/e.cfg config ~/.e/e/config/$PROFILE/e.src
$EDITOR ~/.e/e/config/$PROFILE/e.src
eet -e ~/.e/e/config/$PROFILE/e.cfg config ~/.e/e/config/$PROFILE/e.src 1
SVN revision: 39348
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
Now flags do not negate, rather specify if things should be used. This
will help us be compatible with original behavior and actually just
e_fwin is using that.
SVN revision: 39340
* Make the fileman menu as it is in Places module (still need to fix icons)
Just a doubt:
why efm was called using ecore_idle_enterer_add ? it is necessary ? I need to reenable it?
SVN revision: 39335
oops, were using realpath and not path!
PS: still segfaults on some cases, related to mouse up callback being
called on already deleted icons, that should not happen as objects are
unrealized before being deleted. Need to investigate.
SVN revision: 39329
with these you can opt to ignore things like custom directory options,
very useful for widgets to choose files (e_widget_fsel) since you
don't want them to show your items as 128x128 :-)
SVN revision: 39322
This almost remove need of e_fm_mime.c since it will use efreet, but
may bring some slowdowns due efreet. In this case let's try to
optimize efreet and improve everything.
SVN revision: 39315
* split e_fm2_icon_get() to make it reuse more code paths.
* lots of new internal functions with _e_fm2_icon_ prefix are born,
try to reuse them as much as possible so we have less places to
change if we move to something else (hint: using FreeDesktop.Org
icons)
* optimize e_fm2_icons_update() and few others to do not copy
sd->realpath all the time, it is loop invariant there.
* comparison of mime icon "DESKTOP" and "THUMB" are now fast pointer
comparison since they're all eina_stringshare'd.
* themes can now differentiate between file types, like 'fifo',
'socket' or even 'executable'.
* common extension comparisons are bit faster, not using glob pattern
matching but rather reusing code to find out last '.' and then
comparing them in optimal way. I added E_FM2_SIMPLE_STRCASE_FILES
to make it even faster if one wants, left disabled by now.
SVN revision: 39313
* 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
Symbolic links are handled similar to "paste". If you "Copy" you'll
get the "Link" menu item that will create a symbolic link instead of
real copying the file.
Drag and Drop works similarly, use "Alt" in order to get a popup and
select "Link" there.
Toma: we do miss icons for it!
Mekius & Ptomaine: please review as I'm not that familiar with e_fm_op.c
SVN revision: 39170
e_fm2_custom_file now remembers directory settings, it will save
position on screen (horizontal and vertical pan percentage), view mode,
icon size, if to remember ordering and if it should show hidden files.
There is a menu option to remove these settings and inherit settings
from parent.
SVN revision: 39031
* simplify eina_stringshare usage with _eina_stringshare_replace();
* do not modify the string in stringshare as in e_fm2_parent_go();
* use custom_theme_content instead of custom_theme in e_fm2_custom_theme_content_set().
Hopefully this will break nothing, but further analysis if it's
leaking strings in the stringshare should be done.
SVN revision: 38559
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
As I suspected it was not error on my code. At the end it was just a
missing theme.
For now I just aliased default to desktop, but I guess it's better to
come with something else transparent so we can see our
wallpaper. Themers?!
PS: for Illume I think it makes sense to have that menu, but for
desktop it does not, maybe we should add more flags to turn off just
view mode selection and keep icon size? Or just turn off lists... or
just let the user choose, there are many strange users out there, one
might like it.
SVN revision: 37983
So far no icon size changes, just mode between Grid Icons, Custom
Icons and List, one can choose to go back to default (global) setting.
TODO:
- select icon size when !list
- save state using e_fm_custom
- child directory should inherit parent settings
SVN revision: 37873
This is a faster "add", if we know we're using a shared string we know
the node without any need to search it, just increment reference and
exit.
SVN revision: 37458
Some people is using it for some time now without problems, so I'm
adding it to SVN to get some broader use. Remember to recompile ALL
libraries that depend on Evas as it will change the
EVAS_SMART_CLASS_VERSION and old classes will fail to load.
This will also change Edje so it will postpone _edje_recalc() to
render time, calculate() callback, however some methods will force
early recalculation.
SVN revision: 35860
* Add DND modifiers: Control for copy, Shift for move, Alt for ask. Default action is move. Config for these comes later.
* Add EDJE signals for theme to act on DND action change.
* Default theme: Show current DND action using overlay icons. Icons done by Tom 'Toma-' Haste, thank you very much.
SVN revision: 35772
* Fix for URI escpaing.
* Add the ability for EFM to recognize different drop actions from other FMs. The reverse soon to come :)
* Add option to disable HAL device icons on the desktop.
* Performing an operation on multiple files will now be done in a single slave process instead of many.
More to come before and after GSOC :) If you see him in the channel, give him a high five because he's finally helped pull EFM out of the crapper :P
SVN revision: 35432
scrollfram smart/widget) using your "finger" anywhere in the view. not useful
for desktops. useful for small screen devices - openmoko/n800 etc. are
perfect targets. just click and drag with your finger, release. drag fast and
releas and you get momentum and it continues for a bit while it slows down.
configurable via a new config module.
SVN revision: 33564
mounted as the user and it monitors other mount work by other apps etc. etc.
some fixes to remove segv's and at least make mt cd/dvd drive recognised asa
storage device, but it seesm as of now mounting of cd/dvd media doesn't work :(
SVN revision: 32141
When as right click an icon, we need to run the test function to determine of
context entries need to go into the menu or not. (previously, only the glob /
mime check was being done)
SVN revision: 32080
* Break out intl data. Reduces the size of e_imc
* Add Dbus ipc replacement
* Elightenment Dbus API can be extended by modules (Example: msgbus_lang)
SVN revision: 31803
e_dbus (optional if you built it) and uses dbus for mount, unmount dev and
volume detection, creates icons and changes their state etc. and automounts
on double-click of volume etc. may have bugs. pants on.
SVN revision: 30346