src/corelib/kernel/qmetaobject.cpp File Reference

#include "qmetaobject.h"
#include "qmetatype.h"
#include "qobject.h"
#include <qcoreapplication.h>
#include <qcoreevent.h>
#include <qdatastream.h>
#include <qstringlist.h>
#include <qthread.h>
#include <qvarlengtharray.h>
#include <qvariant.h>
#include <qhash.h>
#include <qdebug.h>
#include "private/qobject_p.h"
#include "private/qmetaobject_p.h"
#include <ctype.h>

Include dependency graph for qmetaobject.cpp:

Go to the source code of this file.

Classes

struct  QMetaObjectPrivate

Enumerations

enum  PropertyFlags
enum  MethodFlags

Functions

static const QMetaObjectPrivatepriv (const uint *data)
static const QMetaObjectQMetaObject_findMetaObject (const QMetaObject *self, const char *name)
static void qRemoveWhitespace (const char *s, char *d)
static char * qNormalizeType (char *d, int &templdepth, QByteArray &result)


Enumeration Type Documentation

enum MethodFlags

Definition at line 134 of file qmetaobject.cpp.

00134                   {
00135     AccessPrivate = 0x00,
00136     AccessProtected = 0x01,
00137     AccessPublic = 0x02,
00138     AccessMask = 0x03, //mask
00139 
00140     MethodMethod = 0x00,
00141     MethodSignal = 0x04,
00142     MethodSlot = 0x08,
00143     MethodTypeMask = 0x0c,
00144 
00145     MethodCompatibility = 0x10,
00146     MethodCloned = 0x20,
00147     MethodScriptable = 0x40
00148 };

enum PropertyFlags

Definition at line 114 of file qmetaobject.cpp.

00114                     {
00115     Invalid = 0x00000000,
00116     Readable = 0x00000001,
00117     Writable = 0x00000002,
00118     Resettable = 0x00000004,
00119     EnumOrFlag = 0x00000008,
00120     StdCppSet = 0x00000100,
00121 //    Override = 0x00000200,
00122     Designable = 0x00001000,
00123     ResolveDesignable = 0x00002000,
00124     Scriptable = 0x00004000,
00125     ResolveScriptable = 0x00008000,
00126     Stored = 0x00010000,
00127     ResolveStored = 0x00020000,
00128     Editable = 0x00040000,
00129     ResolveEditable = 0x00080000,
00130     User = 0x00100000,
00131     ResolveUser = 0x00200000
00132 };


Function Documentation

static const QMetaObjectPrivate* priv ( const uint *  data  )  [inline, static]

Definition at line 160 of file qmetaobject.cpp.

Referenced by QTextFrame::begin(), QTextCursor::charFormat(), QMetaObject::classInfo(), QMetaObject::classInfoCount(), QMetaObject::classInfoOffset(), QDBusMetaObject::dbusNameForMethod(), QWidgetPrivate::drawWidget(), QTextFrame::end(), QMetaObject::enumerator(), QMetaObject::enumeratorCount(), QMetaObject::enumeratorOffset(), getText(), QMetaProperty::hasStdCppSet(), QMetaObject::indexOfClassInfo(), QMetaObject::indexOfEnumerator(), QMetaObject::indexOfMethod(), QMetaObject::indexOfProperty(), QMetaObject::indexOfSignal(), QMetaObject::indexOfSlot(), QDBusMetaObject::inputSignatureForMethod(), QDBusMetaObject::inputTypesForMethod(), invalidateEngine(), QMetaProperty::isEnumType(), QMetaObject::method(), QMetaObject::methodCount(), QMetaObject::methodOffset(), QMetaProperty::name(), QTextFrame::iterator::operator++(), QTextFrame::iterator::operator--(), QDBusMetaObject::outputSignatureForMethod(), QDBusMetaObject::outputTypesForMethod(), prepareEngine(), prepareEngineForMatch(), QMetaObject::property(), QMetaObject::propertyCount(), QDBusMetaObject::propertyMetaType(), QMetaObject::propertyOffset(), QMimeSourceWrapper::QMimeSourceWrapper(), qt_init(), QMetaProperty::read(), setBlockCharFormat(), QMetaProperty::type(), QMetaProperty::typeName(), and QMetaProperty::write().

00161 { return reinterpret_cast<const QMetaObjectPrivate*>(data); }

static const QMetaObject* QMetaObject_findMetaObject ( const QMetaObject self,
const char *  name 
) [static]

Definition at line 468 of file qmetaobject.cpp.

References QMetaObject::d, QMetaObject::extradata, m, QMetaObject::stringdata, and QMetaObject::superdata.

Referenced by QMetaObject::property().

00469 {
00470     while (self) {
00471         if (strcmp(self->d.stringdata, name) == 0)
00472             return self;
00473         if (self->d.extradata) {
00474             const QMetaObject **e = self->d.extradata;
00475             while (*e) {
00476                 if (const QMetaObject *m =QMetaObject_findMetaObject((*e), name))
00477                     return m;
00478                 ++e;
00479             }
00480         }
00481         self = self->d.superdata;
00482     }
00483     return self;
00484 }

static char* qNormalizeType ( char *  d,
int &  templdepth,
QByteArray result 
) [static]

Definition at line 729 of file qmetaobject.cpp.

References normalizeTypeInternal(), and t.

Referenced by QMetaObject::normalizedSignature(), and QMetaObject::normalizedType().

00730 {
00731     const char *t = d;
00732     while (*d && (templdepth
00733                    || (*d != ',' && *d != ')'))) {
00734         if (*d == '<')
00735             ++templdepth;
00736         if (*d == '>')
00737             --templdepth;
00738         ++d;
00739     }
00740     if (strncmp("void", t, d - t) != 0)
00741         result += normalizeTypeInternal(t, d);
00742 
00743     return d;
00744 }

Here is the call graph for this function:

static void qRemoveWhitespace ( const char *  s,
char *  d 
) [static]

Definition at line 713 of file qmetaobject.cpp.

References is_ident_char(), and is_space().

Referenced by QMetaObject::normalizedSignature(), and QMetaObject::normalizedType().

00714 {
00715     char last = 0;
00716     while (*s && is_space(*s))
00717         s++;
00718     while (*s) {
00719         while (*s && !is_space(*s))
00720             last = *d++ = *s++;
00721         while (*s && is_space(*s))
00722             s++;
00723         if (*s && is_ident_char(*s) && is_ident_char(last))
00724             last = *d++ = ' ';
00725     }
00726     *d = '\0';
00727 }

Here is the call graph for this function:


Generated on Thu Mar 15 12:39:18 2007 for Qt 4.2 User's Guide by  doxygen 1.5.1