debugger: add test code for signal/slot debugging

This commit is contained in:
hjk
2010-07-07 17:11:10 +02:00
parent 30d4c00437
commit bb3a6f05d0
3 changed files with 61 additions and 1 deletions

View File

@@ -799,6 +799,28 @@ def qdump__QObject(d, item):
d.putType(" ") d.putType(" ")
d.putValue(extractCString(metaStringData, offset)) d.putValue(extractCString(metaStringData, offset))
# Active connection
with SubItem(d):
d.putName("currentSender")
d.putType(" ")
sender = d_ptr["currentSender"]
d.putValue(cleanAddress(sender))
if isNull(sender):
d.putNumChild(0)
else:
d.putNumChild(1)
iname = item.iname + ".currentSender"
if d.isExpandedIName(iname):
with Children(d):
# Sending object
d.putItem(Item(sender["sender"], iname, "object", "object"))
# Signal in sending object
with SubItem(d):
d.putName("signal")
d.putValue(sender["signal"])
d.putType(" ");
d.putNumChild(0)
# QObject # QObject
# static const uint qt_meta_data_QObject[] = { # static const uint qt_meta_data_QObject[] = {

View File

@@ -260,6 +260,7 @@ void QmlEngine::startDebugger()
return; return;
} }
setState(AdapterStarted); setState(AdapterStarted);
startSuccessful();
setState(InferiorStarting); setState(InferiorStarting);
//m_frameRate = new CanvasFrameRate(0); //m_frameRate = new CanvasFrameRate(0);
@@ -306,8 +307,8 @@ void QmlEngine::setupConnection()
} }
qDebug() << "CONNECTION SUCCESSFUL"; qDebug() << "CONNECTION SUCCESSFUL";
setState(InferiorRunningRequested);
setState(InferiorRunning); setState(InferiorRunning);
startSuccessful();
reloadEngines(); reloadEngines();
} }

View File

@@ -791,6 +791,42 @@ void testQObject(int &argc, char *argv[])
#endif #endif
} }
class Sender : public QObject
{
Q_OBJECT
public:
Sender() { setObjectName("Sender"); }
void doEmit() { emit aSignal(); }
signals:
void aSignal();
};
class Receiver : public QObject
{
Q_OBJECT
public:
Receiver() { setObjectName("Receiver"); }
public slots:
void aSlot() {
QObject *s = sender();
if (s) {
qDebug() << "SENDER: " << s;
} else {
qDebug() << "NO SENDER";
}
}
};
void testSignalSlot(int &argc, char *argv[])
{
QApplication app(argc, argv);
Sender sender;
Receiver receiver;
QObject::connect(&sender, SIGNAL(aSignal()), &receiver, SLOT(aSlot()));
sender.doEmit();
};
void testQPixmap() void testQPixmap()
{ {
QImage im(QSize(200, 200), QImage::Format_RGB32); QImage im(QSize(200, 200), QImage::Format_RGB32);
@@ -1822,6 +1858,7 @@ int main(int argc, char *argv[])
testObject1(); testObject1();
testVector1(); testVector1();
testQHash1(); testQHash1();
testSignalSlot(argc, argv);
QString hallo = "hallo"; QString hallo = "hallo";
QStringList list; QStringList list;