Commit Graph

325 Commits

Author SHA1 Message Date
Gustavo Sverzut Barbieri 5fb986a05b avoid unwanted clicks on touch-screen.
avoiding the un-wanted clicks with touch-screen devices (especially if
they aren't so precise); it basically allows to set a time delay to be
awaited (pressing over an icon) before sending a "selected" callback.

Thanks to this, it could be needed a longer pressure to select an item
in the file-manager; useful for embedded/touch-based systems.

By: Marco Trevisan (Treviño)



SVN revision: 41127
2009-06-20 15:49:54 +00:00
Gustavo Sverzut Barbieri 2af9f44b4f efm2 hal handling API - full changes.
1. Added E_FM_OP_EJECT command to e_fm_main. It unmounts volume
   before eject, if it necessary.
2. Added timeouts of mounting/unmounting/ejecting media, and
   it's moved to slave e_fm_main.c. Each timeout will generate
   *_MOUNT_ERROR, *_UNMOUNT_ERROR and *_EJECT_ERROR message.
3. Added auto mount on insert media and auto showing efm2 window
   on mount volume options to filemanager config.
4. Added mounted/unmounted glyphs to efm2 icons and track state
   code. Now each removable device have "M" glyph on icon if mounted
   and "U" when unmounted.
5. Added mount/unmount/eject commands to icon dropdown menu.
6. Russian translation of mew messages.
7. Other bugfixes and improvements for co-operation.

Now, efm2 contains all code to mount/umnount/eject removable media and
all code to provide corresponding user interface.
It can working independently from 'places' or co-operate with it.

By: Sergey Semernin



SVN revision: 40928
2009-06-07 00:00:41 +00:00
Gustavo Sverzut Barbieri 97de98a66e Make fallback to parent dir when no permissions.
Now, when "open dirs in place" is active and user haven't permission to
open dir, efm2 fallback to parent directory. Also other events (for ex.
delete)
on dirs opened in efm will cause go to it's parents in efm windows.

Patch to ticket #273.

By Sergey Semernin.



SVN revision: 40711
2009-05-17 21:30:15 +00:00
Carsten Haitzler 87842cb5e7 several patches from sergey etc.
SVN revision: 40668
2009-05-15 11:47:28 +00:00
Carsten Haitzler 4fa7de4c9c 1. fm rename in-place patch. ok for now - probably should fix it up later
2. config module fix



SVN revision: 40508
2009-05-05 14:27:28 +00:00
Iván Briano 9dde4b37b2 White spaces
SVN revision: 40240
2009-04-19 20:18:36 +00:00
Gustavo Sverzut Barbieri 9cc29ad360 fix bug when there is no file extension.
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
2009-04-16 22:17:50 +00:00
Gustavo Sverzut Barbieri e0040cefb9 major cleanup of path creation to $DATADIR and $HOME/.e/e
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
2009-04-13 14:56:38 +00:00
Gustavo Sverzut Barbieri 619ed37fed eina_stringshare_replace() gets in!
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
2009-04-08 18:25:02 +00:00
Davide Andreoli ffd353ac39 * E_Fwin:
Ctrl+w -> close the window
Ctrl+a -> select all



SVN revision: 39865
2009-04-05 00:26:31 +00:00
Viktor Kojouharov 3805af7fcc files can now be dragged over destination files (not just subdirs). In that case, the source file will be sent to the directory that houses the dest file. No more seggies
SVN revision: 39829
2009-04-01 17:03:09 +00:00
Viktor Kojouharov e33ba2d5f0 ctrl+n duplicates the current fwin
SVN revision: 39826
2009-04-01 08:28:21 +00:00
Davide Andreoli 0f1775c8e8 Attach the fm object pointer to the menu generated from the efm.
So you can read the fm object if you hook into the menu.



SVN revision: 39803
2009-03-30 14:31:54 +00:00
Davide Andreoli 1bfc6fd633 * Better dialogs (rename, overwrite etc) for efm
SVN revision: 39788
2009-03-29 01:24:11 +00:00
Davide Andreoli 44883d6cf0 * e_fm_op_registry : rename duration to eta
* 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
2009-03-29 00:26:43 +00:00
Carsten Haitzler 2e36885899 nuke segv in fm and leaks in menus.
SVN revision: 39644
2009-03-23 09:36:11 +00:00
Gustavo Sverzut Barbieri 3a79d6a21e fix drag&drop of multiple files and reduce variables scopes.
SVN revision: 39568
2009-03-19 01:45:58 +00:00
Gustavo Sverzut Barbieri b382153c0f move loop invariant sprintf() outside loop.
SVN revision: 39567
2009-03-19 00:50:35 +00:00
Gustavo Sverzut Barbieri 9a882b5124 enjoy stringshare benefits.
SVN revision: 39566
2009-03-19 00:36:12 +00:00
Gustavo Sverzut Barbieri ae0aa2ed8b less noise/debug.
SVN revision: 39547
2009-03-18 14:00:45 +00:00
Gustavo Sverzut Barbieri 92cab40cda add filemanager operation registry.
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
2009-03-18 01:33:06 +00:00
Hannes Janetzek 43fbd47070 added: _e_fm2_icon_next_find function used in _e_fm2_icon_sel_prev/next and _e_fm2_typebuf_match
- _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
2009-03-17 19:49:12 +00:00
Hannes Janetzek 5f212bd64c some efm work:
- up/down key navigation for grid mode
- fixed next/prev functions for custom grid
- use 'key' instead of keyname


SVN revision: 39514
2009-03-17 01:40:50 +00:00
Cedric BAIL 46e8efcd8c Let me introduce you to Ecore_Input. The idea is to share as much as possible event
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
2009-03-16 16:24:43 +00:00
Davide Andreoli eb2d1db1dc Icon rename finished. Now we have a fully compliant icon theme :)
now I'm going to fix E-MODULE-EXTRA...


