On terça-feira, 5 de março de 2013 21.14.32, Immanuel Weber wrote:
> Mhh, then I must be doing something wrong, here is my code example:

> #ifndef TAGCLASS_H
> #define TAGCLASS_H
>
> #include <QObject>
> #define MYTAG // bla bla

This is the issue. In Qt 5, moc expands macros, so it must not see the
expansion.

Take qdbusmacros.h:

#ifndef Q_MOC_RUN
# define Q_NOREPLY
#endif


> That should, as far as I understand, print the name and the tag of each
> invokable function of TagClass, but on my system (Win7x64 + Qt5.0.1x86) no
> tag is being printed for testFunc() :(

Yup. Take this source code, for example (it doesn't #include anything, it's
just for testing):

#define Q_NOREPLY
class MyObject: public QObject {
Q_OBJECT
public slots:
    Q_NOREPLY void foo();
};

When processed with qdbuscpp2xml from Qt 4.8, it prints:
    <method name="foo">
      <annotation name="org.freedesktop.DBus.Method.NoReply" value="true"/>
    </method>

When processed with Qt 5, it prints:
    <method name="foo">
    </method>

It goes back to the original behaviour if I remove the #define line.
--
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center

Attachment: signature.asc
Description: This is a digitally signed message part.

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

Reply via email to