diff --git a/src/plugins/debugger/qml/qmlcppengine.cpp b/src/plugins/debugger/qml/qmlcppengine.cpp index aba270ebdb4696c3ff93ce28f21908675b67a23a..0011abcee122f2f5f2fb8a9b22ff1d1178258f8b 100644 --- a/src/plugins/debugger/qml/qmlcppengine.cpp +++ b/src/plugins/debugger/qml/qmlcppengine.cpp @@ -14,6 +14,7 @@ namespace Debugger { const int ConnectionWaitTimeMs = 5000; namespace Internal { + DebuggerEngine *createCdbEngine(const DebuggerStartParameters &, QString *); DebuggerEngine *createGdbEngine(const DebuggerStartParameters &); DebuggerEngine *createQmlEngine(const DebuggerStartParameters &); @@ -21,16 +22,16 @@ DebuggerEngine *createQmlEngine(const DebuggerStartParameters &); DebuggerEngine *createQmlCppEngine(const DebuggerStartParameters &sp) { QmlCppEngine *newEngine = new QmlCppEngine(sp); - if (newEngine->cppEngine()) { + if (newEngine->cppEngine()) return newEngine; - } else { - delete newEngine; - return 0; - } + delete newEngine; + return 0; } + } // namespace Internal -struct QmlCppEnginePrivate { +struct QmlCppEnginePrivate +{ QmlCppEnginePrivate(); QmlEngine *m_qmlEngine; @@ -42,11 +43,11 @@ struct QmlCppEnginePrivate { bool m_isInitialStartup; }; -QmlCppEnginePrivate::QmlCppEnginePrivate() : - m_qmlEngine(0), - m_cppEngine(0), - m_activeEngine(0), - m_shutdownOk(true) +QmlCppEnginePrivate::QmlCppEnginePrivate() + : m_qmlEngine(0) + , m_cppEngine(0) + , m_activeEngine(0) + , m_shutdownOk(true) , m_shutdownDeferred(false) , m_shutdownDone(false) , m_isInitialStartup(true) @@ -70,36 +71,39 @@ QmlCppEngine::QmlCppEngine(const DebuggerStartParameters &sp) } } - d->m_cppEngine->setSlave(true); - d->m_qmlEngine->setSlave(true); + d->m_cppEngine->setSlaveEngine(true); + d->m_qmlEngine->setSlaveEngine(true); d->m_activeEngine = d->m_cppEngine; - connect(d->m_cppEngine, SIGNAL(stateChanged(DebuggerState)), SLOT(masterEngineStateChanged(DebuggerState))); - connect(d->m_qmlEngine, SIGNAL(stateChanged(DebuggerState)), SLOT(slaveEngineStateChanged(DebuggerState))); + connect(d->m_cppEngine, SIGNAL(stateChanged(DebuggerState)), + SLOT(masterEngineStateChanged(DebuggerState))); + connect(d->m_qmlEngine, SIGNAL(stateChanged(DebuggerState)), + SLOT(slaveEngineStateChanged(DebuggerState))); - Core::EditorManager *em = Core::EditorManager::instance(); - connect(em, SIGNAL(currentEditorChanged(Core::IEditor*)), SLOT(editorChanged(Core::IEditor*))); + connect(Core::EditorManager::instance(), + SIGNAL(currentEditorChanged(Core::IEditor*)), + SLOT(editorChanged(Core::IEditor*))); } QmlCppEngine::~QmlCppEngine() { delete d->m_qmlEngine; - delete d->m_cppEngine; d->m_qmlEngine = 0; + delete d->m_cppEngine; d->m_cppEngine = 0; } void QmlCppEngine::editorChanged(Core::IEditor *editor) { - // change the engine based on editor, but only if we're not currently in stopped state. + // Change the engine based on editor, but only if we're not + // currently in stopped state. if (state() != InferiorRunOk || !editor) return; - if (editor->id() == QmlJSEditor::Constants::C_QMLJSEDITOR_ID) { + if (editor->id() == QmlJSEditor::Constants::C_QMLJSEDITOR_ID) setActiveEngine(QmlLanguage); - } else { + else setActiveEngine(CppLanguage); - } } void QmlCppEngine::setActiveEngine(DebuggerLanguage language) @@ -130,7 +134,8 @@ void QmlCppEngine::setToolTipExpression(const QPoint & mousePos, d->m_activeEngine->setToolTipExpression(mousePos, editor, cursorPos); } -void QmlCppEngine::updateWatchData(const Internal::WatchData &data, const Internal::WatchUpdateFlags &flags) +void QmlCppEngine::updateWatchData(const Internal::WatchData &data, + const Internal::WatchUpdateFlags &flags) { d->m_activeEngine->updateWatchData(data, flags); } @@ -235,7 +240,8 @@ void QmlCppEngine::attemptBreakpointSynchronization() bool QmlCppEngine::acceptsBreakpoint(const Internal::BreakpointData *br) { - return d->m_cppEngine->acceptsBreakpoint(br) || d->m_qmlEngine->acceptsBreakpoint(br); + return d->m_cppEngine->acceptsBreakpoint(br) + || d->m_qmlEngine->acceptsBreakpoint(br); } void QmlCppEngine::selectThread(int index) diff --git a/src/plugins/debugger/qml/qmlcppengine.h b/src/plugins/debugger/qml/qmlcppengine.h index d3bb72056d3c4c65e5a94925e1f55b907c58e372..2f20a93574c49e8ce7ecb5f966047eb4e5b0f6c4 100644 --- a/src/plugins/debugger/qml/qmlcppengine.h +++ b/src/plugins/debugger/qml/qmlcppengine.h @@ -22,9 +22,10 @@ public: void setActiveEngine(DebuggerLanguage language); - virtual void setToolTipExpression(const QPoint & /* mousePos */, - TextEditor::ITextEditor * /* editor */, int /* cursorPos */); - virtual void updateWatchData(const Internal::WatchData & /* data */, const Internal::WatchUpdateFlags &flags); + virtual void setToolTipExpression(const QPoint &mousePos, + TextEditor::ITextEditor * editor, int cursorPos); + virtual void updateWatchData(const Internal::WatchData &data, + const Internal::WatchUpdateFlags &flags); virtual void watchPoint(const QPoint &); virtual void fetchMemory(Internal::MemoryViewAgent *, QObject *, @@ -55,7 +56,8 @@ public: virtual bool acceptsBreakpoint(const Internal::BreakpointData *br); virtual void selectThread(int index); - virtual void assignValueInDebugger(const Internal::WatchData *w, const QString &expr, const QVariant &value); + virtual void assignValueInDebugger(const Internal::WatchData *w, + const QString &expr, const QVariant &value); QAbstractItemModel *commandModel() const; QAbstractItemModel *modulesModel() const; diff --git a/src/plugins/debugger/qml/qmlengine.cpp b/src/plugins/debugger/qml/qmlengine.cpp index 5109af4043234908d0140c9f97dc1e12397c4a49..c4b9281a25e7f70f64678f8aff5c7db97c3d5b82 100644 --- a/src/plugins/debugger/qml/qmlengine.cpp +++ b/src/plugins/debugger/qml/qmlengine.cpp @@ -84,7 +84,7 @@ enum { namespace Debugger { namespace Internal { -QDataStream& operator>>(QDataStream& s, WatchData &data) +QDataStream &operator>>(QDataStream &s, WatchData &data) { data = WatchData(); QString value; @@ -100,7 +100,8 @@ QDataStream& operator>>(QDataStream& s, WatchData &data) } // namespace Internal -struct QmlEnginePrivate { +struct QmlEnginePrivate +{ explicit QmlEnginePrivate(QmlEngine *q); int m_ping; @@ -111,12 +112,12 @@ struct QmlEnginePrivate { bool m_hasShutdown; }; -QmlEnginePrivate::QmlEnginePrivate(QmlEngine *q) : - m_ping(0) -, m_adapter(new QmlAdapter(q)) -, m_addedAdapterToObjectPool(false) -, m_attachToRunningExternalApp(false) -, m_hasShutdown(false) +QmlEnginePrivate::QmlEnginePrivate(QmlEngine *q) + : m_ping(0) + , m_adapter(new QmlAdapter(q)) + , m_addedAdapterToObjectPool(false) + , m_attachToRunningExternalApp(false) + , m_hasShutdown(false) { } @@ -221,7 +222,7 @@ void QmlEngine::connectionError(QAbstractSocket::SocketError socketError) void QmlEngine::serviceConnectionError(const QString &serviceName) { - plugin()->showMessage(tr("QML Debugger: Could not connect to service '%1'.").arg(serviceName), StatusBar); + showMessage(tr("QML Debugger: Could not connect to service '%1'.").arg(serviceName), StatusBar); } void QmlEngine::runEngine() @@ -235,7 +236,7 @@ void QmlEngine::runEngine() } d->m_adapter->beginConnection(); - plugin()->showMessage(tr("QML Debugger connecting..."), StatusBar); + showMessage(tr("QML Debugger connecting..."), StatusBar); } void QmlEngine::handleRemoteSetupDone() @@ -274,11 +275,13 @@ void QmlEngine::shutdownEngineAsSlave() if (d->m_hasShutdown) return; - disconnect(d->m_adapter, SIGNAL(connectionStartupFailed()), this, SLOT(connectionStartupFailed())); + disconnect(d->m_adapter, SIGNAL(connectionStartupFailed()), + this, SLOT(connectionStartupFailed())); d->m_adapter->closeConnection(); if (d->m_addedAdapterToObjectPool) { - ExtensionSystem::PluginManager *pluginManager = ExtensionSystem::PluginManager::instance(); + ExtensionSystem::PluginManager *pluginManager = + ExtensionSystem::PluginManager::instance(); pluginManager->removeObject(d->m_adapter); pluginManager->removeObject(this); } @@ -290,7 +293,8 @@ void QmlEngine::shutdownEngineAsSlave() } else { if (d->m_applicationLauncher.isRunning()) { // should only happen if engine is ill - disconnect(&d->m_applicationLauncher, SIGNAL(processExited(int)), this, SLOT(disconnected())); + disconnect(&d->m_applicationLauncher, SIGNAL(processExited(int)), + this, SLOT(disconnected())); d->m_applicationLauncher.stop(); } } @@ -307,7 +311,8 @@ void QmlEngine::shutdownInferior() if (!d->m_applicationLauncher.isRunning()) { showMessage(tr("Trying to stop while process is no longer running."), LogError); } else { - disconnect(&d->m_applicationLauncher, SIGNAL(processExited(int)), this, SLOT(disconnected())); + disconnect(&d->m_applicationLauncher, SIGNAL(processExited(int)), + this, SLOT(disconnected())); if (!d->m_attachToRunningExternalApp) d->m_applicationLauncher.stop(); } @@ -329,10 +334,13 @@ void QmlEngine::setupEngine() d->m_adapter->setMaxConnectionAttempts(MaxConnectionAttempts); d->m_adapter->setConnectionAttemptInterval(ConnectionAttemptDefaultInterval); connect(d->m_adapter, SIGNAL(connectionError(QAbstractSocket::SocketError)), - SLOT(connectionError(QAbstractSocket::SocketError))); - connect(d->m_adapter, SIGNAL(serviceConnectionError(QString)), SLOT(serviceConnectionError(QString))); - connect(d->m_adapter, SIGNAL(connected()), SLOT(connectionEstablished())); - connect(d->m_adapter, SIGNAL(connectionStartupFailed()), SLOT(connectionStartupFailed())); + SLOT(connectionError(QAbstractSocket::SocketError))); + connect(d->m_adapter, SIGNAL(serviceConnectionError(QString)), + SLOT(serviceConnectionError(QString))); + connect(d->m_adapter, SIGNAL(connected()), + SLOT(connectionEstablished())); + connect(d->m_adapter, SIGNAL(connectionStartupFailed()), + SLOT(connectionStartupFailed())); notifyEngineSetupOk(); } @@ -454,19 +462,18 @@ void QmlEngine::attemptBreakpointSynchronization() breakList << qMakePair(processedFilename, data->lineNumber); } - { QByteArray reply; QDataStream rs(&reply, QIODevice::WriteOnly); rs << QByteArray("BREAKPOINTS"); rs << breakList; //qDebug() << Q_FUNC_INFO << breakList; sendMessage(reply); - } } bool QmlEngine::acceptsBreakpoint(const Internal::BreakpointData *br) { - return (br->fileName.endsWith(QLatin1String("qml")) || br->fileName.endsWith(QLatin1String("js"))); + return br->fileName.endsWith(QLatin1String("qml")) + || br->fileName.endsWith(QLatin1String("js")); } void QmlEngine::loadSymbols(const QString &moduleName) @@ -493,9 +500,11 @@ void QmlEngine::requestModuleSymbols(const QString &moduleName) // ////////////////////////////////////////////////////////////////////// -void QmlEngine::setToolTipExpression(const QPoint &mousePos, TextEditor::ITextEditor *editor, int cursorPos) +void QmlEngine::setToolTipExpression(const QPoint &mousePos, + TextEditor::ITextEditor *editor, int cursorPos) { - // this is processed by QML inspector, which has deps to qml js editor. Makes life easier. + // This is processed by QML inspector, which has dependencies to + // the qml js editor. Makes life easier. emit tooltipRequested(mousePos, editor, cursorPos); } @@ -506,7 +515,7 @@ void QmlEngine::setToolTipExpression(const QPoint &mousePos, TextEditor::ITextEd ////////////////////////////////////////////////////////////////////// void QmlEngine::assignValueInDebugger(const Internal::WatchData *, - const QString &expression, const QVariant &valueV) + const QString &expression, const QVariant &valueV) { QRegExp inObject("@([0-9a-fA-F]+)->(.+)"); if (inObject.exactMatch(expression)) { @@ -523,7 +532,8 @@ void QmlEngine::assignValueInDebugger(const Internal::WatchData *, } } -void QmlEngine::updateWatchData(const Internal::WatchData &data, const Internal::WatchUpdateFlags &) +void QmlEngine::updateWatchData(const Internal::WatchData &data, + const Internal::WatchUpdateFlags &) { // qDebug() << "UPDATE WATCH DATA" << data.toString(); //watchHandler()->rebuildModel(); @@ -748,7 +758,6 @@ void QmlEngine::messageReceived(const QByteArray &message) } else { qDebug() << Q_FUNC_INFO << "Unknown command: " << command; } - } void QmlEngine::disconnected() @@ -768,26 +777,19 @@ void QmlEngine::executeDebuggerCommand(const QString& command) bool QmlEngine::isShadowBuildProject() const { - if (!startParameters().projectBuildDir.isEmpty() - && (startParameters().projectDir != startParameters().projectBuildDir)) - { - return true; - } - return false; + return !startParameters().projectBuildDir.isEmpty() + && startParameters().projectDir != startParameters().projectBuildDir; } QString QmlEngine::qmlImportPath() const { - QString result; const QString qmlImportPathPrefix("QML_IMPORT_PATH="); QStringList env = startParameters().environment; - foreach(const QString &envStr, env) { - if (envStr.startsWith(qmlImportPathPrefix)) { - result = envStr.mid(qmlImportPathPrefix.length()); - break; - } + foreach (const QString &envStr, env) { + if (envStr.startsWith(qmlImportPathPrefix)) + return envStr.mid(qmlImportPathPrefix.length()); } - return result; + return QString(); } QString QmlEngine::toShadowBuildFilename(const QString &filename) const @@ -803,7 +805,8 @@ QString QmlEngine::toShadowBuildFilename(const QString &filename) const return newFilename; } -QString QmlEngine::mangleFilenamePaths(const QString &filename, const QString &oldBasePath, const QString &newBasePath) const +QString QmlEngine::mangleFilenamePaths(const QString &filename, + const QString &oldBasePath, const QString &newBasePath) const { QDir oldBaseDir(oldBasePath); QDir newBaseDir(newBasePath); diff --git a/src/plugins/debugger/qml/qmlengine.h b/src/plugins/debugger/qml/qmlengine.h index d5087873cdd6a4b64db8f882848d38d5762e6a5a..f935ae4174e5a86f3beda3af58486f3455ea4719 100644 --- a/src/plugins/debugger/qml/qmlengine.h +++ b/src/plugins/debugger/qml/qmlengine.h @@ -80,7 +80,8 @@ private: void shutdownInferior(); void shutdownEngine(); - void setToolTipExpression(const QPoint &mousePos, TextEditor::ITextEditor *editor, int cursorPos); + void setToolTipExpression(const QPoint &mousePos, + TextEditor::ITextEditor *editor, int cursorPos); void continueInferior(); void interruptInferior(); @@ -105,14 +106,16 @@ private: void reloadFullStack() {} bool supportsThreads() const { return false; } - void updateWatchData(const Internal::WatchData &data, const Internal::WatchUpdateFlags &flags); - void executeDebuggerCommand(const QString& command); + void updateWatchData(const Internal::WatchData &data, + const Internal::WatchUpdateFlags &flags); + void executeDebuggerCommand(const QString &command); unsigned int debuggerCapabilities() const; signals: void sendMessage(const QByteArray &msg); - void tooltipRequested(const QPoint &mousePos, TextEditor::ITextEditor *editor, int cursorPos); + void tooltipRequested(const QPoint &mousePos, + TextEditor::ITextEditor *editor, int cursorPos); private slots: void connectionEstablished(); @@ -126,7 +129,8 @@ private: bool isShadowBuildProject() const; QString fromShadowBuildFilename(const QString &filename) const; - QString mangleFilenamePaths(const QString &filename, const QString &oldBasePath, const QString &newBasePath) const; + QString mangleFilenamePaths(const QString &filename, + const QString &oldBasePath, const QString &newBasePath) const; QString toShadowBuildFilename(const QString &filename) const; QString qmlImportPath() const;