After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 735462 - There's no such thing as a private Q_PROPERTY
There's no such thing as a private Q_PROPERTY
Status: RESOLVED FIXED
Product: doxygen
Classification: Other
Component: general
1.8.8
Other Mac OS
: Normal normal
: ---
Assigned To: Dimitri van Heesch
Dimitri van Heesch
Depends on:
Blocks:
 
 
Reported: 2014-08-26 16:29 UTC by Kuba Ober
Modified: 2014-12-25 16:03 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Kuba Ober 2014-08-26 16:29:37 UTC
In Qt, the Q_PROPERTY macro is an empty macro that is used only by moc. The macro declares a *public* property. It doesn't matter whether it appears in the private, protected, or public sections of the class - the property is always public.

This is a regression from 1.8.7, most likely caused by the fix to bug 734245.

For example, taken from qobject.h from Qt 5:

class Q_CORE_EXPORT QObject
{
    Q_OBJECT
    Q_PROPERTY(QString objectName READ objectName WRITE setObjectName NOTIFY objectNameChanged)
    ...
};

This declares a *public* property, in spite of appearing in a private section of the class. Neither does this macro change the visibility of the succeeding members: its expansion is empty. It's not like the Q_OBJECT macro which *does* change the visibility of the succeeding members to private.
Comment 1 Dimitri van Heesch 2014-08-30 19:19:15 UTC
Confirmed. Should be fixed in the next GIT update.
Comment 2 Dimitri van Heesch 2014-12-25 16:03:40 UTC
This bug was previously marked ASSIGNED, which means it should be fixed in
doxygen version 1.8.9. Please verify if this is indeed the case. Reopen the
bug if you think it is not fixed and please include any additional information 
that you think can be relevant (preferrably in the form of a self-contained example).