From b7788bd80853eccd216b87c7751fde2e67a777df Mon Sep 17 00:00:00 2001 From: Kai Koehne <kai.koehne@nokia.com> Date: Wed, 1 Sep 2010 13:42:24 +0200 Subject: [PATCH] QmlJsDebugger: Make DebugServer a singleton --- .../include/qdeclarativedesigndebugserver.h | 4 +- .../qdeclarativedesigndebugserver.cpp | 11 +++- .../qmljsdebugger/qdeclarativedesignview.cpp | 57 +++++++++---------- .../qmljsdebugger/qdeclarativedesignview_p.h | 3 + 4 files changed, 42 insertions(+), 33 deletions(-) diff --git a/share/qtcreator/qmljsdebugger/include/qdeclarativedesigndebugserver.h b/share/qtcreator/qmljsdebugger/include/qdeclarativedesigndebugserver.h index 174187d6e95..a6efe3a440e 100644 --- a/share/qtcreator/qmljsdebugger/include/qdeclarativedesigndebugserver.h +++ b/share/qtcreator/qmljsdebugger/include/qdeclarativedesigndebugserver.h @@ -60,7 +60,8 @@ class QMLJSDEBUGGER_EXPORT QDeclarativeDesignDebugServer : public QDeclarativeDe { Q_OBJECT public: - QDeclarativeDesignDebugServer(QObject *parent = 0); + QDeclarativeDesignDebugServer(); + static QDeclarativeDesignDebugServer *instance(); void setDesignModeBehavior(bool inDesignMode); void setCurrentObjects(QList<QObject*> items); @@ -99,7 +100,6 @@ protected: private: QHash<int, QString> m_stringIdForObjectId; - }; QT_END_NAMESPACE diff --git a/share/qtcreator/qmljsdebugger/qdeclarativedesigndebugserver.cpp b/share/qtcreator/qmljsdebugger/qdeclarativedesigndebugserver.cpp index a8bd60736ac..cbb64752bba 100644 --- a/share/qtcreator/qmljsdebugger/qdeclarativedesigndebugserver.cpp +++ b/share/qtcreator/qmljsdebugger/qdeclarativedesigndebugserver.cpp @@ -46,9 +46,16 @@ #include <QDebug> -QDeclarativeDesignDebugServer::QDeclarativeDesignDebugServer(QObject *parent) - : QDeclarativeDebugService(QLatin1String("QDeclarativeDesignMode"), parent) +Q_GLOBAL_STATIC(QDeclarativeDesignDebugServer, qmlDesignDebugServer) + +QDeclarativeDesignDebugServer::QDeclarativeDesignDebugServer() + : QDeclarativeDebugService(QLatin1String("QDeclarativeDesignMode")) +{ +} + +QDeclarativeDesignDebugServer *QDeclarativeDesignDebugServer::instance() { + return qmlDesignDebugServer(); } void QDeclarativeDesignDebugServer::messageReceived(const QByteArray &message) diff --git a/share/qtcreator/qmljsdebugger/qdeclarativedesignview.cpp b/share/qtcreator/qmljsdebugger/qdeclarativedesignview.cpp index 029f126b38e..f9e2a806de4 100644 --- a/share/qtcreator/qmljsdebugger/qdeclarativedesignview.cpp +++ b/share/qtcreator/qmljsdebugger/qdeclarativedesignview.cpp @@ -56,8 +56,6 @@ namespace QmlViewer { const int SceneChangeUpdateInterval = 5000; -Q_GLOBAL_STATIC(QDeclarativeDesignDebugServer, qmlDesignDebugServer) - QDeclarativeDesignViewPrivate::QDeclarativeDesignViewPrivate(QDeclarativeDesignView *q) : q(q), designModeBehavior(false), @@ -85,34 +83,35 @@ QDeclarativeDesignView::QDeclarativeDesignView(QWidget *parent) : setMouseTracking(true); - connect(qmlDesignDebugServer(), SIGNAL(designModeBehaviorChanged(bool)), SLOT(setDesignModeBehavior(bool))); - connect(qmlDesignDebugServer(), SIGNAL(reloadRequested()), SLOT(_q_reloadView())); - connect(qmlDesignDebugServer(), + data->debugServer = QDeclarativeDesignDebugServer::instance(); + connect(data->debugServer, SIGNAL(designModeBehaviorChanged(bool)), SLOT(setDesignModeBehavior(bool))); + connect(data->debugServer, SIGNAL(reloadRequested()), SLOT(_q_reloadView())); + connect(data->debugServer, SIGNAL(currentObjectsChanged(QList<QObject*>)), SLOT(_q_onCurrentObjectsChanged(QList<QObject*>))); - connect(qmlDesignDebugServer(), SIGNAL(animationSpeedChangeRequested(qreal)), SLOT(changeAnimationSpeed(qreal))); - connect(qmlDesignDebugServer(), SIGNAL(colorPickerToolRequested()), SLOT(_q_changeToColorPickerTool())); - connect(qmlDesignDebugServer(), SIGNAL(selectMarqueeToolRequested()), SLOT(_q_changeToMarqueeSelectTool())); - connect(qmlDesignDebugServer(), SIGNAL(selectToolRequested()), SLOT(_q_changeToSingleSelectTool())); - connect(qmlDesignDebugServer(), SIGNAL(zoomToolRequested()), SLOT(_q_changeToZoomTool())); - connect(qmlDesignDebugServer(), + connect(data->debugServer, SIGNAL(animationSpeedChangeRequested(qreal)), SLOT(changeAnimationSpeed(qreal))); + connect(data->debugServer, SIGNAL(colorPickerToolRequested()), SLOT(_q_changeToColorPickerTool())); + connect(data->debugServer, SIGNAL(selectMarqueeToolRequested()), SLOT(_q_changeToMarqueeSelectTool())); + connect(data->debugServer, SIGNAL(selectToolRequested()), SLOT(_q_changeToSingleSelectTool())); + connect(data->debugServer, SIGNAL(zoomToolRequested()), SLOT(_q_changeToZoomTool())); + connect(data->debugServer, SIGNAL(objectCreationRequested(QString,QObject*,QStringList,QString)), SLOT(_q_createQmlObject(QString,QObject*,QStringList,QString))); - connect(qmlDesignDebugServer(), + connect(data->debugServer, SIGNAL(objectReparentRequested(QObject *, QObject *)), SLOT(_q_reparentQmlObject(QObject *, QObject *))); - connect(qmlDesignDebugServer(), SIGNAL(contextPathIndexChanged(int)), SLOT(_q_changeContextPathIndex(int))); - connect(qmlDesignDebugServer(), SIGNAL(clearComponentCacheRequested()), SLOT(_q_clearComponentCache())); + connect(data->debugServer, SIGNAL(contextPathIndexChanged(int)), SLOT(_q_changeContextPathIndex(int))); + connect(data->debugServer, SIGNAL(clearComponentCacheRequested()), SLOT(_q_clearComponentCache())); connect(this, SIGNAL(statusChanged(QDeclarativeView::Status)), SLOT(_q_onStatusChanged(QDeclarativeView::Status))); connect(data->colorPickerTool, SIGNAL(selectedColorChanged(QColor)), SIGNAL(selectedColorChanged(QColor))); connect(data->colorPickerTool, SIGNAL(selectedColorChanged(QColor)), - qmlDesignDebugServer(), SLOT(selectedColorChanged(QColor))); + data->debugServer, SLOT(selectedColorChanged(QColor))); connect(data->subcomponentEditorTool, SIGNAL(cleared()), SIGNAL(inspectorContextCleared())); connect(data->subcomponentEditorTool, SIGNAL(contextPushed(QString)), SIGNAL(inspectorContextPushed(QString))); connect(data->subcomponentEditorTool, SIGNAL(contextPopped()), SIGNAL(inspectorContextPopped())); - connect(data->subcomponentEditorTool, SIGNAL(contextPathChanged(QStringList)), qmlDesignDebugServer(), SLOT(contextPathUpdated(QStringList))); + connect(data->subcomponentEditorTool, SIGNAL(contextPathChanged(QStringList)), data->debugServer, SLOT(contextPathUpdated(QStringList))); data->createToolbar(); @@ -131,7 +130,7 @@ void QDeclarativeDesignView::setInspectorContext(int contextIndex) if (data->subcomponentEditorTool->contextIndex() != contextIndex) { QGraphicsObject *object = data->subcomponentEditorTool->setContext(contextIndex); if (object) - qmlDesignDebugServer()->setCurrentObjects(QList<QObject*>() << object); + data->debugServer->setCurrentObjects(QList<QObject*>() << object); } } @@ -202,7 +201,7 @@ void QDeclarativeDesignView::mouseReleaseEvent(QMouseEvent *event) data->cursorPos = event->pos(); data->currentTool->mouseReleaseEvent(event); - qmlDesignDebugServer()->setCurrentObjects(AbstractFormEditorTool::toObjectList(selectedItems())); + data->debugServer->setCurrentObjects(AbstractFormEditorTool::toObjectList(selectedItems())); } void QDeclarativeDesignView::keyPressEvent(QKeyEvent *event) @@ -335,7 +334,7 @@ void QDeclarativeDesignView::mouseDoubleClickEvent(QMouseEvent *event) if ((event->buttons() & Qt::LeftButton) && itemToEnter) { QGraphicsObject *objectToEnter = itemToEnter->toGraphicsObject(); if (objectToEnter) - qmlDesignDebugServer()->setCurrentObjects(QList<QObject*>() << objectToEnter); + data->debugServer->setCurrentObjects(QList<QObject*>() << objectToEnter); } } @@ -364,7 +363,7 @@ void QDeclarativeDesignView::setDesignModeBehavior(bool value) emit designModeBehaviorChanged(value); data->toolbar->setDesignModeBehavior(value); - qmlDesignDebugServer()->setDesignModeBehavior(value); + data->debugServer->setDesignModeBehavior(value); data->designModeBehavior = value; if (data->subcomponentEditorTool) { @@ -414,7 +413,7 @@ void QDeclarativeDesignViewPrivate::setSelectedItemsForTools(QList<QGraphicsItem void QDeclarativeDesignViewPrivate::setSelectedItems(QList<QGraphicsItem *> items) { setSelectedItemsForTools(items); - qmlDesignDebugServer()->setCurrentObjects(AbstractFormEditorTool::toObjectList(items)); + debugServer->setCurrentObjects(AbstractFormEditorTool::toObjectList(items)); } QList<QGraphicsItem *> QDeclarativeDesignViewPrivate::selectedItems() @@ -504,7 +503,7 @@ void QDeclarativeDesignViewPrivate::_q_changeToSingleSelectTool() changeToSelectTool(); emit q->selectToolActivated(); - qmlDesignDebugServer()->setCurrentTool(Constants::SelectionToolMode); + debugServer->setCurrentTool(Constants::SelectionToolMode); } void QDeclarativeDesignViewPrivate::changeToSelectTool() @@ -525,7 +524,7 @@ void QDeclarativeDesignViewPrivate::_q_changeToMarqueeSelectTool() selectionTool->setRubberbandSelectionMode(true); emit q->marqueeSelectToolActivated(); - qmlDesignDebugServer()->setCurrentTool(Constants::MarqueeSelectionToolMode); + debugServer->setCurrentTool(Constants::MarqueeSelectionToolMode); } void QDeclarativeDesignViewPrivate::_q_changeToZoomTool() @@ -536,7 +535,7 @@ void QDeclarativeDesignViewPrivate::_q_changeToZoomTool() currentTool->clear(); emit q->zoomToolActivated(); - qmlDesignDebugServer()->setCurrentTool(Constants::ZoomMode); + debugServer->setCurrentTool(Constants::ZoomMode); } void QDeclarativeDesignViewPrivate::_q_changeToColorPickerTool() @@ -550,7 +549,7 @@ void QDeclarativeDesignViewPrivate::_q_changeToColorPickerTool() currentTool->clear(); emit q->colorPickerActivated(); - qmlDesignDebugServer()->setCurrentTool(Constants::ColorPickerMode); + debugServer->setCurrentTool(Constants::ColorPickerMode); } void QDeclarativeDesignViewPrivate::_q_changeContextPathIndex(int index) @@ -583,7 +582,7 @@ void QDeclarativeDesignView::continueExecution(qreal slowdownFactor) data->executionPaused = false; emit executionStarted(data->slowdownFactor); - qmlDesignDebugServer()->setAnimationSpeed(data->slowdownFactor); + data->debugServer->setAnimationSpeed(data->slowdownFactor); } void QDeclarativeDesignView::pauseExecution() @@ -594,7 +593,7 @@ void QDeclarativeDesignView::pauseExecution() data->executionPaused = true; emit executionPaused(); - qmlDesignDebugServer()->setAnimationSpeed(0); + data->debugServer->setAnimationSpeed(0); } void QDeclarativeDesignViewPrivate::_q_applyChangesFromClient() @@ -654,7 +653,7 @@ void QDeclarativeDesignViewPrivate::_q_onStatusChanged(QDeclarativeView::Status emit q->executionStarted(1.0f); } - qmlDesignDebugServer()->reloaded(); + debugServer->reloaded(); } } @@ -678,7 +677,7 @@ void QDeclarativeDesignViewPrivate::_q_onCurrentObjectsChanged(QList<QObject*> o QString QDeclarativeDesignView::idStringForObject(QObject *obj) { - return qmlDesignDebugServer()->idStringForObject(obj); + return QDeclarativeDesignDebugServer::instance()->idStringForObject(obj); } // adjusts bounding boxes on edges of screen to be visible diff --git a/share/qtcreator/qmljsdebugger/qdeclarativedesignview_p.h b/share/qtcreator/qmljsdebugger/qdeclarativedesignview_p.h index 5166f60d23e..e5a63d99826 100644 --- a/share/qtcreator/qmljsdebugger/qdeclarativedesignview_p.h +++ b/share/qtcreator/qmljsdebugger/qdeclarativedesignview_p.h @@ -35,6 +35,7 @@ #include <QTimer> #include "qdeclarativedesignview.h" +#include "qdeclarativedesigndebugserver.h" QT_FORWARD_DECLARE_CLASS(JSDebuggerAgent) @@ -65,6 +66,8 @@ public: ~QDeclarativeDesignViewPrivate(); QDeclarativeDesignView *q; + QDeclarativeDesignDebugServer *debugServer; + QPointF cursorPos; QList<QWeakPointer<QGraphicsObject> > currentSelection; -- GitLab