Re: [Interest] Using private QtQuick APIs

2018-01-19 Thread Benjamin TERRIER
2018-01-18 9:32 GMT+01:00 Uwe Rathmann :

>
>
> And as long as C++ has not been agreed to be an officially supported API
> to implemented Qt/Quick applications I don't have many arguments for my
> patches.
>

I remember one of the Qt SceneGraph/Quick developers saying at some point
that most of
the scene graph API is private because when Qt Quick 2 was published the
internals
were expected to change a lot. He might have added that the internal APIs
could (should ?) be public in the future.

I do not remember who it was and haven't been able to find the message.

IMHO it would be nice to have a fully usable public C++ API for the scene
graph. Last time I checked
even the glyph node was private. But I do not see it happening any time
soon, it has been requested several times
in the past years and none of the involved people seem to care about this.

Regards

Benjamin
___
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest


Re: [Interest] Using private QtQuick APIs

2018-01-18 Thread Uwe Rathmann
On Wed, 17 Jan 2018 11:59:41 -0800, Thiago Macieira wrote:

> True. Maybe it has never occurred to them that the API would be needed.
> You can help make it happen by adding this API yourself too.

In the case of QSkinny we are not talking about some APIs it is a 
fundamentally different philosophy about what Qt/Quick is supposed to be.

And as long as C++ has not been agreed to be an officially supported API 
to implemented Qt/Quick applications I don't have many arguments for my 
patches.

IMHO the only way to add something new to the discussion is to offer an 
implementation, that makes arguments quantifiable.

Uwe


___
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest


Re: [Interest] Using private QtQuick APIs

2018-01-17 Thread Jean-Michaël Celerier
I propose the following motion:
directly import the whole of github & sourceforge into the Qt project.

After all why shouldn't every piece of code in the universe be part of Qt,
released at a perfect six-month cadence ?
This way, every project in the world will be able to access the "private"
Qt APIs since apparently you need to be part
of this very special 1985 state-of-the-art public/private OOP club in order
to be allowed to glance at them.

I just hope projects which happens to start and end in a few weeks will be
able to cope with the six-decades gerrit-induced delay caused by
the astonishing number of QMyPinkRadioButton reimplementations.


---
Jean-Michaël Celerier
http://www.jcelerier.name

On Wed, Jan 17, 2018 at 8:59 PM, Thiago Macieira 
wrote:

> On Wednesday, 17 January 2018 10:27:43 PST Uwe Rathmann wrote:
> > On Wed, 17 Jan 2018 09:34:54 -0800, Thiago Macieira wrote:
> > > It is just sharing code. The important difference is that both modules
> > > are developed at the same time and released at the same time, by the
> > > same team.
> >
> > Yes of course, but my project is developed at a different time, released
> > at a different time by a different team.
> >
> > That makes things more difficult, but the only one who can solve the
> > problem is the Qt development by making the necessary APIs official.
>
> True. Maybe it has never occurred to them that the API would be needed.
>
> You can help make it happen by adding this API yourself too.
>
> > > Import it into the Qt Project.
> >
> > What exactly is the Qt Project in your opinion ?
>
> In this case, a repository in qt-project.org, following Qt Project
> governance
> rules.
>
> --
> Thiago Macieira - thiago.macieira (AT) intel.com
>   Software Architect - Intel Open Source Technology Center
>
>
>
> ___
> Interest mailing list
> Interest@qt-project.org
> http://lists.qt-project.org/mailman/listinfo/interest
>
___
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest


Re: [Interest] Using private QtQuick APIs

2018-01-17 Thread Thiago Macieira
On Wednesday, 17 January 2018 10:27:43 PST Uwe Rathmann wrote:
> On Wed, 17 Jan 2018 09:34:54 -0800, Thiago Macieira wrote:
> > It is just sharing code. The important difference is that both modules
> > are developed at the same time and released at the same time, by the
> > same team.
> 
> Yes of course, but my project is developed at a different time, released
> at a different time by a different team.
> 
> That makes things more difficult, but the only one who can solve the
> problem is the Qt development by making the necessary APIs official.

