OSDN Git Service

S60: Split up starters into a different file.
authorFriedemann Kleint <Friedemann.Kleint@nokia.com>
Mon, 26 Oct 2009 11:18:14 +0000 (12:18 +0100)
committerFriedemann Kleint <Friedemann.Kleint@nokia.com>
Mon, 26 Oct 2009 11:18:14 +0000 (12:18 +0100)
src/plugins/debugger/gdb/s60debuggerbluetoothstarter.cpp
src/plugins/debugger/gdb/s60debuggerbluetoothstarter.h
src/plugins/qt4projectmanager/qt-s60/s60runconfigbluetoothstarter.cpp
src/plugins/qt4projectmanager/qt-s60/s60runconfigbluetoothstarter.h
src/shared/trk/bluetoothlistener.cpp
src/shared/trk/bluetoothlistener.h
src/shared/trk/bluetoothlistener_gui.cpp
src/shared/trk/communicationstarter.cpp [new file with mode: 0644]
src/shared/trk/communicationstarter.h [new file with mode: 0644]
src/shared/trk/trk.pri
tests/manual/trklauncher/main.cpp

index b1d34f4..8dcfa4b 100644 (file)
@@ -28,6 +28,7 @@
 **************************************************************************/
 
 #include "s60debuggerbluetoothstarter.h"
+#include "bluetoothlistener.h"
 #include "debuggermanager.h"
 
 namespace Debugger {
index 216ab80..226e000 100644 (file)
@@ -30,7 +30,7 @@
 #ifndef S60DEBUGGERBLUETOOTHSTARTER_H
 #define S60DEBUGGERBLUETOOTHSTARTER_H
 
-#include "bluetoothlistener.h"
+#include "communicationstarter.h"
 
 namespace Debugger {
 namespace Internal {
index 305d917..1481dca 100644 (file)
@@ -28,6 +28,7 @@
 **************************************************************************/
 
 #include "s60runconfigbluetoothstarter.h"
+#include "bluetoothlistener.h"
 
 #include <coreplugin/icore.h>
 #include <coreplugin/messagemanager.h>
index 340f740..0da8817 100644 (file)
@@ -30,7 +30,7 @@
 #ifndef S60RUNCONFIGBLUETOOTHSTARTER_H
 #define S60RUNCONFIGBLUETOOTHSTARTER_H
 
-#include "bluetoothlistener.h"
+#include "communicationstarter.h"
 
 namespace Qt4ProjectManager {
 namespace Internal {
index 6b22dea..1f5ccbe 100644 (file)
@@ -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
index 581a32c..a20ba30 100644 (file)
 
 #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
index 9723a36..ee21c82 100644 (file)
@@ -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 (file)
index 0000000..58a954c
--- /dev/null
@@ -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 (file)
index 0000000..e90578d
--- /dev/null
@@ -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
index 8965948..5b0e067 100644 (file)
@@ -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
index e9847d3..3533663 100644 (file)
@@ -1,5 +1,5 @@
 #include "launcher.h"
-#include "bluetoothlistener.h"
+#include "communicationstarter.h"
 
 #include <QtCore/QCoreApplication>
 #include <QtCore/QSharedPointer>