summaryrefslogtreecommitdiffstats
path: root/tqtinterface/qt4/src/kernel/tqmetaobject.cpp
diff options
context:
space:
mode:
authorMichele Calgaro <michele.calgaro@yahoo.it>2019-04-21 23:28:33 +0900
committerMichele Calgaro <michele.calgaro@yahoo.it>2019-04-21 23:28:33 +0900
commit1df632a0e6e550a5a100247c6b4713078e78f413 (patch)
treee8577c3d310285ebb4c8beea37998f408286bda3 /tqtinterface/qt4/src/kernel/tqmetaobject.cpp
parent012b00740f33c01949c88d7ea97e2dee81fabb41 (diff)
downloadexperimental-1df632a0e6e550a5a100247c6b4713078e78f413.tar.gz
experimental-1df632a0e6e550a5a100247c6b4713078e78f413.zip
Removed unnecessary and/or TDE-unrelated code.r14.0.7
Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it> Signed-off-by: Slávek Banko <slavek.banko@axis.cz>
Diffstat (limited to 'tqtinterface/qt4/src/kernel/tqmetaobject.cpp')
-rw-r--r--tqtinterface/qt4/src/kernel/tqmetaobject.cpp1792
1 files changed, 0 insertions, 1792 deletions
diff --git a/tqtinterface/qt4/src/kernel/tqmetaobject.cpp b/tqtinterface/qt4/src/kernel/tqmetaobject.cpp
deleted file mode 100644
index 0476c8b..0000000
--- a/tqtinterface/qt4/src/kernel/tqmetaobject.cpp
+++ /dev/null
@@ -1,1792 +0,0 @@
-/****************************************************************************
-**
-** Implementation of TQMetaObject class
-**
-** Created : 930419
-**
-** Copyright (C) 2010 Timothy Pearson and (C) 1992-2008 Trolltech ASA.
-**
-** This file is part of the kernel module of the TQt GUI Toolkit.
-**
-** This file may be used under the terms of the GNU General
-** Public License versions 2.0 or 3.0 as published by the Free
-** Software Foundation and appearing in the files LICENSE.GPL2
-** and LICENSE.GPL3 included in the packaging of this file.
-** Alternatively you may (at your option) use any later version
-** of the GNU General Public License if such license has been
-** publicly approved by Trolltech ASA (or its successors, if any)
-** and the KDE Free TQt Foundation.
-**
-** Please review the following information to ensure GNU General
-** Public Licensing requirements will be met:
-** http://trolltech.com/products/qt/licenses/licensing/opensource/.
-** If you are unsure which license is appropriate for your use, please
-** review the following information:
-** http://trolltech.com/products/qt/licenses/licensing/licensingoverview
-** or contact the sales department at sales@trolltech.com.
-**
-** This file may be used under the terms of the Q Public License as
-** defined by Trolltech ASA and appearing in the file LICENSE.TQPL
-** included in the packaging of this file. Licensees holding valid TQt
-** Commercial licenses may use this file in accordance with the TQt
-** Commercial License Agreement provided with the Software.
-**
-** This file is provided "AS IS" with NO WARRANTY OF ANY KIND,
-** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted
-** herein.
-**
-**********************************************************************/
-
-#include "tqmetaobject.h"
-#include "tqasciidict.h"
-
-#ifdef TQT_THREAD_SUPPORT
-#include <private/tqmutexpool_p.h>
-#endif // TQT_THREAD_SUPPORT
-
-#include <private/tqucom_p.h>
-
-#ifdef USE_QT4
-
-// #include <private/qt4_qmetaobject_p.h>
-
-/*!
- Returns a list with the names of all this class's properties.
-
- If \a super is TRUE, inherited properties are included.
-
- \sa property()
-*/
-TQStrList TQMetaObject::propertyNames( bool super ) const
-{
- TQStrList l( FALSE );
- int n = numProperties( super );
- for( int i = 0; i < n; ++i ) {
- if (property( i, super))
- l.append( property( i, super)->name() );
- else
- l.append( "[TQt TQMetaObject::propertyNames was unable to find the Qt4 name for this property]" );
- }
- return l;
-}
-
-const char * TQMetaData::name() const {
- return signature(); // Member name
-}
-
-const TQUMethod* TQMetaData::method() const {
- // FIXME
- // Verify that this routine accurately fills internal_method_information!
- printf("[WARNING] const TQUMethod* TQMetaData::method() partially implemented!\n\r");
-
- if (!internal_method_information) {
- internal_method_information = new TQUMethod;
- internal_method_information->parameters = 0;
- }
- internal_method_information->name = QMetaMethod::signature();
- internal_method_information->count = QMetaMethod::parameterNames().count();
- if (internal_method_information->parameters) {
- for (int i=0; i<internal_method_information->count; i++) {
- if (internal_method_information->parameters[i].type)
- delete internal_method_information->parameters[i].type;
- }
- delete [] internal_method_information->parameters;
- }
- internal_method_information->parameters = new TQUParameter[internal_method_information->count];
- for (int i=0; i<internal_method_information->count; i++) {
- const_cast<TQUParameter&>(internal_method_information->parameters[i]).name = QMetaMethod::parameterNames().at(i).data();
-// const_cast<TQUParameter&>(internal_method_information->parameters[i]).type = new TQUType;
-// const_cast<TQUParameter&>(internal_method_information->parameters[i]).type.desc = QMetaMethod::parameterTypes().at(i).data();
- const_cast<TQUParameter&>(internal_method_information->parameters[i]).typeExtra = 0;
- const_cast<TQUParameter&>(internal_method_information->parameters[i]).inOut = 3;
- }
- return internal_method_information;
-}
-
-TQMetaEnum::TQMetaEnum() : QMetaEnum() { internal_item_list = 0; }
-
-uint TQMetaEnum::count() const {
- return QMetaEnum::keyCount();
-}
-
-TQMetaEnum::Item* TQMetaEnum::items() const {
- if (internal_item_list)
- delete [] internal_item_list;
- int internal_item_count = count();
- internal_item_list = new Item[internal_item_count];
- for (int i=0; i<internal_item_count;i++) {
- internal_item_list[i].key = QMetaEnum::key(i);
- internal_item_list[i].value = QMetaEnum::value(i);
- }
- return internal_item_list;
-}
-
-TQMetaData::TQMetaData() : QMetaMethod() {}
-
-TQMetaProperty::TQMetaProperty() : QMetaProperty() {}
-
-/*!
- Returns the possible enumeration keys if this property is an
- enumeration type (or a set type).
-
- \sa isEnumType()
-*/
-TQStrList TQMetaProperty::enumKeys() const
-{
- TQStrList l( FALSE );
- QMetaEnum ed = enumerator();
- for( uint i = 0; i < ed.keyCount(); ++i ) {
- uint j = 0;
- while ( j < i && ed.value(j) != ed.value(i) )
- ++j;
- if ( i == j )
- l.append( ed.key(i) );
- }
- return l;
-}
-
-bool TQMetaProperty::isSetType() const {
- return isFlagType ();
-}
-
-int TQMetaProperty::keyToValue( const char* key ) const {
- return enumerator().keyToValue(key);
-}
-
-const char* TQMetaProperty::valueToKey( int value ) const {
- return enumerator().valueToKey(value);
-}
-
-int TQMetaProperty::keysToValue( const TQStrList& keys_in ) const {
- TQString tqs = "";
- TQStrList keys = keys_in;
- char *key;
- for ( key = keys.first(); key; key = keys.next() ) {
- tqs = tqs + "|" + key;
- }
- tqs.remove(0,1);
- return enumerator().keysToValue(TQCString(tqs));
-}
-
-TQStrList TQMetaProperty::valueToKeys( int value ) const {
- TQStrList keys;
- QByteArray qba = enumerator().valueToKeys(value);
- TQStringList keys_out = TQStringList::split("|", TQString(TQCString(qba)));
- for ( TQStringList::Iterator it = keys_out.begin(); it != keys_out.end(); ++it ) {
- keys.append(*it);
- }
- return keys;
-}
-
-bool TQMetaProperty::writable() const {
- return isWritable();
-}
-
-const char* TQMetaProperty::type() const {
- return QMetaProperty::typeName();
-}
-
-bool TQMetaProperty::designable( TQT_BASE_OBJECT_NAME *o ) const {
- return isDesignable(o);
-}
-
-bool TQMetaProperty::scriptable( TQT_BASE_OBJECT_NAME *o ) const {
- return isScriptable(o);
-}
-
-bool TQMetaProperty::stored( TQT_BASE_OBJECT_NAME *o ) const {
- return isStored(o);
-}
-
-/*!\internal
- */
-bool TQMetaProperty::stdSet() const
-{
-// if ( !testFlags( Override ) || testFlags( Writable ) )
-// return testFlags( StdSet );
-// const TQMetaObject* mo = (*meta);
-// const TQMetaProperty* parent = mo->resolveProperty( this );
-// return parent ? parent->stdSet() : FALSE;
-
- // [FIXME]
- printf("[WARNING] bool TQMetaProperty::stdSet() const unimplemented\n\r");
- return FALSE;
-}
-
-TQMetaObject::TQMetaObject( const char * const class_name, TQMetaObject *superclass, const TQMetaData * const slot_data, int n_Q_SLOTS, const TQMetaData * const signal_data, int n_Q_SIGNALS,
-#ifndef TQT_NO_PROPERTIES
- const TQMetaProperty *const prop_data, int n_props, const TQMetaEnum *const enum_data, int n_enums,
-#endif // TQT_NO_PROPERTIES
- const TQClassInfo *const class_info, int n_info ) : QMetaObject() {
- printf("[WARNING] TQMetaObject() constructor unimplemented\n\r"); // [FIXME]
-}
-
-#ifndef TQT_NO_PROPERTIES
-TQMetaObject::TQMetaObject( const char * const class_name, TQMetaObject *superclass, const TQMetaData * const slot_data, int n_Q_SLOTS, const TQMetaData * const signal_data, int n_Q_SIGNALS, const TQMetaProperty *const prop_data, int n_props, const TQMetaEnum *const enum_data, int n_enums, bool (*qt_static_property)(TQObject*, int, int, TQVariant*), const TQClassInfo *const class_info, int n_info ) : QMetaObject() {
- printf("[WARNING] TQMetaObject() constructor unimplemented\n\r"); // [FIXME]
-}
-#endif // TQT_NO_PROPERTIES
-
-TQStrList TQMetaObject::slotNames( bool super ) const {
- printf("[WARNING] TQStrList slotNames( bool super = FALSE ) unimplemented\n\r");
- return TQStrList();
-}
-
-TQStrList TQMetaObject::signalNames( bool super ) const {
- printf("[WARNING] TQStrList signalNames( bool super = FALSE ) const unimplemented\n\r");
- return TQStrList();
-}
-
-/*!
- Returns the number of Q_SLOTS for this class.
-
- If \a super is TRUE, inherited Q_SLOTS are included.
-
- \sa slotNames()
-*/
-int TQMetaObject::numSlots( bool super ) const // number of Q_SLOTS
-{
- int i;
- int n=0;
- for (i=0;i<methodCount();i++) {
- if (method(i).methodType() == QMetaMethod::Slot) {
- n++;
- }
- }
-
- if ( !super || !superClass() )
- return n;
- return n + tqsuperClass()->numSlots( super );
-}
-
-/*!
- Returns the number of items of class information available for
- this class.
-
- If \a super is TRUE, inherited class information is included.
-*/
-int TQMetaObject::numClassInfo( bool super ) const
-{
- return classInfoCount() + ((super && tqsuperClass())?tqsuperClass()->numClassInfo(super):0);
-}
-
-/*!
- Returns the number of Q_SIGNALS for this class.
-
- If \a super is TRUE, inherited Q_SIGNALS are included.
-
- \sa signalNames()
-*/
-int TQMetaObject::numSignals( bool super ) const // number of Q_SIGNALS
-{
- int i;
- int n=0;
- for (i=0;i<methodCount();i++) {
- if (method(i).methodType() == QMetaMethod::Signal) {
- n++;
- }
- }
-
- if ( !super || !superClass() )
- return n;
- return n + tqsuperClass()->numSignals( super );
-}
-
-#if 0
-/*! \internal
-
- Returns the meta data of the slot with the name \a n or 0 if no
- such slot exists.
-
- If \a super is TRUE, inherited slots are included.
-
- [FIXME]: Superclass handling is badly broken
- */
-const TQMetaData* TQMetaObject::slot( int index, bool super ) const
-{
- QMetaMethod mm;
- const QMetaMethod *mr;
- int idx = index - ( super ? methodOffset() : 0 );
-// if ( slotDict && idx >= 0 && idx < (int) slotDict->count() ) {
- if ( idx >= 0 && idx < numSlots(true) ) {
-// return slotData + idx;
- mm = method(idx);
- mr = &mm;
- return static_cast<const TQMetaData*>(mr);
- }
- if ( !super || !superClass() )
- return 0;
- return tqsuperClass()->slot( index, super );
-}
-
-/*! \internal
-
- Returns the meta data of the signal with the name \a n or 0 if no
- such signal exists.
-
- If \a super is TRUE, inherited signals are included.
-
- [FIXME]: Superclass handling is badly broken
- */
-const TQMetaData* TQMetaObject::signal( int index, bool super ) const
-{
- QMetaMethod mm;
- const QMetaMethod *mr;
- int idx = index - ( super ? methodOffset() : 0 );
-// if ( signalDict && idx >= 0 && idx < (int) signalDict->count() ) {
- if ( idx >= 0 && idx < numSignals(true) ) {
-// return signalData + idx;
- mm = method(idx);
- mr = &mm;
- return static_cast<const TQMetaData*>(mr);
- }
- if ( !super || !superClass() )
- return 0;
- return tqsuperClass()->signal( index, super );
-}
-#endif
-
-/*! \internal
-
- Returns the meta data of the slot with the name \a n or 0 if no
- such slot exists.
-
- If \a super is TRUE, inherited slots are included.
-
- [FIXME]: Superclass handling is badly broken
- */
-const TQMetaData* TQMetaObject::slot( int index, bool super ) const
-{
- QMetaMethod mm;
- const QMetaMethod *mr;
- int idx = index - ( super ? methodOffset() : 0 );
-// if ( slotDict && idx >= 0 && idx < (int) slotDict->count() ) {
- if ( idx >= 0 && idx < numSlots(true) ) {
-// return slotData + idx;
- mm = method(idx);
- mr = &mm;
- return static_cast<const TQMetaData*>(mr);
- }
- if ( !super || !superClass() )
- return 0;
- return tqsuperClass()->slot( index, super );
-}
-
-/*! \internal
-
- Returns the meta data of the signal with the name \a n or 0 if no
- such signal exists.
-
- If \a super is TRUE, inherited signals are included.
-
- [FIXME]: Superclass handling is badly broken
- */
-const TQMetaData* TQMetaObject::signal( int index, bool super ) const
-{
- QMetaMethod mm;
- const QMetaMethod *mr;
- int idx = index - ( super ? methodOffset() : 0 );
-// if ( signalDict && idx >= 0 && idx < (int) signalDict->count() ) {
- if ( idx >= 0 && idx < numSignals(true) ) {
-// return signalData + idx;
- mm = method(idx);
- mr = &mm;
- return static_cast<const TQMetaData*>(mr);
- }
- if ( !super || !superClass() )
- return 0;
- return tqsuperClass()->signal( index, super );
-}
-
-/*! \internal
- Returns the index of the slot with name \n or -1 if no such slot exists.
-
- If \a super is TRUE, inherited slots are included.
-
- [FIXME]: Superclass handling is badly broken
- */
-int TQMetaObject::findSlot( const char* n, bool super ) const
-{
-// TQStrList l( FALSE );
-// int m = methodCount();
-// for( int i = 0; i < m; ++i ) {
-// // if ( normalizedSignature(slot( i, super)->signature()) == QByteArray(n) ) {
-// if ( normalizedSignature(method(i).signature()) == QByteArray(n) ) {
-// if (method(i).methodType() == QMetaMethod::Slot) {
-// return i;
-// }
-// }
-// }
-// return -1;
-
- if (super) printf("[WARNING] In TQMetaObject::findSlot(), superclasses are not being searched for the slot\n\r");
- return indexOfSlot(normalizedSignature(n));
-}
-
-/*! \internal
- Returns the index of the signal with name \n or -1 if no such signal exists.
-
- If \a super is TRUE, inherited signals are included.
-
- [FIXME]: Superclass handling is badly broken
-*/
-int TQMetaObject::findSignal( const char* n, bool super ) const
-{
-// TQStrList l( FALSE );
-// int m = methodCount();
-// for( int i = 0; i < m; ++i ) {
-// // if ( normalizedSignature(signal( i, super)->signature()) == QByteArray(n) ) {
-// if ( normalizedSignature(method(i).signature()) == QByteArray(n) ) {
-// if (method(i).methodType() == QMetaMethod::Signal) {
-// return i;
-// }
-// }
-// }
-// return -1;
-
- if (super) printf("[WARNING] In TQMetaObject::findSignal(), superclasses are not being searched for the signal\n\r");
- return indexOfSignal(normalizedSignature(n));
-}
-
-#ifndef QT_NO_PROPERTIES
-
-/*!
- Returns the number of properties for this class.
-
- If \a super is TRUE, inherited properties are included.
-
- \sa propertyNames()
- */
-int TQMetaObject::numProperties( bool super ) const // number of properties
-{
- int i;
- int n=0;
- for (i=0;i<propertyCount();i++) {
-// if (property(i).propertyType() == QMetaProperty::Property) {
- n++;
-// }
- }
-
- if ( !super || !superClass() )
- return n;
- return n + tqsuperClass()->numProperties( super );
-}
-
-/*!
- Returns the property meta data for the property at index \a index
- or 0 if no such property exists.
-
- If \a super is TRUE, inherited properties are included.
-
- \sa propertyNames()
-
- [FIXME]: Superclass handling is badly broken
- */
-static QMetaProperty tqmo_propmethod_curprop;
-const TQMetaProperty* TQMetaObject::property( int index, bool super ) const
-{
- QMetaProperty mp;
- const QMetaProperty *pr;
- int idx = index - ( super ? propertyOffset() : 0 );
-// if ( d->propData && idx >= 0 && idx < (int)d->numPropData )
- if ( idx >= 0 && idx < numProperties(true) )
- tqmo_propmethod_curprop = QMetaObject::property(idx);
- return static_cast<const TQMetaProperty*>(&tqmo_propmethod_curprop);
- if ( !super || !superClass() )
- return 0;
- return tqsuperClass()->property( index, super );
-}
-
-int TQMetaObject::findProperty( const char *name, bool super ) const {
- TQ_UNUSED(name);
- return indexOfProperty(name);
-}
-
-TQMetaObject * TQMetaObject::tqsuperClass() const {
- return static_cast<TQMetaObject*>(const_cast<QMetaObject*>(superClass()));
-}
-
-const char * TQMetaObject::tqsuperClassName() const {
- return static_cast<TQMetaObject*>(const_cast<QMetaObject*>(superClass()))->className();
-}
-
-#endif // QT_NO_PROPERTIES
-
-/*!
- Returns the class information with index \a index or 0 if no such
- information exists.
-
- If \a super is TRUE, inherited class information is included.
-*/
-const TQClassInfo* TQMetaObject::classInfo( int index, bool super ) const
-{
- if ( index < 0 )
- return 0;
- if ( index < QMetaObject::classInfoCount() )
- return static_cast<TQClassInfo*>(&(QMetaObject::classInfo(index)));
- if ( !super || !superClass() )
- return 0;
- return tqsuperClass()->classInfo( index - QMetaObject::classInfoCount(), super );
-}
-
-/*!
- \overload
- Returns the class information with name \a name or 0 if no such
- information exists.
-
- If \a super is TRUE, inherited class information is included.
-*/
-const char* TQMetaObject::classInfo( const char* name, bool super ) const
-{
- for( int i = 0; i < QMetaObject::classInfoCount(); ++i ) {
- if ( qstrcmp( QMetaObject::classInfo(i).name(), name ) == 0 )
- return QMetaObject::classInfo(i).value();
- }
- if ( !super || !superClass() )
- return 0;
- return tqsuperClass()->classInfo( name, super );
-}
-
-/*!\internal
-
- */
-TQStrList TQMetaObject::enumeratorNames( bool super ) const
-{
- TQStrList l( FALSE );
-
- if ( tqsuperClass() && super ) {
- TQStrList sl = tqsuperClass()->enumeratorNames( super );
- for ( TQStrListIterator slit( sl ); slit.current(); ++slit )
- l.append( slit.current() );
- }
-
- for( int i = 0; i < QMetaObject::enumeratorCount(); ++i ) {
-// if ( d->enumData[i].items )
- if (QMetaObject::enumerator(i).name() != "")
- l.append( QMetaObject::enumerator(i).name() );
- }
-
- return l;
-}
-
-/*!\internal
- */
-const TQMetaEnum* TQMetaObject::enumerator( const char* name, bool super ) const
-{
- for( int i = 0; i < QMetaObject::enumeratorCount(); ++i )
- if ( qstrcmp( QMetaObject::enumerator(i).name(), name ) == 0 )
- return static_cast<TQMetaEnum*>(&(QMetaObject::enumerator(i)));
- if ( !super || !superClass() )
- return 0;
- return tqsuperClass()->enumerator( name, super );
-}
-
-#else // USE_QT4
-
-/*!
- \class TQMetaData tqmetaobject.h
- \reentrant
-
- \brief The TQMetaData class provides information about a member function that is known to the meta object system.
-
- \internal
-
- The struct consists of three members, \e name, \e method and \e access:
-
- \code
- const char *name; // - member name
- const TQUMethod* method; // - detailed method description
- enum Access { Private, Protected, Public };
- Access access; // - access permission
- \endcode
- */
-
-/*!
- \class TQClassInfo tqmetaobject.h
-
- \brief The TQClassInfo class provides a struct that stores some basic information about a single class.
-
- \internal
-
- The class information is a simple \e name - \e value pair:
-
- \code
- const char* name;
- const char* value;
- \endcode
-
- */
-
-
-/*!
- \class TQMetaObject tqmetaobject.h
- \brief The TQMetaObject class contains meta information about TQt objects.
-
- \ingroup objectmodel
-
- The Meta Object System in TQt is responsible for the Q_SIGNALS and
- Q_SLOTS inter-object communication mechanism, runtime type
- information and the property system. All meta information in TQt is
- kept in a single instance of TQMetaObject per class.
-
- This class is not normally required for application programming.
- But if you write meta applications, such as scripting engines or
- GUI builders, you might find these functions useful:
- \list
- \i className() to get the name of a class.
- \i superClassName() to get the name of the superclass.
- \i inherits(), the function called by TQObject::inherits().
- \i superClass() to access the superclass's meta object.
- \i numSlots(), numSignals(), slotNames(), and signalNames() to get
- information about a class's Q_SIGNALS and Q_SLOTS.
- \i property() and propertyNames() to obtain information about a
- class's properties.
- \endlist
-
- Classes may have a list of name-value pairs of class information.
- The number of pairs is returned by numClassInfo(), and values are
- returned by classInfo().
-
- \sa \link tqmoc.html tqmoc (Meta Object Compiler)\endlink
-
-*/
-
-
-/*****************************************************************************
- The private object.
- *****************************************************************************/
-
-// extra flags from tqmoc.y
-enum Flags {
- Invalid = 0x00000000,
- Readable = 0x00000001,
- Writable = 0x00000002,
- EnumOrSet = 0x00000004,
- UnresolvedEnum = 0x00000008,
- StdSet = 0x00000100,
- Override = 0x00000200,
- NotDesignable = 0x00001000,
- DesignableOverride = 0x00002000,
- NotScriptable = 0x00004000,
- ScriptableOverride = 0x00008000,
- NotStored = 0x00010000,
- StoredOverride = 0x00020000
-};
-
-static TQAsciiDict<void> *qt_metaobjects = 0;
-static int qt_metaobjects_count = 0;
-
-class TQMetaObjectPrivate
-{
-public:
- TQMetaObjectPrivate() :
-#ifndef TQT_NO_PROPERTIES
- enumData(0), numEnumData(0),
- propData(0),numPropData(0),
- qt_static_property(0),
-#endif
- classInfo(0), numClassInfo(0) {}
-#ifndef TQT_NO_PROPERTIES
- const TQMetaEnum *enumData;
- int numEnumData;
- const TQMetaProperty *propData;
- int numPropData;
- bool (*qt_static_property)(TQObject*, int, int, TQVariant*);
-#endif
- const TQClassInfo *classInfo;
- int numClassInfo;
-};
-
-
-/*****************************************************************************
- Internal dictionary for fast access to class members
- *****************************************************************************/
-
-#if defined(TQ_CANNOT_DELETE_CONSTANT)
-typedef TQMetaData TQConstMetaData;
-#else
-typedef const TQMetaData TQConstMetaData;
-#endif
-
-class TQ_EXPORT TQMemberDict : public TQAsciiDict<TQConstMetaData>
-{
-public:
- TQMemberDict( int size = 17, bool cs = TRUE, bool ck = TRUE ) :
- TQAsciiDict<TQConstMetaData>(size,cs,ck) {}
- TQMemberDict( const TQMemberDict &dict ) : TQAsciiDict<TQConstMetaData>(dict) {}
- ~TQMemberDict() { clear(); }
- TQMemberDict &operator=(const TQMemberDict &dict)
- { return (TQMemberDict&)TQAsciiDict<TQConstMetaData>::operator=(dict); }
-};
-
-
-/*
- Calculate optimal dictionary size for n entries using prime numbers,
- and assuming there are no more than 40 entries.
-*/
-
-static int optDictSize( int n )
-{
- if ( n < 6 )
- n = 5;
- else if ( n < 10 )
- n = 11;
- else if ( n < 14 )
- n = 17;
- else
- n = 23;
- return n;
-}
-
-
-/*****************************************************************************
- TQMetaObject member functions
- *****************************************************************************/
-
-/*!\internal
- */
-TQMetaObject::TQMetaObject( const char *const class_name, TQMetaObject *super_class,
- const TQMetaData *const slot_data, int n_Q_SLOTS,
- const TQMetaData *const signal_data, int n_Q_SIGNALS,
-#ifndef TQT_NO_PROPERTIES
- const TQMetaProperty *const prop_data, int n_props,
- const TQMetaEnum *const enum_data, int n_enums,
-#endif
- const TQClassInfo *const class_info, int n_info )
-{
- classname = class_name; // set meta data
- superclass = super_class;
- superclassname = superclass ? superclass->className() : 0;
- slotDict = init( slotData = slot_data, n_Q_SLOTS );
- signalDict = init( signalData = signal_data, n_Q_SIGNALS );
-
- d = new TQMetaObjectPrivate;
- reserved = 0;
-
-#ifndef TQT_NO_PROPERTIES
- d->propData = prop_data;
- d->numPropData = n_props;
- d->enumData = enum_data;
- d->numEnumData = n_enums;
-#endif
- d->classInfo = class_info;
- d->numClassInfo = n_info;
-
- signaloffset = superclass ? ( superclass->signalOffset() + superclass->numSignals() ) : 0;
- slotoffset = superclass ? ( superclass->slotOffset() + superclass->numSlots() ) : 0;
-#ifndef TQT_NO_PROPERTIES
- propertyoffset = superclass ? ( superclass->propertyOffset() + superclass->numProperties() ) : 0;
-#endif
-}
-
-#ifndef TQT_NO_PROPERTIES
-/*!\internal
- */
-TQMetaObject::TQMetaObject( const char *const class_name, TQMetaObject *super_class,
- const TQMetaData *const slot_data, int n_Q_SLOTS,
- const TQMetaData *const signal_data, int n_Q_SIGNALS,
- const TQMetaProperty *const prop_data, int n_props,
- const TQMetaEnum *const enum_data, int n_enums,
- bool (*qt_static_property)(TQObject*, int, int, TQVariant*),
- const TQClassInfo *const class_info, int n_info )
-{
- classname = class_name; // set meta data
- superclass = super_class;
- superclassname = superclass ? superclass->className() : 0;
- slotDict = init( slotData = slot_data, n_Q_SLOTS );
- signalDict = init( signalData = signal_data, n_Q_SIGNALS );
-
- d = new TQMetaObjectPrivate;
- reserved = 0;
-
- d->propData = prop_data;
- d->numPropData = n_props;
- d->enumData = enum_data;
- d->numEnumData = n_enums;
- d->qt_static_property = qt_static_property;
- d->classInfo = class_info;
- d->numClassInfo = n_info;
-
- signaloffset = superclass ? ( superclass->signalOffset() + superclass->numSignals() ) : 0;
- slotoffset = superclass ? ( superclass->slotOffset() + superclass->numSlots() ) : 0;
- propertyoffset = superclass ? ( superclass->propertyOffset() + superclass->numProperties() ) : 0;
-}
-#endif
-
-/*!\internal
- */
-TQMetaObject::~TQMetaObject()
-{
- delete slotDict; // delete dicts
- delete signalDict;
- delete d;
-#ifdef TQT_THREAD_SUPPORT
- TQMutexLocker( tqt_global_mutexpool ?
- tqt_global_mutexpool->get( &qt_metaobjects ) : 0 );
-#endif // TQT_THREAD_SUPPORT
- if ( qt_metaobjects ) {
- qt_metaobjects->remove( classname );
- if ( qt_metaobjects->isEmpty() ) {
- delete qt_metaobjects;
- qt_metaobjects = 0;
- }
- }
-
- // delete reserved; // Unused void*
-}
-
-
-/*!
- \fn const char *TQMetaObject::className() const
-
- Returns the class name.
-
- \sa TQObject::className(), superClassName()
-*/
-
-/*!
- \fn const char *TQMetaObject::superClassName() const
-
- Returns the class name of the superclass or 0 if there is no
- superclass in the TQObject hierachy.
-
- \sa className()
-*/
-
-/*!
- \fn TQMetaObject *TQMetaObject::superClass() const
-
- Returns the meta object of the super class or 0 if there is no
- such object.
-*/
-
-/*!
- Returns the number of Q_SLOTS for this class.
-
- If \a super is TRUE, inherited Q_SLOTS are included.
-
- \sa slotNames()
-*/
-int TQMetaObject::numSlots( bool super ) const // number of Q_SLOTS
-{
- int n = slotDict ? slotDict->count() : 0;
- if ( !super || !superclass )
- return n;
- return n + superclass->numSlots( super );
-}
-
-/*!
- Returns the number of Q_SIGNALS for this class.
-
- If \a super is TRUE, inherited Q_SIGNALS are included.
-
- \sa signalNames()
-*/
-int TQMetaObject::numSignals( bool super ) const // number of Q_SIGNALS
-{
- int n = signalDict ? signalDict->count() : 0;
- if ( !super || !superclass )
- return n;
- return n + superclass->numSignals( super );
-}
-
-
-/*! \internal
-
- Returns the meta data of the slot with the name \a n or 0 if no
- such slot exists.
-
- If \a super is TRUE, inherited Q_SLOTS are included.
- */
-const TQMetaData* TQMetaObject::slot( int index, bool super ) const
-{
- int idx = index - ( super ? slotOffset() : 0 );
- if ( slotDict && idx >= 0 && idx < (int) slotDict->count() ) {
- return slotData + idx;
- }
- if ( !super || !superclass )
- return 0;
- return superclass->slot( index, super );
-}
-
-/*! \internal
-
- Returns the meta data of the signal with the name \a n or 0 if no
- such signal exists.
-
- If \a super is TRUE, inherited Q_SIGNALS are included.
- */
-const TQMetaData* TQMetaObject::signal( int index, bool super ) const
-{
- int idx = index - ( super ? signalOffset() : 0 );
- if ( signalDict && idx >= 0 && idx < (int) signalDict->count() ) {
- return signalData + idx;
- }
- if ( !super || !superclass )
- return 0;
- return superclass->signal( index, super );
-}
-
-
-/*!
- \fn int TQMetaObject::signalOffset() const
-
- \internal
-
- Returns the signal offset for this metaobject.
-
-*/
-
-/*!
- \fn int TQMetaObject::propertyOffset() const
-
- \internal
-
- Returns the property offset for this metaobject.
-
-*/
-
-/*! \internal
- Returns the index of the signal with name \n or -1 if no such signal exists.
-
- If \a super is TRUE, inherited Q_SIGNALS are included.
-*/
-int TQMetaObject::findSignal( const char* n, bool super ) const
-{
- const TQMetaObject *mo = this;
- int offset = -1;
-
- do {
- const TQMetaData *md = mo->signalDict ? mo->signalDict->find( n ) : 0;
- if ( md ) {
-#if defined(TQT_CHECK_RANGE)
- if ( offset != -1 ) {
- qWarning( "TQMetaObject::findSignal:%s: Conflict with %s::%s",
- className(), mo->className(), n );
- return offset;
- }
-#endif
- offset = mo->signalOffset() + ( md - mo->signalData );
-#if !defined(TQT_CHECK_RANGE)
- return offset;
-#endif
- }
- } while ( super && (mo = mo->superclass) );
-
- return offset;
-}
-
-/*!
- \fn int TQMetaObject::slotOffset() const
-
- \internal
-
- Returns the slot offset for this metaobject.
-
-*/
-
-/*! \internal
- Returns the index of the slot with name \n or -1 if no such slot exists.
-
- If \a super is TRUE, inherited Q_SLOTS are included.
- */
-int TQMetaObject::findSlot( const char* n, bool super ) const
-{
- const TQMetaData *md = slotDict ? slotDict->find( n ) : 0;
- if ( md )
- return slotOffset() + ( md - slotData );
- if ( !super || !superclass)
- return -1;
- return superclass->findSlot( n, super );
-}
-
-/*!\internal
- */
-TQMetaObject *TQMetaObject::new_metaobject( const char *classname,
- TQMetaObject *superclassobject,
- const TQMetaData * const slot_data, int n_Q_SLOTS,
- const TQMetaData * const signal_data, int n_Q_SIGNALS,
-#ifndef TQT_NO_PROPERTIES
- const TQMetaProperty * const prop_data, int n_props,
- const TQMetaEnum * const enum_data, int n_enums,
-#endif
- const TQClassInfo * const class_info, int n_info )
-{
- return new TQMetaObject( classname, superclassobject, slot_data, n_Q_SLOTS,
- signal_data, n_Q_SIGNALS,
-#ifndef TQT_NO_PROPERTIES
- prop_data, n_props,
- enum_data, n_enums,
-#endif
- class_info, n_info );
-}
-
-#ifndef TQT_NO_PROPERTIES
-/*!\internal
- */
-TQMetaObject *TQMetaObject::new_metaobject( const char *classname,
- TQMetaObject *superclassobject,
- const TQMetaData * const slot_data, int n_Q_SLOTS,
- const TQMetaData * const signal_data, int n_Q_SIGNALS,
- const TQMetaProperty * const prop_data, int n_props,
- const TQMetaEnum * const enum_data, int n_enums,
- bool (*qt_static_property)(TQObject*, int, int, TQVariant*),
- const TQClassInfo * const class_info, int n_info )
-{
- return new TQMetaObject( classname, superclassobject, slot_data, n_Q_SLOTS,
- signal_data, n_Q_SIGNALS,
- prop_data, n_props,
- enum_data, n_enums,
- qt_static_property,
- class_info, n_info );
-}
-#endif
-
-/*!\internal
- */
-TQMemberDict *TQMetaObject::init( const TQMetaData * data, int n )
-{
- if ( n == 0 ) // nothing, then make no dict
- return 0;
- TQMemberDict *dict = new TQMemberDict( optDictSize(n), TRUE, FALSE );
- TQ_CHECK_PTR( dict );
- while ( n-- ) { // put all members into dict
- dict->insert( data->name, data );
- data++;
- }
- return dict;
-}
-
-/*!
- Returns the number of items of class information available for
- this class.
-
- If \a super is TRUE, inherited class information is included.
-*/
-int TQMetaObject::numClassInfo( bool super ) const
-{
- return d->numClassInfo + ((super && superclass)?superclass->numClassInfo(super):0);
-}
-
-/*!
- Returns the class information with index \a index or 0 if no such
- information exists.
-
- If \a super is TRUE, inherited class information is included.
-*/
-const TQClassInfo* TQMetaObject::classInfo( int index, bool super ) const
-{
- if ( index < 0 )
- return 0;
- if ( index < d->numClassInfo )
- return &(d->classInfo[ index ]);
- if ( !super || !superclass )
- return 0;
- return superclass->classInfo( index - d->numClassInfo, super );
-}
-
-/*!
- \overload
- Returns the class information with name \a name or 0 if no such
- information exists.
-
- If \a super is TRUE, inherited class information is included.
-*/
-const char* TQMetaObject::classInfo( const char* name, bool super ) const
-{
- for( int i = 0; i < d->numClassInfo; ++i ) {
- if ( qstrcmp( d->classInfo[i].name, name ) == 0 )
- return d->classInfo[i].value;
- }
- if ( !super || !superclass )
- return 0;
- return superclass->classInfo( name, super );
-}
-
-#ifndef TQT_NO_PROPERTIES
-
-/*!
- Returns the number of properties for this class.
-
- If \a super is TRUE, inherited properties are included.
-
- \sa propertyNames()
- */
-int TQMetaObject::numProperties( bool super ) const // number of Q_SIGNALS
-{
- int n = d->numPropData;
- if ( !super || !superclass )
- return n;
- return n + superclass->numProperties( super );
-}
-
-/*!
- Returns the property meta data for the property at index \a index
- or 0 if no such property exists.
-
- If \a super is TRUE, inherited properties are included.
-
- \sa propertyNames()
- */
-const TQMetaProperty* TQMetaObject::property( int index, bool super ) const
-{
- int idx = index - ( super ? propertyOffset() : 0 );
- if ( d->propData && idx >= 0 && idx < (int)d->numPropData )
- return d->propData + idx;
- if ( !super || !superclass )
- return 0;
- return superclass->property( index, super );
-}
-
-
-/*!
- Returns the index for the property with name \a name or -1 if no
- such property exists.
-
- If \a super is TRUE, inherited properties are included.
-
- \sa property(), propertyNames()
-*/
-
-int TQMetaObject::findProperty( const char *name, bool super ) const
-{
- for( int i = 0; i < d->numPropData; ++i ) {
- if ( d->propData[i].isValid() && qstrcmp( d->propData[i].name(), name ) == 0 ) {
- return ( super ? propertyOffset() : 0 ) + i;
- }
- }
- if ( !super || !superclass )
- return -1;
- return superclass->findProperty( name, super );
-}
-
-/*! \internal
-
- Returns the index for the property \a prop
- or -1 if the property can not be found.
-
- If \a super is TRUE, inherited properties are included.
-
- \sa property(), propertyNames()
-*/
-
-int TQMetaObject::indexOfProperty( const TQMetaProperty* prop, bool super ) const
-{
- if ( *prop->meta == this )
- return ( super ? propertyOffset() : 0 ) + ( prop - d->propData);
- if ( !super || !superclass )
- return -1;
- return superclass->indexOfProperty( prop, super );
-}
-
-/*!\internal
-
- Returns the parent property of property \a p or 0, if the property
- cannot be resolved.
-
- \a p has to be contained in this meta object
-*/
-
-const TQMetaProperty* TQMetaObject::resolveProperty( const TQMetaProperty* p ) const
-{
- if ( !superclass )
- return 0;
- return superclass->property( superclass->findProperty( p->n, TRUE ), TRUE );
-}
-
-/*!\internal
-
- \overload
-
- The version of resolveProperty that is used by tqmoc generated code
-*/
-
-int TQMetaObject::resolveProperty( int index ) const
-{
- if ( !superclass )
- return -1;
- const TQMetaProperty* p = d->propData + ( index - propertyOffset() );
- return superclass->findProperty( p->n, TRUE );
-}
-
-
-/*!
- Returns a list with the names of all this class's properties.
-
- If \a super is TRUE, inherited properties are included.
-
- \sa property()
-*/
-TQStrList TQMetaObject::propertyNames( bool super ) const
-{
- TQStrList l( FALSE );
-
- if ( superclass && super ) {
- TQStrList sl = superclass->propertyNames( super );
- for ( TQStrListIterator slit( sl ); slit.current(); ++slit )
- l.append( slit.current() );
- }
-
- for( int i = 0; i < d->numPropData; ++i ) {
- if ( d->propData[i].isValid() )
- l.append( d->propData[i].name() );
- }
-
- return l;
-}
-
-/*!
- Returns a list with the names of all this class's Q_SIGNALS.
-
- If \a super is TRUE, inherited Q_SIGNALS are included.
-*/
-TQStrList TQMetaObject::signalNames( bool super ) const
-{
- TQStrList l( FALSE );
- int n = numSignals( super );
- for( int i = 0; i < n; ++i ) {
- l.append( signal(i, super)->name );
- }
- return l;
-}
-
-/*!
- Returns a list with the names of all this class's Q_SLOTS.
-
- If \a super is TRUE, inherited Q_SLOTS are included.
-
- \sa numSlots()
-*/
-TQStrList TQMetaObject::slotNames( bool super ) const
-{
- TQStrList l( FALSE );
- int n = numSlots( super );
- for( int i = 0; i < n; ++i )
- l.append( slot( i, super)->name );
- return l;
-}
-
-/*!\internal
-
- */
-
-int TQMetaObject::numEnumerators( bool super ) const
-{
- int n = 0;
- if ( superclass && super )
- n += superclass->numEnumerators( super );
- return n + d->numEnumData;
-}
-
-/*!\internal
-
- */
-TQStrList TQMetaObject::enumeratorNames( bool super ) const
-{
- TQStrList l( FALSE );
-
- if ( superclass && super ) {
- TQStrList sl = superclass->enumeratorNames( super );
- for ( TQStrListIterator slit( sl ); slit.current(); ++slit )
- l.append( slit.current() );
- }
-
- for( int i = 0; i < d->numEnumData; ++i ) {
- if ( d->enumData[i].items )
- l.append( d->enumData[i].name );
- }
-
- return l;
-}
-
-/*!\internal
- */
-const TQMetaEnum* TQMetaObject::enumerator( const char* name, bool super ) const
-{
- for( int i = 0; i < d->numEnumData; ++i )
- if ( qstrcmp( d->enumData[i].name, name ) == 0 )
- return &(d->enumData[i]);
- if ( !super || !superclass )
- return 0;
- return superclass->enumerator( name, super );
-}
-
-#endif // TQT_NO_PROPERTIES
-
-
-/*!
- Returns TRUE if this class inherits \a clname within the meta
- object inheritance chain; otherwise returns FALSE.
-
- (A class is considered to inherit itself.)
-*/
-bool TQMetaObject::inherits( const char* clname ) const
-{
- const TQMetaObject *meta = this;
- while ( meta ) {
- if ( qstrcmp(clname, meta->className()) == 0 )
- return TRUE;
- meta = meta->superclass;
- }
- return FALSE;
-}
-
-/*! \internal */
-
-TQMetaObject *TQMetaObject::tqmetaObject( const char *class_name )
-{
- if ( !qt_metaobjects )
- return 0;
-#ifdef TQT_THREAD_SUPPORT
- TQMutexLocker( tqt_global_mutexpool ?
- tqt_global_mutexpool->get( &qt_metaobjects ) : 0 );
-#endif // TQT_THREAD_SUPPORT
- TQtStaticMetaObjectFunction func = (TQtStaticMetaObjectFunction)qt_metaobjects->find( class_name );
- if ( func )
- return func();
- return 0;
-}
-
-/*! \internal */
-bool TQMetaObject::hasMetaObject( const char *class_name )
-{
- if ( !qt_metaobjects )
- return FALSE;
-#ifdef TQT_THREAD_SUPPORT
- TQMutexLocker( tqt_global_mutexpool ?
- tqt_global_mutexpool->get( &qt_metaobjects ) : 0 );
-#endif // TQT_THREAD_SUPPORT
- return !!qt_metaobjects->find( class_name );
-}
-
-#ifndef TQT_NO_PROPERTIES
-/*! \internal
-
-### this functions will go away. It exists purely for the sake of meta
-### object code generated with TQt 3.1.0
-*/
-bool TQMetaObject::qt_static_property( TQObject* o, int id, int f, TQVariant* v)
-{
- if ( d->qt_static_property )
- return d->qt_static_property( o, id, f, v );
- else if ( o ) // compatibility
- return o->qt_property( id, f, v );
- else if ( superclass )
- return superclass->qt_static_property( o, id, f, v );
- switch ( f ) {
- case 3: case 4: case 5:
- return TRUE;
- default:
- return FALSE;
- }
-}
-
-
-/*!
- \class TQMetaProperty tqmetaobject.h
-
- \brief The TQMetaProperty class stores meta data about a property.
-
- \ingroup objectmodel
-
- Property meta data includes type(), name(), and whether a property
- is writable(), designable() and stored().
-
- The functions isSetType(), isEnumType() and enumKeys() provide
- further information about a property's type. The conversion
- functions keyToValue(), valueToKey(), keysToValue() and
- valueToKeys() allow conversion between the integer representation
- of an enumeration or set value and its literal representation.
-
- Actual property values are set and received through TQObject's set
- and get functions. See TQObject::setProperty() and
- TQObject::property() for details.
-
- You receive meta property data through an object's meta object.
- See TQMetaObject::property() and TQMetaObject::propertyNames() for
- details.
-*/
-
-/*!
- Returns the possible enumeration keys if this property is an
- enumeration type (or a set type).
-
- \sa isEnumType()
-*/
-TQStrList TQMetaProperty::enumKeys() const
-{
- TQStrList l( FALSE );
- const TQMetaEnum* ed = enumData;
- if ( !enumData && meta )
- ed = (*meta)->enumerator( t, TRUE );
- if ( !ed )
- return l;
- if ( ed != 0 ) {
- for( uint i = 0; i < ed->count; ++i ) {
- uint j = 0;
- while ( j < i &&
- ed->items[j].value != ed->items[i].value )
- ++j;
- if ( i == j )
- l.append( ed->items[i].key );
- }
- }
- return l;
-}
-
-/*!
- Converts the enumeration key \a key to its integer value.
-
- For set types, use keysToValue().
-
- \sa valueToKey(), isSetType(), keysToValue()
-*/
-int TQMetaProperty::keyToValue( const char* key ) const
-{
- const TQMetaEnum* ed = enumData;
- if ( !enumData && meta )
- ed = (*meta)->enumerator( t, TRUE );
- if ( !ed )
- return -1;
- for ( uint i = 0; i < ed->count; ++i ) {
- if ( !qstrcmp( key, ed->items[i].key) )
- return ed->items[i].value;
- }
- return -1;
-}
-
-/*!
- Converts the enumeration value \a value to its literal key.
-
- For set types, use valueToKeys().
-
- \sa valueToKey(), isSetType(), valueToKeys()
-*/
-const char* TQMetaProperty::valueToKey( int value ) const
-{
- const TQMetaEnum* ed = enumData;
- if ( !enumData && meta )
- ed = (*meta)->enumerator( t, TRUE );
- if ( !ed )
- return 0;
- for ( uint i = 0; i < ed->count; ++i ) {
- if ( value == ed->items[i].value )
- return ed->items[i].key ;
- }
- return 0;
-}
-
-/*!
- Converts the list of keys \a keys to their combined (OR-ed)
- integer value.
-
- \sa isSetType(), valueToKey(), keysToValue()
-*/
-int TQMetaProperty::keysToValue( const TQStrList& keys ) const
-{
- const TQMetaEnum* ed = enumData;
- if ( !enumData && meta )
- ed = (*meta)->enumerator( t, TRUE );
- if ( !ed )
- return -1;
- int value = 0;
- for ( TQStrListIterator it( keys ); it.current(); ++it ) {
- uint i;
- for( i = ed->count; i > 0; --i ) {
- if ( !qstrcmp( it.current(), ed->items[i-1].key) ) {
- value |= ed->items[i-1].value;
- break;
- }
- }
- if ( i == 0 )
- value |= -1;
- }
- return value;
-}
-
-/*!
- Converts the set value \a value to a list of keys.
-
- \sa isSetType(), valueToKey(), valueToKeys()
-*/
-TQStrList TQMetaProperty::valueToKeys( int value ) const
-{
- TQStrList keys;
- const TQMetaEnum* ed = enumData;
- if ( !enumData && meta )
- ed = (*meta)->enumerator( t, TRUE );
- if ( !ed )
- return keys;
-
- int v = value;
- for( uint i = ed->count; i > 0; --i ) {
- int k = ed->items[i-1].value;
- if ( ( k != 0 && (v & k) == k ) || ( k == value) ) {
- v = v & ~k;
- keys.append( ed->items[i-1].key );
- }
- }
- return keys;
-}
-
-bool TQMetaProperty::writable() const
-{
- if ( !testFlags( Override ) || testFlags( Writable ) )
- return testFlags( Writable );
- const TQMetaObject* mo = (*meta);
- const TQMetaProperty* parent = mo->resolveProperty( this );
- return parent ? parent->writable() : FALSE;
-}
-
-/*!\internal
- */
-bool TQMetaProperty::stdSet() const
-{
- if ( !testFlags( Override ) || testFlags( Writable ) )
- return testFlags( StdSet );
- const TQMetaObject* mo = (*meta);
- const TQMetaProperty* parent = mo->resolveProperty( this );
- return parent ? parent->stdSet() : FALSE;
-}
-
-/*!\internal
- */
-int TQMetaProperty::id() const
-{
- return _id < 0 ? (*meta)->indexOfProperty( this, TRUE ) : _id;
-}
-
-/*! \internal
-*/
-void TQMetaProperty::clear()
-{
- t = n = 0;
- meta = 0;
- enumData = 0;
- _id = -1;
- flags = 0;
-}
-
-bool TQMetaProperty::isValid() const
-{
- if ( testFlags( UnresolvedEnum ) ) {
- if ( !enumData && (!meta || !(*meta)->enumerator( t, TRUE ) ) )
- return FALSE;
- }
- if ( !testFlags( Override ) || testFlags( Readable ) )
- return testFlags( Readable );
- const TQMetaObject* mo = (*meta);
- const TQMetaProperty* parent = mo->resolveProperty( this );
- return parent ? parent->isValid() : FALSE;
-}
-
-bool TQMetaProperty::isSetType() const
-{
- const TQMetaEnum* ed = enumData;
- if ( !enumData && meta )
- ed = (*meta)->enumerator( t, TRUE );
- return ( ed != 0 && ed->set );
-}
-
-bool TQMetaProperty::isEnumType() const
-{
- return testFlags( EnumOrSet );
-}
-
-
-
-/*!
- \fn const char* TQMetaProperty::type() const
-
- Returns the type of the property.
-*/
-
-/*!
- \fn const char* TQMetaProperty::name() const
-
- Returns the name of the property.
-*/
-
-/*!
- \fn bool TQMetaProperty::writable() const
-
- Returns TRUE if the property is writable; otherwise returns FALSE.
-
-*/
-
-/*! \fn bool TQMetaProperty::isValid() const
-
- \internal
-
- Returns whether the property is valid.
-*/
-
-/*!
- \fn bool TQMetaProperty::isEnumType() const
-
- Returns TRUE if the property's type is an enumeration value;
- otherwise returns FALSE.
-
- \sa isSetType(), enumKeys()
-*/
-
-/*!
- \fn bool TQMetaProperty::isSetType() const
-
- Returns TRUE if the property's type is an enumeration value that
- is used as set, i.e. if the enumeration values can be OR-ed
- together; otherwise returns FALSE. A set type is implicitly also
- an enum type.
-
- \sa isEnumType(), enumKeys()
-*/
-
-
-/*! Returns TRUE if the property is designable for object \a o;
- otherwise returns FALSE.
-
- If no object \a o is given, the function returns a static
- approximation.
- */
-bool TQMetaProperty::designable( TQObject* o ) const
-{
- if ( !isValid() || !writable() )
- return FALSE;
- if ( o ) {
- int idx = _id >= 0 ? _id : (*meta)->indexOfProperty( this, TRUE );
- return idx >= 0 && o->qt_property( idx, 3, 0 );
- }
- if ( testFlags( DesignableOverride ) ) {
- const TQMetaObject* mo = (*meta);
- const TQMetaProperty* parent = mo->resolveProperty( this );
- return parent ? parent->designable() : FALSE;
- }
- return !testFlags( NotDesignable );
-}
-
-/*!
- Returns TRUE if the property is scriptable for object \a o;
- otherwise returns FALSE.
-
- If no object \a o is given, the function returns a static
- approximation.
- */
-bool TQMetaProperty::scriptable( TQObject* o ) const
-{
- if ( o ) {
- int idx = _id >= 0 ? _id : (*meta)->indexOfProperty( this, TRUE );
- return idx >= 0 && o->qt_property( idx, 4, 0 );
- }
- if ( testFlags( ScriptableOverride ) ) {
- const TQMetaObject* mo = (*meta);
- const TQMetaProperty* parent = mo->resolveProperty( this );
- return parent ? parent->scriptable() : FALSE;
- }
- return !testFlags( NotScriptable );
-}
-
-/*!
- Returns TRUE if the property shall be stored for object \a o;
- otherwise returns FALSE.
-
- If no object \a o is given, the function returns a static
- approximation.
- */
-bool TQMetaProperty::stored( TQObject* o ) const
-{
- if ( !isValid() || !writable() )
- return FALSE;
- if ( o ) {
- int idx = _id >= 0 ? _id : (*meta)->indexOfProperty( this, TRUE );
- return idx >= 0 && o->qt_property( idx, 5, 0 );
- }
- if ( testFlags( StoredOverride ) ) {
- const TQMetaObject* mo = (*meta);
- const TQMetaProperty* parent = mo->resolveProperty( this );
- return parent ? parent->stored() : FALSE;
- }
- return !testFlags( NotStored );
-}
-
-
-/*!
- Tries to reset the property for object \a o with a reset method.
- On success, returns TRUE; otherwise returns FALSE.
-
- Reset methods are optional, usually only a few properties support
- them.
-*/
-bool TQMetaProperty::reset( TQObject* o ) const
-{
- if ( !o )
- return FALSE;
- int idx = _id >= 0 ? _id : (*meta)->indexOfProperty( this, TRUE );
- if ( idx < 0 )
- return 0;
- return o->qt_property( idx, 2, 0 );
-}
-
-
-/*! \enum TQMetaProperty::Flags
-
- \internal
-*/
-
-#endif // TQT_NO_PROPERTIES
-
-/*
- * TQMetaObjectCleanUp is used as static global object in the tqmoc-generated cpp
- * files and deletes the TQMetaObject provided with setMetaObject. It sets the
- * TQObject reference to the metaObj to NULL when it is destroyed.
- */
-TQMetaObjectCleanUp::TQMetaObjectCleanUp( const char *mo_name, TQtStaticMetaObjectFunction func )
- : tqmetaObject( 0 )
-{
-#ifdef TQT_THREAD_SUPPORT
- TQMutexLocker( tqt_global_mutexpool ?
- tqt_global_mutexpool->get( &qt_metaobjects ) : 0 );
-#endif // TQT_THREAD_SUPPORT
- if ( !qt_metaobjects )
- qt_metaobjects = new TQAsciiDict<void>( 257 );
- qt_metaobjects->insert( mo_name, (void*)func );
-
- qt_metaobjects_count++;
-}
-
-TQMetaObjectCleanUp::TQMetaObjectCleanUp()
- : tqmetaObject( 0 )
-{
-}
-
-/*! \fn bool TQMetaProperty::testFlags( uint f ) const
- \internal
-*/
-
-TQMetaObjectCleanUp::~TQMetaObjectCleanUp()
-{
-#ifdef TQT_THREAD_SUPPORT
- TQMutexLocker( tqt_global_mutexpool ?
- tqt_global_mutexpool->get( &qt_metaobjects ) : 0 );
-#endif // TQT_THREAD_SUPPORT
- if ( !--qt_metaobjects_count ) {
- delete qt_metaobjects;
- qt_metaobjects = 0;
- }
- if ( tqmetaObject ) {
- delete *tqmetaObject;
- *tqmetaObject = 0;
- tqmetaObject = 0;
- }
-}
-
-void TQMetaObjectCleanUp::setMetaObject( TQMetaObject *&mo )
-{
-#if defined(TQT_CHECK_RANGE)
- if ( tqmetaObject )
- qWarning( "TQMetaObjectCleanUp::setMetaObject: Double use of TQMetaObjectCleanUp!" );
-#endif
- tqmetaObject = &mo;
-}
-
-#endif // USE_QT4