summaryrefslogtreecommitdiff
path: root/src/plugins/qnx/blackberrydeviceconfiguration.cpp
diff options
context:
space:
mode:
authorTobias Nätterlund <tobias.naetterlund.qnx@kdab.com>2013-03-14 12:39:17 +0100
committerTobias Nätterlund <tobias.naetterlund@kdab.com>2013-03-28 12:00:51 +0100
commit5c36c594fe38f9825983584598b1bdf8a7351241 (patch)
tree7f9f6be60d0dd1a1972b1d18c73b749f6eb34628 /src/plugins/qnx/blackberrydeviceconfiguration.cpp
parent44200e0feebab4f71bf6d5131905f002b4964137 (diff)
downloadqt-creator-5c36c594fe38f9825983584598b1bdf8a7351241.tar.gz
QNX: Refactored connection handling for BlackBerry devices
The blackberry-connect connection is now established at Qt Creator startup, and taken down when Qt Creator shuts down. The user also has the ability to disconnect manually in the Device settings widget. The connection status is shown in the Devices settings widget, as well as in the project selector. And it is impossible run or debug an application without having the device connected. Change-Id: I64f2e48a647e6d850851d2f20d0ec7bbd5980ea5 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com> Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com> Reviewed-by: Mehdi Fekari <mfekari@rim.com>
Diffstat (limited to 'src/plugins/qnx/blackberrydeviceconfiguration.cpp')
-rw-r--r--src/plugins/qnx/blackberrydeviceconfiguration.cpp27
1 files changed, 24 insertions, 3 deletions
diff --git a/src/plugins/qnx/blackberrydeviceconfiguration.cpp b/src/plugins/qnx/blackberrydeviceconfiguration.cpp
index 3013f321e4..7fd5ac0474 100644
--- a/src/plugins/qnx/blackberrydeviceconfiguration.cpp
+++ b/src/plugins/qnx/blackberrydeviceconfiguration.cpp
@@ -33,6 +33,7 @@
#include "qnxconstants.h"
#include "blackberrydeviceconfigurationwidget.h"
+#include "blackberrydeviceconnectionmanager.h"
#include "blackberrydeviceprocesssupport.h"
#include <projectexplorer/kitinformation.h>
@@ -41,6 +42,11 @@ using namespace Qnx;
using namespace Qnx::Internal;
using namespace ProjectExplorer;
+namespace {
+const char ConnectToDeviceActionId[] = "Qnx.BlackBerry.ConnectToDeviceAction";
+const char DisconnectFromDeviceActionId[] = "Qnx.BlackBerry.DisconnectFromDeviceAction";
+}
+
BlackBerryDeviceConfiguration::BlackBerryDeviceConfiguration()
: RemoteLinux::LinuxDevice()
{
@@ -116,19 +122,34 @@ IDeviceWidget *BlackBerryDeviceConfiguration::createWidget()
QList<Core::Id> BlackBerryDeviceConfiguration::actionIds() const
{
- return QList<Core::Id>();
+ return QList<Core::Id>() << Core::Id(ConnectToDeviceActionId)
+ << Core::Id(DisconnectFromDeviceActionId);
}
QString BlackBerryDeviceConfiguration::displayNameForActionId(Core::Id actionId) const
{
- Q_UNUSED(actionId);
+ if (actionId == Core::Id(ConnectToDeviceActionId))
+ return tr("Connect to device");
+ else if (actionId == Core::Id(DisconnectFromDeviceActionId))
+ return tr("Disconnect from device");
+
return QString();
}
void BlackBerryDeviceConfiguration::executeAction(Core::Id actionId, QWidget *parent) const
{
- Q_UNUSED(actionId);
Q_UNUSED(parent);
+
+ const BlackBerryDeviceConfiguration::ConstPtr device =
+ sharedFromThis().staticCast<const BlackBerryDeviceConfiguration>();
+
+ BlackBerryDeviceConnectionManager *connectionManager =
+ BlackBerryDeviceConnectionManager::instance();
+ if (actionId == Core::Id(ConnectToDeviceActionId))
+ connectionManager->connectDevice(device);
+ else if (actionId == Core::Id(DisconnectFromDeviceActionId)
+ && connectionManager->isConnected(id()))
+ connectionManager->disconnectDevice(device);
}
QVariantMap BlackBerryDeviceConfiguration::toMap() const