List Info

Thread: moc and Q_DECLARE_INTERFACE




moc and Q_DECLARE_INTERFACE
user name
2007-03-23 19:32:07
Hi,

before I try to reach the moc developers TT (btw,
whats the best way to
contact TT for stuff like this - I doubt qt-interest readers
will have a
good answer to this), I'd like to ask around here:

Anybody got an idea why the following macro is recognized by
moc and the
proper interface-stuff added to the .moc file, while
renaming the macro
into KDEV_DECLARE_EXTENSION_INTERFACE makes the whole thing
break
because moc doesn't include the needed stuff in the .moc
file:

#define Q_DECLARE_EXTENSION_INTERFACE(IFace, IId) 
const char * const IFace##_iid = IId; 
Q_DECLARE_INTERFACE(IFace, IId) 
template <> inline IFace *qt_extension<IFace
*>(QAbstractExtensionManager *manager, QObject *object)

{ 
QObject *extension = manager->extension(object,
Q_TYPEID(IFace)); 
return extension ? static_cast<IFace
*>(extension->qt_metacast(IFace##_iid)) :
static_cast<IFace *>(0);
}

I tried to read through mocs parsing code, but thats really
"strange"
stuff and I couldn't find out why it works for the Q_
version, but not
for the KDEV_ version. I don't see anything in moc's code
that looks
like its recognizing Q_DECLARE_EXTENSION_INTERFACE. I tried
to add some
-I switches to moc, but that doesn't help either.

Andreas

PS: KDEV_DECLARE_EXTENSION_INTERFACE looks like this
(without the
Q_DECLARE_INTERFACE code):
#define KDEV_DECLARE_EXTENSION_INTERFACE(IFace, IId) 
const char * const IFace##_iid = IId; 
template <> inline IFace *qt_extension<IFace *>(

QAbstractExtensionManager *manager, QObject *object) 
{ QObject *extension = manager->extension(object,
Q_TYPEID(IFace)); 
return extension ? static_cast<IFace
*>(extension->qt_metacast( 
IFace##_iid)) : static_cast<IFace *>(0); }

-- 
Today is National Existential Ennui Awareness Day.

_______________________________________________
KDevelop-devel mailing list
KDevelop-develkdevelop.org
https://barney.cs.uni-potsdam.de/mailman/listinf
o/kdevelop-devel

[1]

about | contact  Other archives ( Real Estate discussion Medical topics )