summaryrefslogtreecommitdiffstats
path: root/kspy/receiversview.cpp
diff options
context:
space:
mode:
authortoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
committertoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
commitbd9e6617827818fd043452c08c606f07b78014a0 (patch)
tree425bb4c3168f9c02f10150f235d2cb998dcc6108 /kspy/receiversview.cpp
downloadtdesdk-bd9e6617827818fd043452c08c606f07b78014a0.tar.gz
tdesdk-bd9e6617827818fd043452c08c606f07b78014a0.zip
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdesdk@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'kspy/receiversview.cpp')
-rw-r--r--kspy/receiversview.cpp80
1 files changed, 80 insertions, 0 deletions
diff --git a/kspy/receiversview.cpp b/kspy/receiversview.cpp
new file mode 100644
index 00000000..e1da1127
--- /dev/null
+++ b/kspy/receiversview.cpp
@@ -0,0 +1,80 @@
+/***************************************************************************
+ receiversview.cpp - description
+ -------------------
+ begin : Tue Jan 11 2005
+ copyright : (C) 2005 by Richard Dale
+ email : Richard_Dale@tipitina.demon.co.uk
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+
+#include <qobjectdict.h>
+#include <qobjectlist.h>
+#include <qmetaobject.h>
+#include <qstrlist.h>
+#include <qvariant.h>
+#include <qsignalslotimp.h>
+
+#include <klocale.h>
+
+#include "receiversview.h"
+
+class UnencapsulatedQObject : public QObject {
+public:
+ QConnectionList *public_receivers(int signal) const { return receivers(signal); }
+};
+
+ReceiversView::ReceiversView(QWidget *parent, const char *name ) : KListView(parent,name)
+{
+ addColumn( i18n( "Object" ) );
+ addColumn( i18n( "Type" ) );
+ addColumn( i18n( "Member Name" ) );
+
+ setRootIsDecorated( true );
+ setAllColumnsShowFocus( true );
+ setFullWidth( true );
+}
+
+ReceiversView::~ReceiversView()
+{
+}
+
+void ReceiversView::buildList( QObject *o )
+{
+ QMetaObject *mo = o->metaObject();
+
+ UnencapsulatedQObject * qobject = (UnencapsulatedQObject *) o;
+ QStrList signalNames = mo->signalNames(true);
+
+ for (int sig = 0; sig < mo->numSignals(true); sig++) {
+ QConnectionList * clist = qobject->public_receivers(sig);
+ if (clist != 0) {
+ KListViewItem *conn = new KListViewItem( this, signalNames.at(sig) );
+
+ for ( QConnection * connection = clist->first();
+ connection != 0;
+ connection = clist->next() )
+ {
+ new KListViewItem( conn,
+ connection->object()->name(),
+ connection->memberType() == 1 ? "SLOT" : "SIGNAL",
+ connection->memberName() );
+ }
+ }
+ }
+}
+
+void ReceiversView::setTarget( QObject *o )
+{
+ clear();
+ buildList( o );
+}
+
+#include "receiversview.moc"