SVN revision: 39495
2009-03-15 17:41:46 +00:00
Davide Andreoli 3d41cbb20d More icon works, this commit include changes to the icons on the desktop.
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
2009-03-08 23:09:48 +00:00
Davide Andreoli 3d669d1177 * Rename the new function:
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
2009-03-04 20:46:05 +00:00
Gustavo Sverzut Barbieri 8e66ce8605 symlink icons back!
SVN revision: 39357
2009-03-04 03:25:40 +00:00
Gustavo Sverzut Barbieri cb629d5a56 More FDO icons work, now able to choose which one has precedence.
SVN revision: 39355
2009-03-04 02:56:27 +00:00
Gustavo Sverzut Barbieri beaf395663 fdo menu icons now scales.
SVN revision: 39353
2009-03-04 00:39:49 +00:00
Gustavo Sverzut Barbieri 43a27176be Fix edje thumbnails.
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
2009-03-03 20:17:17 +00:00
Gustavo Sverzut Barbieri a9a0752791 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 9bc2ce0678 Invert view_flags logic, make it easier to use.
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
2009-03-03 04:40:58 +00:00
Davide Andreoli b19ee965ee First step to merge Places module with efm.
* 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
2009-03-02 22:46:40 +00:00
Gustavo Sverzut Barbieri ee2ab9506b fix problem with double directories in virtual devices.
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
2009-03-02 11:55:57 +00:00
Gustavo Sverzut Barbieri 155495866f add e_fm2_view_flags_{get,set}
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
2009-03-02 03:12:43 +00:00
Gustavo Sverzut Barbieri e88de35176 efm: use freedesktop icons from icon theme.
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
2009-03-01 21:06:51 +00:00
Gustavo Sverzut Barbieri 82a8ab89df Major refactor of e_fm2_icon_get() and minor optimizations.
* 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
2009-03-01 18:15:44 +00:00
Gustavo Sverzut Barbieri 5b0166b41e Enable per-dir theme of rubberband as well.
SVN revision: 39219
2009-02-25 21:06:21 +00:00
Cedric BAIL db419867dd * 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 59cde6a762 fm: handle symbolic links.
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
2009-02-24 05:22:14 +00:00
Gustavo Sverzut Barbieri ca8587a631 Oops, fix some bugs introduced with past commits.
SVN revision: 39032
2009-02-16 00:28:51 +00:00
Gustavo Sverzut Barbieri 815441ef2e e_fm: remember directory settings.
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
2009-02-15 23:09:09 +00:00
Gustavo Sverzut Barbieri b6e158989f Remove some warnings I introduced with past commits.
SVN revision: 39029
2009-02-15 17:06:49 +00:00
Gustavo Sverzut Barbieri df17ed3ca2 Minor refactor of interfaces, split code and menu callbacks.
Let's make real code interfaces to take a single Evas_Object and menu 
items callbacks should call them.



SVN revision: 39028
2009-02-15 15:25:27 +00:00
Gustavo Sverzut Barbieri 73ed3f89b3 keyboard shortcuts: ^X, ^C and ^V now works.
http://trac.enlightenment.org/e/wiki/Release



SVN revision: 39027
2009-02-15 14:50:30 +00:00
Gustavo Sverzut Barbieri 68461812b1 DONE: fm2 "delete" key needs to... delete.
http://trac.enlightenment.org/e/wiki/Release



SVN revision: 39026
2009-02-15 14:31:09 +00:00
Gustavo Sverzut Barbieri 78c70d7f94 fix sting bugs with e_fm and fileman.
* 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
2009-01-12 19:52:35 +00:00
Carsten Haitzler 6beedeeda2 only use evdir.. if its there.
SVN revision: 38478
2009-01-06 07:55:03 +00:00
Carsten Haitzler 0c41ae041e move internal binaries to subdir - patch from albin
SVN revision: 38414
2009-01-02 01:08:14 +00:00