[Development] Qt Essentials

lars.knoll at nokia.com lars.knoll at nokia.com
Mon Aug 6 09:36:22 CEST 2012


Hi Aaron,

On Aug 6, 2012, at 8:31 AM, ext Aaron McCarthy <aaron.mccarthy at nokia.com> wrote:
>> as one of the first consequences of the situation in Brisbane, I'd like to
>> do some changes to our list of essential modules. You can see the current
>> list at http://qt-project.org/wiki/Qt-Essentials-Modules .
>> 
>> I intend to move both Qt 3D and Qt Location out of the essentials list and
>> make them add-ons for now. They are fully usable as-is today, but with the
>> situation down-under I am currently unsure how well we can maintain and
>> develop them going forward. If things turn out well, we can still move
>> them into the Essentials list in a 5.1 or 5.x release.
> 
> I agree that Qt Location should be dropped from the essentials list and become 
> an add-on.  It is an essential because location based services are one of the 
> hot things at the moment and it does not include any platform specific code 
> (excluding positioning, which is not critical to support most of Qt Locations 
> use cases).
> 
> My understanding is that Qt3D was pulled in as an essential because of Qt 
> Location.  I don't know if there were any other reasons for it to have 
> essential status.  I have no opinion on whether it should remain so.

The main reasons to include it where:

* Dependency for Location
* Cross platform code base
* In good shape when we went towards feature freeze
* Commitment from the time at the time

Given where we are currently, I think we're better served in keeping it as an add-on for now, giving us a bit more flexibility with the code base as we move forward.

> As an add-on should Qt Location be moved out of the global namespace and into 
> its own like other Qt add-ons?  I know former Qt4 modules are exempt from this 
> rule, but what about former Qt Mobility modules or former Qt 5 essential 
> modules :( ?

It would be good to wrap them in Qt3D and QtLocation namespaces. Esp. Qt3D has some class names that are otherwise bound to clash sooner or later.

The simple way to do this is to search/replace all QT_BEGIN/END_NAMESPACE macros with QT_BEGIN_NAMESPACE_QT3D and add the following lines in qt3dglobal.h:

#if defined(QT_NAMESPACE)
#define QT_BEGIN_NAMESPACE_QT3D namespace QT_NAMESPACE { namespace Qt3D {
#define QT_END_NAMESPACE_QT3D }}
#else
#define QT_BEGIN_NAMESPACE_QT3D namespace Qt3D {
#define QT_END_NAMESPACE_QT3D }
#endif

Similar for QtLocation.

Cheers,
Lars




More information about the Development mailing list