Commit Graph

337 Commits

Author SHA1 Message Date
Carsten Haitzler 672d1de1e3 fix more void * arith!
SVN revision: 44560
2009-12-19 00:15:16 +00:00
Christopher Michael d246d2e257 Fix some formatting problems.
SVN revision: 43320
2009-10-27 21:50:21 +00:00
Hannes Janetzek f682217fba e_fm:
- show theme folder icons again
- remove mime fallback function.this is already handled by efreets mime fallback


SVN revision: 42473
2009-09-14 00:26:56 +00:00
Hannes Janetzek ab9c3d8468 e_fm: find theme defined mime icons
SVN revision: 42436
2009-09-12 11:22:58 +00:00
Hannes Janetzek 47415c096d return icon.list size if icon.icon size is not set
SVN revision: 42392
2009-09-10 21:02:09 +00:00
Hannes Janetzek df0d471509 - show edje thumbnails in wallpaper and themes dialog again.
- use 48px for fdo icons in flist
- #if 0 unused code


SVN revision: 42389
2009-09-10 20:48:52 +00:00
Gustavo Sverzut Barbieri 58925e0232 Update to match new EINA init/shutdown.
SVN revision: 42301
2009-09-06 22:23:04 +00:00
Christopher Michael 6ab63682dd Fix API Inconsistency in regards to e_widget_min_size_* . Renamed to
e_widget_size_min_* . This Large commit should fix everything in svn that is
using those functions.



SVN revision: 42152
2009-09-01 13:34:42 +00:00
Cedric BAIL f8c05999e4 * e: Cleanup use of Eina data structure.
Patch from Peter van de Werken <pwerken-e@a-eskwadraat.nl>.


SVN revision: 41916
2009-08-21 15:08:49 +00:00
semernin 5d24f7948e 1. New field in E_Fm2_Op_Registry_Entry named dialog, that hold pointer
to error, abort or overwrite dialogs.
2. Glyph in fileman_opinfo theme that show have or not operation linked
   filemanager window.
3. When click on operation on fileman_opinfo, then linked efm window
   raised or attention dialog if error exist.


SVN revision: 41229
2009-07-01 18:35:26 +00:00
semernin 2f76dd5d99 List of changes:
1. Gadcon sities:
      -- 'E_Gadcon_Site' enum to list all available sities,
      -- added 'is_site' callback for distinguish gadcon sities,
      -- 'e_gadcon_site_is_*' helpers written to use in gadget modules,
      -- gadcon config dialogs modified to show only gadgets that appropriate
         to selected gadcon site,
      -- all gadget modules updated for using new callback.
      
      When callback is not provided in module, then gadget can be used in 
      any gadcon site.
      
   2. Filemanager:
      -- added error icon to unexisting path dialog,
      -- added callback 'func.abort' to 'E_Fm2_Op_Registry_Entry' to specify
         abort operation sequence (if not provided, then operation is not
         cancelable),
      -- added parameter to 'e_fm2_op_registry_entry_add' to specify abort
         method on construct 'E_Fm2_Op_Registry_Entry' or make non-cancelable
         operation if this function is not provided,
      -- added 'e_fm2_operation_abort' call to cancel efm2 operation,
      -- added method '_e_fm2_operation_abort_internal' that represent efm2
         default handler of operation cancelling,
      -- 'done' and 'total' fields of 'E_Fm2_Op_Registry_Entry' changed to
         off_t type, also all message handlers modified to work with it
         (to show progress for large files correctly),
      -- improved file operation progress processing,
      -- added cancel button to operation progress gadget in filemanager window,
      -- added delete file glyph to operation progress gadget,
      -- improved status message for efm2 operation progress.

   3. Filemanager slave:
      -- fixed critical bug in message handling via stdin/stdout,
      -- fixed critical bug in removing task from list,
      -- improved 'E_FM_OP_ABORT' handling,
      -- fix rollback counting on moving files.

   4. Fileman_opinfo module:
      -- a new theme writed: status string and gadget for view operation status
         in summary and detail modes,
      -- summary mode: operation glyph, state message, progressbar, abort button,
      -- detail mode: all for summary + from filename, to filename,
      -- summary/detailed button works as trigger,
      -- added source of module theme and used images.
      
   4. Pathbar module:
      -- non-critical fix, just for safety.

   Also patch contains several minor updates to serve main task.


SVN revision: 41224
2009-06-29 14:38:03 +00:00
Gustavo Sverzut Barbieri 00aa72ef47 e_fm2: avoid invalid mouse-up.
Here's another patch I've made for efm2 to fix an issue that I've
often experienced using it (in Illume) with a touch-screen
device (Freerunner).  It often happens a very strange thing: I
try to finger-scroll a bottom icon (it must be on the latest row)
moving my thumb up, well... The the scroller doesn't scroll, but
wherever and whenever I release my finger, the selected icon is
executed!

I don't really know to what is this due (the touchscreen seems to
perform correctly by the way), but I've never been able to
replicate it using a mouse in my PC.

Anyway to fix this issue, that could be specific, I've used a
workaround that I think that could be applied for all: it
basically checks if the mouse has been released in the area where
the clicked icon is, before sending a "selected" callback.

It needs the previously attached
e_fm2-single-click-delay-support.patch to be applied correctly.

Going deeply into the real issue I've made some tests, and I got
that this seems mostly due to an evas issue (I figure), since the
e_fm2's scrollframe never sets the evas event flag to:
EVAS_EVENT_FLAG_ON_HOLD
(that would avoid the un-wanted click).
After some debugging there, I've also seen that in this very
particular buggy case the _e_smart_event_mouse_up() and
_e_smart_event_mouse_move() callback functions are never
called (so I figure that evas doesn't add the callbacks at all
for the scrollframe, while they are added in the e_fm2).

Let me know what you think about this... I thing that the Om
users would need a fix like this.

By: Marco Trevisan (Treviño)



SVN revision: 41129
2009-06-20 15:54:52 +00:00
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