True. Maybe it has never occurred to them that the API would be needed.

You can help make it happen by adding this API yourself too.

> > Import it into the Qt Project.
> 
> What exactly is the Qt Project in your opinion ?

In this case, a repository in qt-project.org, following Qt Project governance 
rules.

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center



___
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest


Re: [Interest] Using private QtQuick APIs

2018-01-17 Thread Konstantin Tokarev


17.01.2018, 21:30, "Uwe Rathmann" :
> On Wed, 17 Jan 2018 09:34:54 -0800, Thiago Macieira wrote:
>
>>  It is just sharing code. The important difference is that both modules
>>  are developed at the same time and released at the same time, by the
>>  same team.
>
> Yes of course, but my project is developed at a different time, released
> at a different time by a different team.
>
> That makes things more difficult, but the only one who can solve the
> problem is the Qt development by making the necessary APIs official.
>
> Please don't blame me for using the same level of APIs that are used by a
> module like QQuickControls 2, when I have to solve a similar type of
> problems.
>
>>  Import it into the Qt Project.
>
> What exactly is the Qt Project in your opinion ?

Qt Project is an organization described in

http://wiki.qt.io/The_Qt_Governance_Model

Procedure of requesting new repository is described in

http://wiki.qt.io/Requesting_New_Repositories

>
> Uwe
>
> ___
> Interest mailing list
> Interest@qt-project.org
> http://lists.qt-project.org/mailman/listinfo/interest

-- 
Regards,
Konstantin

___
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest


Re: [Interest] Using private QtQuick APIs

2018-01-17 Thread Uwe Rathmann
On Wed, 17 Jan 2018 09:34:54 -0800, Thiago Macieira wrote:

> It is just sharing code. The important difference is that both modules
> are developed at the same time and released at the same time, by the
> same team.

Yes of course, but my project is developed at a different time, released 
at a different time by a different team.

That makes things more difficult, but the only one who can solve the 
problem is the Qt development by making the necessary APIs official.

Please don't blame me for using the same level of APIs that are used by a 
module like QQuickControls 2, when I have to solve a similar type of 
problems.

> Import it into the Qt Project.

What exactly is the Qt Project in your opinion ?

Uwe


___
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest


Re: [Interest] Using private QtQuick APIs

2018-01-17 Thread Thiago Macieira
On Wednesday, 17 January 2018 03:24:26 PST Uwe Rathmann wrote:
> On Wed, 17 Jan 2018 23:19:57 +1300, Christian Gagneraud wrote:
> > Why do you need private headers in the first place?
> 
> For the same reason, why a module like QuickControls 2 is using private
> headers of Quick Core.

It is just sharing code. The important difference is that both modules are 
developed at the same time and released at the same time, by the same team. If 
they introduce a breaking change in one, they can fix the other. They also 
write one expecting only the other is using the private API, so they can 
optimise for it and assume no one else is trying to use it.

 That's not the case with your code.

> The qskinny project is about creating a C++ framework ( QML is only
> optional ) with an API in the spirit of Qt/Widgets, but using the modern
> graphic stack of Qt/Quick.

Import it into the Qt Project.

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center



___
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest


Re: [Interest] Using private QtQuick APIs

2018-01-17 Thread Uwe Rathmann
On Wed, 17 Jan 2018 23:19:57 +1300, Christian Gagneraud wrote:

> Why do you need private headers in the first place?

For the same reason, why a module like QuickControls 2 is using private 
headers of Quick Core. 

The qskinny project is about creating a C++ framework ( QML is only 
optional ) with an API in the spirit of Qt/Widgets, but using the modern 
graphic stack of Qt/Quick.

It needs way less memory and we don't have any startup performance issues 
- categories, where we failed with our previous version of the product 
using Qt/Quick in the standard way.

The code you can see on github is coming from a project in the automotive 
industry, that is currently under development.

