2017-07-04 14:22 GMT+02:00 Andrew Williams <a...@andywilliams.me>:

> Hi,
>
> I jumped back to this email I sent a week ago and realised that we have
> just spent a bunch of time revisiting a discussion that had clearly wrapped
> up at the EDD in Malta. One reason I wanted to post our conclusion to the
> list was for visibility and a chance to comment for anyone who was not able
> to attend. Unfortunately instead we have had a lot of the same points
> brought forward that were already discussed at the event which has led to
> confusion and time wasting.
>
> There is a question in here about general API design that I will start in a
> new thread but i want to wrap up this discussion. Is there anyone on this
> list (except raster as Tizen developer proxy) who disagrees with the
> approach as was laid out in my email of the 29th?
>

you still did not reply to the first raster's question:
do we will have a markup variant for every text operation? (text_set,
text_append, text_insert...etc).

To be honest I never had any issue with the current always-markup model,
so for now I vote for keeping the legacy behavior also on the new EO api.



>
> I understand that this could be conceived as a massive change but my
> understanding was that the Eo API was a chance to fix things up to be
> better going forward and not to be shackled by our choices of the past. If
> that is not true then we will really struggle to make quality bindings to
> higher level languages (in this context the difference between plain text
> and markedup/parameterised text and also the tight coupling of text
> handling and the rendering).
>
> Thanks
> Andy
>
> On Thu, 29 Jun 2017 at 07:13, Andrew Williams <a...@andywilliams.me>
> wrote:
>
> > Hi,
> >
> > Just to wrap this thread up following EDD:
> >
> > * no-one is proposing that we remove the ability to mark up text through
> > the markup format mechanism, it is a great feature
> > * we cannot make changes to this legacy API as apps depend on it or have
> > adapted to it
> >
> > * the new textblock API, which is currently plain text only is being
> > extended with a solid markup API
> > * The existing markup format will be supported through _markup_text_set
> or
> > similar API leaving text_set/get to be plain text only
> >
> > It was beileved that this would satisfy all requirements whilst removing
> > any confusion about the nature of text encoding when using plain text.
> > This allows us to take a path-of-least-surprise approach for the new Eo
> > based text APIs
> >
> > Thanks everyone for the discussion :)
> > Andy
> >
> > On Sat, 24 Jun 2017 at 05:39 Carsten Haitzler <ras...@rasterman.com>
> > wrote:
> >
> >> On Fri, 23 Jun 2017 21:55:14 +0200 Davide Andreoli <
> >> d...@gurumeditation.it>
> >> said:
> >>
> >> > 2017-06-19 13:36 GMT+02:00 Daniel Hirt <hirt.da...@gmail.com>:
> >> > > Hi,
> >> > >
> >> > > On Mon, Jun 19, 2017 at 12:01 PM, Andrew Williams <
> >> a...@andywilliams.me>
> >> > > wrote:
> >> > >
> >> > >> Hi,
> >> > >>
> >> > >> Looking at the tests you point me at - selection (and the past) is
> a
> >> > plain
> >> > >> text copy with the markup stripped - exactly what I would expect
> for
> >> > >> text_get - but the current content transformed with the helper will
> >> not
> >> > get
> >> > >> you there - there is no built in interpretation of formatting -
> just
> >> > >> rendered understands it.
> >> > >>
> >> > >>
> >> > > "elm_entry_selection_get" returns the text in markup format. The
> test
> >> > prints
> >> > > both types one after another (markup followed by plaintext) using
> >> > > "elm_entry_markup_to_utf8".
> >> > > It is essential for copy & paste of markup text between two entry
> >> clients,
> >> > > so the pasted formatting is kept.
> >> > >
> >> > >
> >> > >> Overall the implementation feels wrong - supporting markup is great
> >> but
> >> > >> returning it inline in text_get feels like we are imposing internal
> >> > choices
> >> > >> on other devs.
> >> > >>
> >> > >> I note that the code considers format but only when interacting
> with
> >> > files
> >> > >> - so I can have plain text files but not plain text input.
> >> > >>
> >> > >>
> >> > > Right, it's a feature so you can load plain files. You specify the
> >> format
> >> > > you
> >> > > want to load (plaintext or markup). But, after the file is loaded,
> >> it's
> >> > > discarded.
> >> > >
> >> > > It's important to point out that because there's an actual
> >> representation
> >> > > (markup), it's costly to store both plaintext and markup content in
> >> the
> >> > > object.
> >> > > Asking you to convert using "markup_to_utf8" is understandable, as
> it
> >> what
> >> > > we would actually do internally if we were to add API to get the
> text
> >> in
> >> > > plaintext. It's only one function call away, and it's easier than
> >> just add
> >> > > more
> >> > > API to the widget. No need for a new function if there's a way to do
> >> this
> >> > > already.
> >> > >
> >> > >
> >> > >> Lastly the documentation clearly discussed markup capability but it
> >> > *never*
> >> > >> discusses encoding and there is no explicit mention that your text
> >> will
> >> > be
> >> > >> transformed after text_set. If it were then it should be
> >> symmetrically
> >> > >> transformed back on text_get - path of least surprise.
> >> > >>
> >> > >>
> >> > > Actually, it is not transformed on "text_set". You are expected to
> >> enter a
> >> > > markup-compatible text. Otherwise you will have the mentioned
> special
> >> > > characters (like "<") misinterpreted as markup. You can try with
> >> > > "elm_object_text_set" on an entry widget.
> >> > >
> >> > >
> >> > >> I don't quite understand why we would build formatting in as
> >> mandatory,
> >> > >> functionality is great but it should be possible to turn it off.
> >> > >>
> >> > >> I agree that people complain when markup is not supported in a
> >> widget but
> >> > >> that is the expectation we have set - consistency is very important
> >> > indeed
> >> > >> and I think we don't have it in this regard.
> >> > >>
> >> > >> Additionally I think the markup_to_utf8 methods are peculiarly
> named
> >> -
> >> > they
> >> > >> do no character encoding so the usage of utf8 is probably
> >> incorrect...
> >> > >>
> >> > >
> >> > > They're correct. UTF-8 is the standard plaintext encoding. We
> support
> >> > UTF-8,
> >> > > and provide converters for your convenience. You probably won't need
> >> those
> >> > > most
> >> > > of the time.
> >> > > Your plaintext is always "encoded", but you probably won't notice
> that
> >> > > because
> >> > > it's backward-compatible with US ASCII (1-byte per character).
> >> > >
> >> > >
> >> > >>
> >> > >> Andrew
> >> > >>
> >> > >>
> >> > > Lastly, I would like to mention "Efl.Ui.Text" - this new widget is a
> >> part
> >> > > of a
> >> > > rework of the Textblock object. It's in BETA stage.
> >> > > It does what you require: all text input is expected to be
> plaintext.
> >> > > There's no
> >> > > "markup" logic in it. Instead, you format your text by setting
> ranges
> >> and
> >> > > calling
> >> > > functions to apply formatting. Again, markup does not exist in this
> >> > object,
> >> >
> >> > What? no more markup support? This is really, really sad to hear :(
> >>
> >> i've ben trying to tell people that markup is LESS bad than no markup
> (or
> >> having to do it via api calls)... but the people giving the opinions on
> >> this
> >> aren't writing the apps.
> >>
> >> maybe you c an convince them.
> >>
> >> > I'm using markup everywhere in my media center and I'm really happy
> with
> >> > it's usage.
> >>
> >> too bad. plain text for you unless you call lots of api calls to insert
> >> it tag
> >> by tag. have fun.
> >>
> >> > Please think carefully at my use case:
> >> >
> >> > http://www.enlightenment.org/ss/e-594d67c3ee4752.10999768.jpg
> >> >
> >> > Look at the the textblock in the lower-right corner,
> >> > the code to set the text is something like this:
> >> >
> >> > text = sprintf("<title>%s</> <small>%s</small><br>"
> >> >        "<small><name>%s</> %s <name>/ %s %s</><br>"
> >> >        "<views>%s %s</> <name>/</> "
> >> >        "<likes>%s %s</> <name>/</> "
> >> >        "<comments>%s %s</></small><br>%s",
> >> >        video.name, video.duration,
> >> >        _('user'), video.user,
> >> >        _('uploaded'), relative_date(video.created_time),
> >> >        views, ngettext('view', 'views', views),
> >> >        likes, ngettext('like', 'likes', likes),
> >> >        comments, ngettext('comment', 'comments', comments),
> >> >        video.description)
> >> >
> >> > ..thats it, and I have those beautiful (theme-able!) formatted text.
> >> >
> >> > Now try to think at the code needed to do the same with the "new" API
> !!
> >> >
> >> > Another insurmountable problem of the API approach: the text in my
> >> example
> >> > comes from plugins (the vimeo plugin in this case) that are separate
> >> > processes
> >> > from the core mediacenter, plugins just fetch datas from the net and
> >> pass
> >> > them back to the core. This means that the plugins do not have access
> >> to the
> >> > textblock API.
> >> >
> >> > Some more examples:
> >> > https://github.com/DaveMDS/epymc/wiki/Screenshots
> >> >
> >> > I can understand the initial issue Andrew was speaking in this thread
> >> > (text_get
> >> > is difficult to use). And I agree that the default behavior should be
> >> plain
> >> > text set/get,
> >> > BUT: we really need to implement something like: text_markup_set(...)
> >> >
> >> > To be more clear: loosing the markup ability (in textblock, buttons,
> and
> >> > any other widget) is a shame, we are loosing IMO the most powerful and
> >> > useful
> >> > feature of textblock in efl.
> >> >
> >> > > can be re-added as a module in later stages.
> >> >
> >> > Please, please, please re-added it now, otherwise I will not be able
> to
> >> > port my
> >> > applications to the new API, until a "later stage" will eventually
> >> occur.
> >> >
> >> >
> >> > > You can check its current state in "efl ui text" test in
> >> elementary_test.
> >> > > Feedback
> >> > > will be very much appreciated.
> >> > >
> >> > > Hope this answers a few of your questions.
> >> > > Best,
> >> > > --
> >> > > Danny (herdsman) Hirt
> >> > >
> >> >
> >> ------------------------------------------------------------
> ------------------
> >> > > Check out the vibrant tech community on one of the world's most
> >> > > engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> >> > > _______________________________________________
> >> > > enlightenment-devel mailing list
> >> > > enlightenment-devel@lists.sourceforge.net
> >> > > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> >> >
> >> ------------------------------------------------------------
> ------------------
> >> > Check out the vibrant tech community on one of the world's most
> >> > engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> >> > _______________________________________________
> >> > enlightenment-devel mailing list
> >> > enlightenment-devel@lists.sourceforge.net
> >> > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> >> >
> >>
> >>
> >> --
> >> ------------- Codito, ergo sum - "I code, therefore I am" --------------
> >> The Rasterman (Carsten Haitzler)    ras...@rasterman.com
> >>
> >>
> >>
> >> ------------------------------------------------------------
> ------------------
> >> Check out the vibrant tech community on one of the world's most
> >> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> >> _______________________________________________
> >> enlightenment-devel mailing list
> >> enlightenment-devel@lists.sourceforge.net
> >> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> >>
> > --
> > http://andywilliams.me
> > http://ajwillia.ms
> >
> --
> http://andywilliams.me
> http://ajwillia.ms
> ------------------------------------------------------------
> ------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> _______________________________________________
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to