[Development] QML: Why C++11 scoped enums are not scoped in QML?

Olivier Goffart olivier at woboq.com
Thu Jul 28 09:41:48 CEST 2016


On Donnerstag, 28. Juli 2016 10:32:54 CEST BogDan Vatra wrote:
> On miercuri, 27 iulie 2016 09:08:32 EEST Thiago Macieira wrote:
> > On quarta-feira, 27 de julho de 2016 11:47:03 PDT BogDan Vatra wrote:
> > > On miercuri, 27 iulie 2016 10:35:01 EEST André Somers wrote:
> > > > Op 27/07/2016 om 09:53 schreef BogDan Vatra:
> > > > Would that not break existing QML applications that now use enums
> > > > backed
> > > > by scoped enums in C++?
> > > 
> > > It will, but personaly I can't see a better solution ...
> > 
> > I have already said what to do: make it an opt-in on registration of the
> > enum to the QML/JS engine.
> 
> Got it  :)
> 
> > > So, either we break the existing QML apps that used scoped enums in C++
> > > (which is useless, because in QML side you'll get name clashing) or we
> > > keep
> > > it as it is now and never "fix" it. I'd like the first option :).
> > 
> > I really hate it. Breaking applications should not even be an option on
> > the
> > table. Let's start with "we won't gratuitously break applications" and
> > work
> > to find a solution from there.
> > 
> > > Of course if we can find a better solution to have them both is even
> > > better
> > > !
> 
> What I was trying to say here is that I'd like to have by default C++11
> scoped enums scoped also on QML, but if everybody thinks is a no go, than
> we can co the other way around.
> 
> Anyway, I checked the code a little bit, hopping it will be a few lines
> change, but I was so wrong :). I tried to prefix the (scoped) enum keys with
> the "EnumName." but of course it didn't worked :D, "EnumName_" works fine.
> It seems it needs much love (probably some virtual types based on
> EnumName), unfortunately my QML engine knowledge are too limited to
> continue :).

Note that in C++11, all enums can be used scoped. (even the normal ones)
I think it would make sens to allow all enum to be used scoped in QML too.

-- 
Olivier

Woboq - Qt services and support - https://woboq.com - https://code.woboq.org






More information about the Development mailing list