From 47035f381706d62de9689501e5e9ba400b01782c Mon Sep 17 00:00:00 2001 From: Friedemann Kleint <Friedemann.Kleint@nokia.com> Date: Mon, 26 Oct 2009 12:18:14 +0100 Subject: [PATCH] S60: Split up starters into a different file. --- .../gdb/s60debuggerbluetoothstarter.cpp | 1 + .../gdb/s60debuggerbluetoothstarter.h | 2 +- .../qt-s60/s60runconfigbluetoothstarter.cpp | 1 + .../qt-s60/s60runconfigbluetoothstarter.h | 2 +- src/shared/trk/bluetoothlistener.cpp | 193 --------------- src/shared/trk/bluetoothlistener.h | 85 ------- src/shared/trk/bluetoothlistener_gui.cpp | 1 + src/shared/trk/communicationstarter.cpp | 228 ++++++++++++++++++ src/shared/trk/communicationstarter.h | 125 ++++++++++ src/shared/trk/trk.pri | 6 +- tests/manual/trklauncher/main.cpp | 2 +- 11 files changed, 363 insertions(+), 283 deletions(-) create mode 100644 src/shared/trk/communicationstarter.cpp create mode 100644 src/shared/trk/communicationstarter.h diff --git a/src/plugins/debugger/gdb/s60debuggerbluetoothstarter.cpp b/src/plugins/debugger/gdb/s60debuggerbluetoothstarter.cpp index b1d34f4ff3a..8dcfa4b9042 100644 --- a/src/plugins/debugger/gdb/s60debuggerbluetoothstarter.cpp +++ b/src/plugins/debugger/gdb/s60debuggerbluetoothstarter.cpp @@ -28,6 +28,7 @@ **************************************************************************/ #include "s60debuggerbluetoothstarter.h" +#include "bluetoothlistener.h" #include "debuggermanager.h" namespace Debugger { diff --git a/src/plugins/debugger/gdb/s60debuggerbluetoothstarter.h b/src/plugins/debugger/gdb/s60debuggerbluetoothstarter.h index 216ab80a4b9..226e00072ac 100644 --- a/src/plugins/debugger/gdb/s60debuggerbluetoothstarter.h +++ b/src/plugins/debugger/gdb/s60debuggerbluetoothstarter.h @@ -30,7 +30,7 @@ #ifndef S60DEBUGGERBLUETOOTHSTARTER_H #define S60DEBUGGERBLUETOOTHSTARTER_H -#include "bluetoothlistener.h" +#include "communicationstarter.h" namespace Debugger { namespace Internal { diff --git a/src/plugins/qt4projectmanager/qt-s60/s60runconfigbluetoothstarter.cpp b/src/plugins/qt4projectmanager/qt-s60/s60runconfigbluetoothstarter.cpp index 305d917597d..1481dcacbc9 100644 --- a/src/plugins/qt4projectmanager/qt-s60/s60runconfigbluetoothstarter.cpp +++ b/src/plugins/qt4projectmanager/qt-s60/s60runconfigbluetoothstarter.cpp @@ -28,6 +28,7 @@ **************************************************************************/ #include "s60runconfigbluetoothstarter.h" +#include "bluetoothlistener.h" #include <coreplugin/icore.h> #include <coreplugin/messagemanager.h> diff --git a/src/plugins/qt4projectmanager/qt-s60/s60runconfigbluetoothstarter.h b/src/plugins/qt4projectmanager/qt-s60/s60runconfigbluetoothstarter.h index 340f74082f4..0da8817b323 100644 --- a/src/plugins/qt4projectmanager/qt-s60/s60runconfigbluetoothstarter.h +++ b/src/plugins/qt4projectmanager/qt-s60/s60runconfigbluetoothstarter.h @@ -30,7 +30,7 @@ #ifndef S60RUNCONFIGBLUETOOTHSTARTER_H #define S60RUNCONFIGBLUETOOTHSTARTER_H -#include "bluetoothlistener.h" +#include "communicationstarter.h" namespace Qt4ProjectManager { namespace Internal { diff --git a/src/shared/trk/bluetoothlistener.cpp b/src/shared/trk/bluetoothlistener.cpp index 6b22dea6d4c..1f5ccbe51b4 100644 --- a/src/shared/trk/bluetoothlistener.cpp +++ b/src/shared/trk/bluetoothlistener.cpp @@ -31,8 +31,6 @@ #include "trkdevice.h" #include <QtCore/QDebug> -#include <QtCore/QTimer> -#include <QtCore/QEventLoop> #ifdef Q_OS_UNIX # include <unistd.h> @@ -211,195 +209,4 @@ void BluetoothListener::slotProcessError(QProcess::ProcessError error) .arg(d->device).arg(error).arg(d->process.errorString())); } -// --------------- AbstractBluetoothStarter -struct AbstractBluetoothStarterPrivate { - explicit AbstractBluetoothStarterPrivate(const AbstractBluetoothStarter::TrkDevicePtr &d); - - const AbstractBluetoothStarter::TrkDevicePtr trkDevice; - BluetoothListener *listener; - QTimer *timer; - int intervalMS; - int attempts; - int n; - QString device; - QString errorString; - AbstractBluetoothStarter::State state; -}; - -AbstractBluetoothStarterPrivate::AbstractBluetoothStarterPrivate(const AbstractBluetoothStarter::TrkDevicePtr &d) : - - trkDevice(d), - listener(0), - timer(0), - intervalMS(1000), - attempts(-1), - n(0), - device(QLatin1String("/dev/rfcomm0")), - state(AbstractBluetoothStarter::TimedOut) -{ -} - -AbstractBluetoothStarter::AbstractBluetoothStarter(const TrkDevicePtr &trkDevice, QObject *parent) : - QObject(parent), - d(new AbstractBluetoothStarterPrivate(trkDevice)) -{ -} - -AbstractBluetoothStarter::~AbstractBluetoothStarter() -{ - stopTimer(); - delete d; -} - -void AbstractBluetoothStarter::stopTimer() -{ - if (d->timer && d->timer->isActive()) - d->timer->stop(); -} - -AbstractBluetoothStarter::StartResult AbstractBluetoothStarter::start() -{ - if (state() == Running) { - d->errorString = QLatin1String("Internal error, attempt to re-start AbstractBluetoothStarter.\n"); - return StartError; - } - // Before we instantiate timers, and such, try to open the device, - // which should succeed if another listener is already running in - // 'Watch' mode - if (d->trkDevice->open(d->device , &(d->errorString))) - return ConnectionSucceeded; - // Fire up the listener - d->n = 0; - d->listener = createListener(); - if (!d->listener->start(d->device, &(d->errorString))) - return StartError; - // Start timer - if (!d->timer) { - d->timer = new QTimer; - connect(d->timer, SIGNAL(timeout()), this, SLOT(slotTimer())); - } - d->timer->setInterval(d->intervalMS); - d->timer->setSingleShot(false); - d->timer->start(); - d->state = Running; - return Started; -} - -AbstractBluetoothStarter::State AbstractBluetoothStarter::state() const -{ - return d->state; -} - -int AbstractBluetoothStarter::intervalMS() const -{ - return d->intervalMS; -} - -void AbstractBluetoothStarter::setIntervalMS(int i) -{ - d->intervalMS = i; - if (d->timer) - d->timer->setInterval(i); -} - -int AbstractBluetoothStarter::attempts() const -{ - return d->attempts; -} - -void AbstractBluetoothStarter::setAttempts(int a) -{ - d->attempts = a; -} - -QString AbstractBluetoothStarter::device() const -{ - return d->device; -} - -void AbstractBluetoothStarter::setDevice(const QString &dv) -{ - d->device = dv; -} - -QString AbstractBluetoothStarter::errorString() const -{ - return d->errorString; -} - -void AbstractBluetoothStarter::slotTimer() -{ - ++d->n; - // Check for timeout - if (d->attempts >= 0 && d->n >= d->attempts) { - stopTimer(); - d->errorString = tr("%1: timed out after %n attempts using an interval of %2ms.", 0, d->n) - .arg(d->device).arg(d->intervalMS); - d->state = TimedOut; - emit timeout(); - } else { - // Attempt n to connect? - if (d->trkDevice->open(d->device , &(d->errorString))) { - stopTimer(); - const QString msg = tr("%1: Connection attempt %2 succeeded.").arg(d->device).arg(d->n); - d->listener->emitMessage(msg); - d->state = Connected; - emit connected(); - } else { - const QString msg = tr("%1: Connection attempt %2 failed: %3 (retrying)...") - .arg(d->device).arg(d->n).arg(d->errorString); - d->listener->emitMessage(msg); - } - } -} - -// -------- ConsoleBluetoothStarter -ConsoleBluetoothStarter::ConsoleBluetoothStarter(const TrkDevicePtr &trkDevice, - QObject *listenerParent, - QObject *parent) : - AbstractBluetoothStarter(trkDevice, parent), - m_listenerParent(listenerParent) -{ -} - -BluetoothListener *ConsoleBluetoothStarter::createListener() -{ - BluetoothListener *rc = new BluetoothListener(m_listenerParent); - rc->setMode(BluetoothListener::Listen); - rc->setPrintConsoleMessages(true); - return rc; -} - -bool ConsoleBluetoothStarter::startBluetooth(const TrkDevicePtr &trkDevice, - QObject *listenerParent, - const QString &device, - int attempts, - QString *errorMessage) -{ - // Set up a console starter to print to stdout. - ConsoleBluetoothStarter starter(trkDevice, listenerParent); - starter.setDevice(device); - starter.setAttempts(attempts); - switch (starter.start()) { - case Started: - break; - case ConnectionSucceeded: - return true; - case StartError: - *errorMessage = starter.errorString(); - return false; - } - // Run the starter with an event loop. @ToDo: Implement - // some asynchronous keypress read to cancel. - QEventLoop eventLoop; - connect(&starter, SIGNAL(connected()), &eventLoop, SLOT(quit())); - connect(&starter, SIGNAL(timeout()), &eventLoop, SLOT(quit())); - eventLoop.exec(QEventLoop::ExcludeUserInputEvents); - if (starter.state() != AbstractBluetoothStarter::Connected) { - *errorMessage = starter.errorString(); - return false; - } - return true; -} - } // namespace trk diff --git a/src/shared/trk/bluetoothlistener.h b/src/shared/trk/bluetoothlistener.h index 581a32cde1a..a20ba307534 100644 --- a/src/shared/trk/bluetoothlistener.h +++ b/src/shared/trk/bluetoothlistener.h @@ -32,12 +32,9 @@ #include <QtCore/QObject> #include <QtCore/QProcess> -#include <QtCore/QSharedPointer> namespace trk { -class TrkDevice; struct BluetoothListenerPrivate; -struct AbstractBluetoothStarterPrivate; /* BluetoothListener: Starts a helper process watching connections on a * Bluetooth device, Linux only: @@ -87,88 +84,6 @@ private: BluetoothListenerPrivate *d; }; -/* AbstractBluetoothStarter: Repeatedly tries to open a trk device - * until a connection succeeds, allowing to do something else in the - * foreground (local event loop or asynchronous operation). - * Note that in case a Listener is already running in watch mode, it might - * also happen that connection succeeds immediately. - * Implementations must provide a factory function that creates and sets up the - * listener (mode, message connection, etc). */ - -class AbstractBluetoothStarter : public QObject { - Q_OBJECT - Q_DISABLE_COPY(AbstractBluetoothStarter) -public: - typedef QSharedPointer<TrkDevice> TrkDevicePtr; - - enum State { Running, Connected, TimedOut }; - - virtual ~AbstractBluetoothStarter(); - - int intervalMS() const; - void setIntervalMS(int i); - - int attempts() const; - void setAttempts(int a); - - QString device() const; - void setDevice(const QString &); - - State state() const; - QString errorString() const; - - enum StartResult { - Started, // Starter is now running. - ConnectionSucceeded, /* Initial connection attempt succeeded, - * no need to keep running. */ - StartError // Error occurred during start. - }; - - StartResult start(); - -signals: - void connected(); - void timeout(); - -private slots: - void slotTimer(); - -protected: - explicit AbstractBluetoothStarter(const TrkDevicePtr& trkDevice, QObject *parent = 0); - // Overwrite to create and parametrize the listener. - virtual BluetoothListener *createListener() = 0; - -private: - inline void stopTimer(); - - AbstractBluetoothStarterPrivate *d; -}; - -/* ConsoleBluetoothStarter: Convenience class for console processes. Creates a - * listener in "Listen" mode with the messages redirected to standard output. */ - -class ConsoleBluetoothStarter : public AbstractBluetoothStarter { - Q_OBJECT - Q_DISABLE_COPY(ConsoleBluetoothStarter) -public: - - static bool startBluetooth(const TrkDevicePtr& trkDevice, - QObject *listenerParent, - const QString &device, - int attempts, - QString *errorMessage); - -protected: - virtual BluetoothListener *createListener(); - -private: - explicit ConsoleBluetoothStarter(const TrkDevicePtr& trkDevice, - QObject *listenerParent, - QObject *parent = 0); - - QObject *m_listenerParent; -}; - } // namespace trk #endif // BLUETOOTHLISTENER_H diff --git a/src/shared/trk/bluetoothlistener_gui.cpp b/src/shared/trk/bluetoothlistener_gui.cpp index 9723a36d9d6..ee21c82a7c5 100644 --- a/src/shared/trk/bluetoothlistener_gui.cpp +++ b/src/shared/trk/bluetoothlistener_gui.cpp @@ -29,6 +29,7 @@ #include "bluetoothlistener_gui.h" #include "bluetoothlistener.h" +#include "communicationstarter.h" #include <QtGui/QMessageBox> #include <QtGui/QPushButton> diff --git a/src/shared/trk/communicationstarter.cpp b/src/shared/trk/communicationstarter.cpp new file mode 100644 index 00000000000..58a954cd26b --- /dev/null +++ b/src/shared/trk/communicationstarter.cpp @@ -0,0 +1,228 @@ +/************************************************************************** +** +** This file is part of Qt Creator +** +** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +** +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** Commercial Usage +** +** Licensees holding valid Qt Commercial licenses may use this file in +** accordance with the Qt Commercial License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Nokia. +** +** GNU Lesser General Public License Usage +** +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** +**************************************************************************/ + +#include "communicationstarter.h" +#include "bluetoothlistener.h" +#include "trkdevice.h" + +#include <QtCore/QTimer> +#include <QtCore/QEventLoop> + +namespace trk { +// --------------- AbstractBluetoothStarter +struct AbstractBluetoothStarterPrivate { + explicit AbstractBluetoothStarterPrivate(const AbstractBluetoothStarter::TrkDevicePtr &d); + + const AbstractBluetoothStarter::TrkDevicePtr trkDevice; + BluetoothListener *listener; + QTimer *timer; + int intervalMS; + int attempts; + int n; + QString device; + QString errorString; + AbstractBluetoothStarter::State state; +}; + +AbstractBluetoothStarterPrivate::AbstractBluetoothStarterPrivate(const AbstractBluetoothStarter::TrkDevicePtr &d) : + + trkDevice(d), + listener(0), + timer(0), + intervalMS(1000), + attempts(-1), + n(0), + device(QLatin1String("/dev/rfcomm0")), + state(AbstractBluetoothStarter::TimedOut) +{ +} + +AbstractBluetoothStarter::AbstractBluetoothStarter(const TrkDevicePtr &trkDevice, QObject *parent) : + QObject(parent), + d(new AbstractBluetoothStarterPrivate(trkDevice)) +{ +} + +AbstractBluetoothStarter::~AbstractBluetoothStarter() +{ + stopTimer(); + delete d; +} + +void AbstractBluetoothStarter::stopTimer() +{ + if (d->timer && d->timer->isActive()) + d->timer->stop(); +} + +AbstractBluetoothStarter::StartResult AbstractBluetoothStarter::start() +{ + if (state() == Running) { + d->errorString = QLatin1String("Internal error, attempt to re-start AbstractBluetoothStarter.\n"); + return StartError; + } + // Before we instantiate timers, and such, try to open the device, + // which should succeed if another listener is already running in + // 'Watch' mode + if (d->trkDevice->open(d->device , &(d->errorString))) + return ConnectionSucceeded; + // Fire up the listener + d->n = 0; + d->listener = createListener(); + if (!d->listener->start(d->device, &(d->errorString))) + return StartError; + // Start timer + if (!d->timer) { + d->timer = new QTimer; + connect(d->timer, SIGNAL(timeout()), this, SLOT(slotTimer())); + } + d->timer->setInterval(d->intervalMS); + d->timer->setSingleShot(false); + d->timer->start(); + d->state = Running; + return Started; +} + +AbstractBluetoothStarter::State AbstractBluetoothStarter::state() const +{ + return d->state; +} + +int AbstractBluetoothStarter::intervalMS() const +{ + return d->intervalMS; +} + +void AbstractBluetoothStarter::setIntervalMS(int i) +{ + d->intervalMS = i; + if (d->timer) + d->timer->setInterval(i); +} + +int AbstractBluetoothStarter::attempts() const +{ + return d->attempts; +} + +void AbstractBluetoothStarter::setAttempts(int a) +{ + d->attempts = a; +} + +QString AbstractBluetoothStarter::device() const +{ + return d->device; +} + +void AbstractBluetoothStarter::setDevice(const QString &dv) +{ + d->device = dv; +} + +QString AbstractBluetoothStarter::errorString() const +{ + return d->errorString; +} + +void AbstractBluetoothStarter::slotTimer() +{ + ++d->n; + // Check for timeout + if (d->attempts >= 0 && d->n >= d->attempts) { + stopTimer(); + d->errorString = tr("%1: timed out after %n attempts using an interval of %2ms.", 0, d->n) + .arg(d->device).arg(d->intervalMS); + d->state = TimedOut; + emit timeout(); + } else { + // Attempt n to connect? + if (d->trkDevice->open(d->device , &(d->errorString))) { + stopTimer(); + const QString msg = tr("%1: Connection attempt %2 succeeded.").arg(d->device).arg(d->n); + d->listener->emitMessage(msg); + d->state = Connected; + emit connected(); + } else { + const QString msg = tr("%1: Connection attempt %2 failed: %3 (retrying)...") + .arg(d->device).arg(d->n).arg(d->errorString); + d->listener->emitMessage(msg); + } + } +} + +// -------- ConsoleBluetoothStarter +ConsoleBluetoothStarter::ConsoleBluetoothStarter(const TrkDevicePtr &trkDevice, + QObject *listenerParent, + QObject *parent) : +AbstractBluetoothStarter(trkDevice, parent), +m_listenerParent(listenerParent) +{ +} + +BluetoothListener *ConsoleBluetoothStarter::createListener() +{ + BluetoothListener *rc = new BluetoothListener(m_listenerParent); + rc->setMode(BluetoothListener::Listen); + rc->setPrintConsoleMessages(true); + return rc; +} + +bool ConsoleBluetoothStarter::startBluetooth(const TrkDevicePtr &trkDevice, + QObject *listenerParent, + const QString &device, + int attempts, + QString *errorMessage) +{ + // Set up a console starter to print to stdout. + ConsoleBluetoothStarter starter(trkDevice, listenerParent); + starter.setDevice(device); + starter.setAttempts(attempts); + switch (starter.start()) { + case Started: + break; + case ConnectionSucceeded: + return true; + case StartError: + *errorMessage = starter.errorString(); + return false; + } + // Run the starter with an event loop. @ToDo: Implement + // some asynchronous keypress read to cancel. + QEventLoop eventLoop; + connect(&starter, SIGNAL(connected()), &eventLoop, SLOT(quit())); + connect(&starter, SIGNAL(timeout()), &eventLoop, SLOT(quit())); + eventLoop.exec(QEventLoop::ExcludeUserInputEvents); + if (starter.state() != AbstractBluetoothStarter::Connected) { + *errorMessage = starter.errorString(); + return false; + } + return true; +} +} // namespace trk diff --git a/src/shared/trk/communicationstarter.h b/src/shared/trk/communicationstarter.h new file mode 100644 index 00000000000..e90578dc171 --- /dev/null +++ b/src/shared/trk/communicationstarter.h @@ -0,0 +1,125 @@ +/************************************************************************** +** +** This file is part of Qt Creator +** +** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +** +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** Commercial Usage +** +** Licensees holding valid Qt Commercial licenses may use this file in +** accordance with the Qt Commercial License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Nokia. +** +** GNU Lesser General Public License Usage +** +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** +**************************************************************************/ + +#ifndef COMMUNICATIONSTARTER_H +#define COMMUNICATIONSTARTER_H + +#include <QtCore/QSharedPointer> +#include <QtCore/QObject> + +namespace trk { +class TrkDevice; +class BluetoothListener; +struct AbstractBluetoothStarterPrivate; + +/* AbstractBluetoothStarter: Repeatedly tries to open a trk device + * until a connection succeeds, allowing to do something else in the + * foreground (local event loop or asynchronous operation). + * Note that in case a Listener is already running in watch mode, it might + * also happen that connection succeeds immediately. + * Implementations must provide a factory function that creates and sets up the + * listener (mode, message connection, etc). */ + +class AbstractBluetoothStarter : public QObject { + Q_OBJECT + Q_DISABLE_COPY(AbstractBluetoothStarter) +public: + typedef QSharedPointer<TrkDevice> TrkDevicePtr; + + enum State { Running, Connected, TimedOut }; + + virtual ~AbstractBluetoothStarter(); + + int intervalMS() const; + void setIntervalMS(int i); + + int attempts() const; + void setAttempts(int a); + + QString device() const; + void setDevice(const QString &); + + State state() const; + QString errorString() const; + + enum StartResult { + Started, // Starter is now running. + ConnectionSucceeded, /* Initial connection attempt succeeded, + * no need to keep running. */ + StartError // Error occurred during start. + }; + + StartResult start(); + +signals: + void connected(); + void timeout(); + +private slots: + void slotTimer(); + +protected: + explicit AbstractBluetoothStarter(const TrkDevicePtr& trkDevice, QObject *parent = 0); + // Overwrite to create and parametrize the listener. + virtual BluetoothListener *createListener() = 0; + +private: + inline void stopTimer(); + + AbstractBluetoothStarterPrivate *d; +}; + +/* ConsoleBluetoothStarter: Convenience class for console processes. Creates a + * listener in "Listen" mode with the messages redirected to standard output. */ + +class ConsoleBluetoothStarter : public AbstractBluetoothStarter { + Q_OBJECT + Q_DISABLE_COPY(ConsoleBluetoothStarter) +public: + + static bool startBluetooth(const TrkDevicePtr& trkDevice, + QObject *listenerParent, + const QString &device, + int attempts, + QString *errorMessage); + +protected: + virtual BluetoothListener *createListener(); + +private: + explicit ConsoleBluetoothStarter(const TrkDevicePtr& trkDevice, + QObject *listenerParent, + QObject *parent = 0); + + QObject *m_listenerParent; +}; + +} // namespace trk + +#endif // COMMUNICATIONSTARTER_H diff --git a/src/shared/trk/trk.pri b/src/shared/trk/trk.pri index 8965948f194..5b0e067b158 100644 --- a/src/shared/trk/trk.pri +++ b/src/shared/trk/trk.pri @@ -5,12 +5,14 @@ HEADERS += $$PWD/callback.h \ $$PWD/trkutils.h \ $$PWD/trkdevice.h \ $$PWD/launcher.h \ - $$PWD/bluetoothlistener.h + $$PWD/bluetoothlistener.h \ + $$PWD/communicationstarter.h SOURCES += $$PWD/trkutils.cpp \ $$PWD/trkdevice.cpp \ $$PWD/launcher.cpp \ - $$PWD/bluetoothlistener.cpp + $$PWD/bluetoothlistener.cpp \ + $$PWD/communicationstarter.cpp contains(QT, gui) { HEADERS += $$PWD/bluetoothlistener_gui.h diff --git a/tests/manual/trklauncher/main.cpp b/tests/manual/trklauncher/main.cpp index e9847d33b8f..35336632173 100644 --- a/tests/manual/trklauncher/main.cpp +++ b/tests/manual/trklauncher/main.cpp @@ -1,5 +1,5 @@ #include "launcher.h" -#include "bluetoothlistener.h" +#include "communicationstarter.h" #include <QtCore/QCoreApplication> #include <QtCore/QSharedPointer> -- GitLab