Page MenuHomePhabricator

efl.ui.layout: split into abstract and real class
ClosedPublic

Authored by zmike on Feb 26 2019, 1:15 PM.

Details

Summary

most widgets inherit from layout to provide implementations for common
functionality such as content/text/theme get+set.

one of the things that layout also brings into its inheritance hierarchy
is efl.file and implementations for its methods. this becomes a problem
when the widget which inherits layout also wants to provide implementations
for efl.file methods (e.g., entry, which uses efl.file to load text files)
as it will result in calling all of the efl.file implementations up the
chain.

in the case of entry, this could result in the 'file' property eventually being
set to the current theme file in use by the entry's layout object, and then the
entry will attempt to autosave its content to the default theme file when it is
destroyed, corrupting the theme file and breaking everything

to solve this:

  • efl.ui.layout remains an instantiable class which implements efl.file
  • efl.ui.layout_base is the abstract class which provides all the methods of layout but should be inherited by all widgets which want to implement efl.file functionality

Depends on D8018

Diff Detail

Repository
rEFL core/efl
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.
zmike created this revision.Feb 26 2019, 1:15 PM

It seems that this patch has no reviewers specified. If you are unsure who can review your patch, please check this wiki page and see if anyone can be added: https://phab.enlightenment.org/w/maintainers_reviewers/

zmike requested review of this revision.Feb 26 2019, 1:15 PM
zmike updated this revision to Diff 19706.Feb 26 2019, 2:08 PM
zmike edited the summary of this revision. (Show Details)
segfaultxavi accepted this revision.Feb 27 2019, 7:25 AM

Changes make sense. make && make check && make examples continue working and there are no obvious failures in elementary_test.

This revision is now accepted and ready to land.Feb 27 2019, 7:25 AM
This revision was automatically updated to reflect the committed changes.