Unfortunately I can only release a subset of our code under an Open 
Source License and I didn't have the time yet to pimp up the provided 
examples and skins to be more impressive.

Maybe once our product has been introduced to the public I can give a 
better demonstration of what we achieved with this alternative approach.

Uwe

___
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest


Re: [Interest] Using private QtQuick APIs

2018-01-17 Thread Christian Gagneraud
On 17 January 2018 at 21:32, Uwe Rathmann  wrote:
> On Wed, 17 Jan 2018 08:25:35 +, Mitch Curtis wrote:
>
> This how I do it ( see https://github.com/uwerat/qskinny ):
>
> QT += quick quick-private
> CONFIG += no_private_qt_headers_warning
>
> To get rid of warnings from Qt headers, when doing pedantic checks I also
> have the following lines:
>
> linux {
> QMAKE_CXXFLAGS += \
> -isystem $$[QT_INSTALL_HEADERS] \
> -isystem $$[QT_INSTALL_HEADERS]/QtCore \
> -isystem $$[QT_INSTALL_HEADERS]/QtGui \
> -isystem $$[QT_INSTALL_HEADERS]/QtGui/$$[QT_VERSION]/QtGui \
> -isystem $$[QT_INSTALL_HEADERS]/QtQuick \
> -isystem $$[QT_INSTALL_HEADERS]/QtQuick/$$[QT_VERSION]/QtQuick \
> -isystem $$[QT_INSTALL_HEADERS]/QtQml \
> -isystem $$[QT_INSTALL_HEADERS]/QtQml/$$[QT_VERSION]/QtQml
> }

Honestly, shame on you for doing that. You're depending on undefined
behaviour and hiding traces, what can go wrong?

Why do you need private headers in the first place?

Chris

>
> HTH,
> Uwe
>
>
>
> ___
> Interest mailing list
> Interest@qt-project.org
> http://lists.qt-project.org/mailman/listinfo/interest
___
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest


Re: [Interest] Using private QtQuick APIs

2018-01-17 Thread Uwe Rathmann
On Wed, 17 Jan 2018 08:25:35 +, Mitch Curtis wrote:

This how I do it ( see https://github.com/uwerat/qskinny ):

QT += quick quick-private
CONFIG += no_private_qt_headers_warning

To get rid of warnings from Qt headers, when doing pedantic checks I also 
have the following lines:

linux {
QMAKE_CXXFLAGS += \
-isystem $$[QT_INSTALL_HEADERS] \
-isystem $$[QT_INSTALL_HEADERS]/QtCore \
-isystem $$[QT_INSTALL_HEADERS]/QtGui \
-isystem $$[QT_INSTALL_HEADERS]/QtGui/$$[QT_VERSION]/QtGui \
-isystem $$[QT_INSTALL_HEADERS]/QtQuick \
-isystem $$[QT_INSTALL_HEADERS]/QtQuick/$$[QT_VERSION]/QtQuick \
-isystem $$[QT_INSTALL_HEADERS]/QtQml \
-isystem $$[QT_INSTALL_HEADERS]/QtQml/$$[QT_VERSION]/QtQml
}

HTH,
Uwe



___
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest


Re: [Interest] Using private QtQuick APIs

2018-01-17 Thread Mitch Curtis
In qtquickcontrols2.git [1] it’s linked to like this:

QT_PRIVATE += quick-private

I think QT += quick-private also works.. not sure what the difference is.

[1] 
http://code.qt.io/cgit/qt/qtquickcontrols2.git/tree/src/quicktemplates2/quicktemplates2.pro#n6

On 1/16/18, 4:43 PM, "Interest on behalf of Christopher Probst" 
 wrote:

Hi,


I am looking to use QtQuick private APIs. More specifically I would like to 
use the QQuickWindowPrivate class. Out of box, I will get either header files 
missing errors or linking errors once the header file errors are resolved.
 What is the standard Qt way to use the  QQuickWindowPrivate private classe?


Thanks,
Christopher



___
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest