Mostly due to historical reasons. The desktop components were originally based
on a concept of styled "custom" components developed in a separate branch on
Gitorious:
https://qt.gitorious.org/qt-components/qt-components/commits/custom
The idea was that you can create a custom component with it's own look and feel
like this:
Button {
background: Rectangle{ color: styledItem.pressed ? "red" : "blue" }
label: Text{ text:styledItem.text ; color:"red }
}
These "custom" components have no native look and feel by themselves and a very
limited API. The components that you find in the "custom" folder are all
derived from this idea and can still be used by themselves.
It separates the platform independent logic, while still adding platform
dependent specific things like ToolTips, MouseWheel support etc separately. In
practice we don't expose the custom components so to the end user it means
nothing,
but you can still override the styling of desktop buttons by setting a custom
background delegate.
As the branches have since diverged and I have been less strict about keeping
the separation for components which clearly do not make sense outside of the
desktop, I don't see it as all that useful to enforce this as a pattern so it
is little more than an implementation detail at this point. I still keep some
of it around to more easily backport patches. I can move them to the "private"
directory if it makes it less confusing though.
Regards,
Jens
On May 8, 2012, at 6:45 PM, ext Alberto Mardegan wrote:
> Hi all,
> I've got a question about the QML Desktop components at:
> https://qt.gitorious.org/qtplayground/qtdesktopcomponents
>
> Some components, such as TextField, are implemented as a derivative of
> another (homonymous) component defined in the "custom/" subdirectory.
> Why is this separation needed? Are there guidelines which tell whether
> some piece of code should belong to the toplevel component or in the
> "custom/" implementation?
>
> Ciao,
> Alberto
> _______________________________________________
> Development mailing list
> [email protected]
> http://lists.qt-project.org/mailman/listinfo/development
_______________________________________________
Development mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/development