summaryrefslogtreecommitdiffstats
path: root/qtinterface/tqmetaobject.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'qtinterface/tqmetaobject.cpp')
-rw-r--r--qtinterface/tqmetaobject.cpp133
1 files changed, 132 insertions, 1 deletions
diff --git a/qtinterface/tqmetaobject.cpp b/qtinterface/tqmetaobject.cpp
index 4900d73..5df02d0 100644
--- a/qtinterface/tqmetaobject.cpp
+++ b/qtinterface/tqmetaobject.cpp
@@ -20,4 +20,135 @@ Boston, MA 02110-1301, USA.
*/
#include <tqt.h>
-#include <tqmetaobject.h> \ No newline at end of file
+#include <tqmetaobject.h>
+
+#ifdef USE_QT4
+
+/*!
+ Returns the number of slots for this class.
+
+ If \a super is TRUE, inherited slots are included.
+
+ \sa slotNames()
+*/
+int QMetaObject::numSlots( bool super ) const // number of slots
+{
+ int i;
+ int n;
+ for (i=0;i<methodCount();i++) {
+ if (method(i).methodType() == QMetaMethod::Slot) {
+ n++;
+ }
+ }
+
+ if ( !super || !superClass() )
+ return n;
+ return n + superClass()->numSlots( super );
+}
+
+/*!
+ Returns the number of signals for this class.
+
+ If \a super is TRUE, inherited signals are included.
+
+ \sa signalNames()
+*/
+int QMetaObject::numSignals( bool super ) const // number of signals
+{
+ int i;
+ int n;
+ for (i=0;i<methodCount();i++) {
+ if (method(i).methodType() == QMetaMethod::Signal) {
+ n++;
+ }
+ }
+
+ 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 slots are included.
+
+ FIXME: Superclass handling is badly broken
+ */
+const QMetaMethod* QMetaObject::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 mr;
+ }
+ 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 signals are included.
+
+ FIXME: Superclass handling is badly broken
+ */
+const QMetaMethod* QMetaObject::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 mr;
+ }
+ if ( !super || !superClass() )
+ return 0;
+ return superClass()->signal( index, super );
+}
+
+/*!
+ Returns a list with the names of all this class's signals.
+
+ If \a super is TRUE, inherited signals are included.
+*/
+QStringList QMetaObject::signalNames( bool super ) const
+{
+ QStringList l( FALSE );
+ int n = numSignals( super );
+ for( int i = 0; i < n; ++i ) {
+ l.append( signal(i, super)->signature() );
+ }
+ return l;
+}
+
+/*!
+ Returns a list with the names of all this class's slots.
+
+ If \a super is TRUE, inherited slots are included.
+
+ \sa numSlots()
+*/
+QStringList QMetaObject::slotNames( bool super ) const
+{
+ QStringList l( FALSE );
+ int n = numSlots( super );
+ for( int i = 0; i < n; ++i )
+ l.append( slot( i, super)->signature() );
+ return l;
+}
+
+#endif // USE_QT4 \ No newline at end of file