Here the singular version is not used in english, but plural support is nonetheless needed for languages who have multiple plurals depending on the number of files.
Bonus: add a complementary dialog for when you're trying to delete all the files in the folder.
SVN revision: 73868
dev notes: changes to efm were required for this to work since udisks doesn't report back a mount point upon executing a mount command, so the actual dir listing/display must
be delayed by another callback until we actually know where the disk is to avoid opening a random directory
SVN revision: 55916
Do not abuse the concept of e_*_init(), make them call-once and those
that needed multiple call are renamed to e_*_update(). To make sure
convert them to EINTERN so the symbols are not exported.
Actually I guess too much is exported as EAPI while they should be
EINTERN, but that would require manual investigation, while this patch
was basically created with sed + grep.
SVN revision: 54795
We return a pointer to an internal cache, so no need to do strdup. I we
implement a cache, the pointer will be a return from a mmap'ed file, so
no need to do strdup.
A bit late to do an API break, but must be done.
SVN revision: 54372
It seems that originally the "selected" event wasn't to be fired on dirs
during single click. This makes it impossible for fwin to open a new
window when single clicking a dir, so some ugly hacks has been added.
"The right fix (tm)" is to always emit "selected", even on dirs, and let
the listener decide what to do with the file.
SVN revision: 54229
as far as I can tell, it's perfect for non-headers
header example following as soon as I finish making it space EINA_XYZ() args properly
SVN revision: 53774
using str1 == str2 instead of strcmp assuming all strings are
stringshared. dont ASSUME this unless you 100% KNOW for sure they are.
bad disco stu!
SVN revision: 53128
Apply badzero.cocci, badnull.coci and badnull2.cocci
This should convert all cases where there's a comparison to NULL to simpler
forms. This patch applies the following transformations:
code before patch ||code after patch
===============================================================
return a == NULL; return !a;
return a != NULL; return !!a;
func(a == NULL); func(!a);
func(a != NULL); func(!!a);
b = a == NULL; b = !a;
b = a != NULL; b = !!a;
b = a == NULL ? c : d; b = !a ? c : d;
b = a != NULL ? c : d; b = a ? c : d;
other cases:
a == NULL !a
a != NULL a
SVN revision: 51487
* Remove vim modelines:
find . -name '*.[chx]' -exec sed -i '/\/\*$/ {N;N;/ \* vim:ts/d}' \{\} \;
find . -name '*.[chx]' -exec sed -i '/\/[\*\/] *vim:/d' \{\} \;
* Remove leading blank lines:
find . -name '*.[cxh]' -exec sed -i '/./,$!d'
If you use vim, use this in your .vimrc:
set ts=8 sw=3 sts=8 expandtab cino=>5n-3f0^-2{2(0W1st0
SVN revision: 50816
That is why stringshare returns "const char*".
ZMike, pay attention to these cases. I know this one was particularly
nasty to spot since you receive the "const char *path", but later on
you request strrchr(path..) and receive "char *p", the cast is done
implicitly by libC to make all the case works (C++ version fixed this
recently, but in C there is no way).
The crash that lead me to investigate it was spot by Lucas De Marchi
at advanced wallpaper dialog, but actually other places that uses efm
should be equaly broken.
SVN revision: 48508
Only emit "selected" on mouse up if we are in single click mode and no
modifiers is set.
Need to check for single_click first, so that inplace_open isn't called
on doubleclick.
Fixes ticket 375
SVN revision: 45130
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
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
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
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
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
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
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