On 04/18/2012 04:03 PM, ext Girish Ramakrishnan wrote:
> Hi,
> 
> On Wed, Apr 18, 2012 at 3:28 AM,  <lars.kn...@nokia.com> wrote:
>> Still the QPA headers are sort of a different beast from private headers.
>> While I don't want to promise anything on them yet (I think we might want
>> to keep SC and BC for them in patch level releases), they are supposed to
>> be used by third parties and supported. Our private headers are not
>> supported.
>>
> 
> Fair enough. Can we agree that:
> 1. _qpa suffix serves no purpose. qplatform prefix already says that
> it's qpa specific.
> 2. We don't want the 'we mean it' header in the qpa files since these
> files are meant for third party plugin authors.

Sounds good to me.

> Here's my opinion: Whatever 'new' convention we come up with will
> require educating the masses. The number of plugin authors can be
> counted, what 50? The number of Qt app developers are possibly in tens
> of thousands. We have to now teach these tens of thousands that
> whatever convention we come up with these qpa files is not for their
> use. I can count the number of plugin authors who work on QPA but not
> on Qt code itself to exactly two (that's the android and ios port, but
> for all I know they hack on Qt too).

Agreed, the ideal is to hide this from application developers.

> Since there's been no proposal, here's an alternate proposal:
> 1. We drop _qpa completely. So, it would become qplatformbackingstore.h
> 2. We teach syncqt that qplatform* is special and we move them all to
> a special qpa/ directory. So, instead of #include
> <QtGui/private/qplatformbackingstore.h>, it will be #include
> <QtGui/qpa/qplatformbackingstore.h>

Yeah, I can get behind using this type of include. A good reason why the
_qpa.h suffix should be removed, as
<QtGui/qpa/qplatformbackingstore_qpa.h> looks quite ugly.

> 3. We teach syncqt to create <QtGui/QPA> or #include <QPA> headers. (I
> think we need the latter since qpa headers are not restricted to gui)

Not sure about the latter, it would include widget headers even for a
platform plugin that might not want to link against widgets. Would
<QtGui/QPA> and <QtWidgets/QPA> as separate includes be an option?

> 4. We teach the world that qpa is not meant for apps.
> 5. Add a more benign header pointing out the fact that these files are
> qpa files.
> 6. Rename the handle() to platformXXX() since it's easy to educate
> that anything that has platform in it is out of reach of app
> developers.

Yep.

> What follows is an OT/rant and not relevant to the discussion as such:
> 'plugin' usually refers to things add capabilities to an existing
> thing. qpa plugins are not really plugins, they are the thing itself.
> Without qpa plugin, Qt doesn't do anything. That's not a plugin. It is
> well and truly a part of Qt. As opposed to codec plugins - Qt will run
> just fine without those codec plugins. I would argue that QPA
> "plugins" are very much implementation detail, they are not part of Qt
> API and we really do mean it that the headers can change any time
> (hence the 'we mean it' header). I fail to see why we want BC with QPA
> plugins. While this is a noble notion, I don't see any real benefit.
> QPA code are not plugins, it's Qt itself. The dynamic loading of QPA
> is an implementation detail/convenience.

Good points. BC might not be that important, not sure Jeremy's scenario
of binary only platform plugins will become an issue on platforms where
people build their own Qt.

--
Samuel
_______________________________________________
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development

Reply via email to