implement text_class override at object level, where you can change the text_class for single textblock object instead of override all objects that share same text class.
This imported from TIZEN
Note:
This also fix edje_textblock font/font_size parsing by adding condition
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10598
Summary:
This reduce in elementary_test the number of callback registered on the
canvas from hundreds to around 10.
Depends on D10486
Reviewers: zmike, raster, bu5hm4n, Hermet
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Maniphest Tasks: T8321
Differential Revision: https://phab.enlightenment.org/D10487
Summary:
All those api's are working on the Edje_file level so by appending the file prefix
and changing the argument to Edje_File leads to easy maintainability.
Depends on D9776
Reviewers: Hermet, ali.alzyod, zmike
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9777
Summary:
move the file related function to edje_cache so that code
is easy to read and maintainable and we don't have to do unnecessary
stuff for each edje object creation.
Reviewers: Hermet
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9761
Summary:
We were creating 3 eina_list and destroying inside a for loop.
replace that with creating a single eina_array at start and use
eina_array_clean() function ro reuse the array.
Reviewers: Hermet, zmike, cedric, raster
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9745
Summary:
This function does lot of things
- can be called only to load the file (by passing coll as null)
- can be called to load both file and open the collection from the file.
- handles the file_cache logic
- handles fixing the collection after reading from file.
this patch is targeting to split the responsibility to
smaller function for easy maintenance and code readability.
future patch to follow for splitting the file opening and collection
opening to two different function.
Reviewers: Hermet, raster, cedric, zmike
Reviewed By: zmike
Subscribers: zmike, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9715
As edje mostly deals with style string. to get the style data each time
it linearly search through list to find out the style which is not very
cache friendly so keep a hash to do first lookup with less impact on cache.
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D9547
do it once and remember the result from the first one. drops overhead
for sure by a chunk i actually could see in perf reports like about 1-2%
of cpu...
this uses the just-added "id" property to allow referencing images
by name from that theme. example:
=FILE1=
id: "myfile";
images.image: "someimage.png" COMP;
=FILE2=
requires: "myfile";
images.image: "someimage.png" EXTERNAL "myfile";
FILE2 will now load someimage.png from FILE1 at runtime if FILE1 is
currently opened in edje, and FILE1 will be kept open until FILE2 is
closed
@feature
Summary:
From EFL 1.19, Edje Textblock calculation logic was fixed according to
Edje documents. But, it broke old edje files which ignored text.min
option for minimum width. Even if the old edje files were wrong,
we need to support them as discussed from T5548.
Also, this patch will change default efl_version to 1.18 from 1.19.
So, without efl_version property, edje file will run on the legacy logic.
Fixes T5548
Test Plan: Turn on/off presentation mode in Enlightenment.
Reviewers: herdsman, cedric, jpeg, zmike, raster
Subscribers: stefan_schmidt
Maniphest Tasks: T5548
Differential Revision: https://phab.enlightenment.org/D4967
Adjusted by @jpeg
Summary:
efl_version will be used to figure out which version of EFL lib
is used to develop a edje file.
If there is no property of efl_version, it will be 1.19 as default.
This feature is needed to fix T5548.
Example:
efl_version: 1 20
@feature
Test Plan: N/A
Reviewers: cedric, jpeg, herdsman, zmike, raster
Reviewed By: cedric
Maniphest Tasks: T5548
Differential Revision: https://phab.enlightenment.org/D4961
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
ancient edje files dont put hash strings in the file dictionary but
instead inline and thus the strings cannot be direct added... silly
ancient files.
this is a horrible ugly workaround this but there isn't really
anything better than trying to detect such files (which dont seem to
have an older version in them i can find?) so detect by pointer
address and mapping the file.
this fixes T5138
@fix
it seems vector type parts were not handled all that well. we had at
least one mem leak with the vector mempool never being freed... so i
filled in various missing points where vector parts were not being
handled right.
@fix
so edje was allocating 32 pointers per collection. this is per
collection inside an edje file even if we just use one collection from
that edje file. it consumes 32 pointers. on 64bit thats 256 bytes...
just for pointers to mempools so we can "optimize" freeing and
allocation of parts. this was simply rediculous. i moved it to a
sub-struct allocated on demand (so now only for collections we
actually use) and this nuked 400k of "base memory usage youcant get
rid of).
note that our current default theme has something like 1100 or so
images, 1500 or so collections in it. as theme gorws, memory footprint
goes up if we dont allocation only on demand (when needed/used) and we
aren't careful about the size of our data structs and their content.
@optimize
Summary:
The "color_tree" block contains a list of one or more "node" blocks.
A "node" block consists of its own color class name and the list of child
color classes. At runtime, parent color class will be referred instead,
if child color class is set to part but its color values are not defined.
Reviewers: raster, Jaehyun_Cho, jpeg, cedric
Reviewed By: cedric
Subscribers: cedric, kimcinoo
Differential Revision: https://phab.enlightenment.org/D3606
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
edje_file_data_get() failed if the Edje file did not contain
a collection (e.g. contained only data.item.
This allows to load data from the file even when no collections
are present, but only if specified.
@fix
Reviewers: raster, jpeg, stefan_schmidt, cedric
Reviewed By: cedric
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D3632
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Edje_Part can change its min or max size in code level with
size_class.
Differential Revision: https://phab.enlightenment.org/D3329
PS: Manual commit, arc refused to work...
@feature
Signed-off-by: Jean-Philippe Andre <jp.andre@samsung.com>
This makes SNAPSHOT a part type on it own, combining the
common and filter subtypes.
This means it is now possible to set an evas filter on
a SNAPSHOT object, just like for TEXT, IMAGE and PROXY.
@feature
Summary:
_edje_file_coll_open will be executed after _edje_file_open is finished.
This duplicatated call will increase the reference counter and give failure
of _edje_cache_coll_unref.
@fix
Reviewers: cedric, raster, Hermet
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D3075
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
This dpi is used to get the scale for each collection.
If each collection has a described dpi, it calculates a proper scale
based on the dpi and dpi which is described in the collection.
@feature
Test Plan:
If add dpi to collection of edc, the edje will save the value as the dpi of the collection.
For example, if the dpi of your device is 100, you just set dpi: 100 in the collection of edc.
If the edj is loaded in another device(dpi is 200), it will scaled 2 times.
It is possible that the described dpi of application and theme are different.
In that case, application and theme have a different scale.
It makes the edj that made in different environment works in one device.
Reviewers: seoz, zmike, JackDanielZ, Hermet, woohyun, cedric, raster
Reviewed By: raster
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D1190
so this has to go. reloading edje files is nothing but trouble.
example - if you update your os your theme files get updated and then
all sorts of stuff goes wrong. jeff is right. this makes it an
intractible problem. we have an open file handle on the edj file. we
share that anre reuse it via eina_file - keep it. this keeps tyhe edje
file stable and consistant.
<Jef91> Elementary applications freak the fuck out
<Jef91> if you change the theme file
<Jef91> that they are using
<Jef91> SeoZ,
http://forums.bodhilinux.com/index.php?/topic/10629-eepdater-display-issue/
<Jef91> that happens when my theme file that is in use changes
we will get nothing but continued issues and complains if we keep
doing this. it's a fairly pointless mis-feature. thank god its got no
apis - just signals and internals.
"edje: open Eina_File ourself instead of delegating it to edje."
"edje: don't never corrupt an opened edje object."
This reverts commits 8727e43c1f and 8f12f21cf0, which caused nonstop crashes.
This reduce our waste of memory by 300K in most elementary application. There is
another 400K to win by merging edje signal callback automat.
SVN revision: 83879
this is still in progress, mostly the multisense stuff is pending.
it seems that when we merge ecore_audio in edje the libremix and
similar are gone, at least from Edje, and will be in ecore_audio
itself (or pulseaudio).
Changes:
* __UNUSED__ to EINA_UNUSED
* binaries (epp, embryo_cc, edje_cc) now consider EFL_RUN_IN_TREE and
will assume the binaries are still not installed, running from
build tree location (needs more testing, maybe doesn't work with
srcdir != builddir, still doesn't solve cross compile builds)
SVN revision: 82139