Add a dialog for remote Bluetooth devices selection

Implement a dialog which can be used for remote Bluetooth devices
selection and to control the local Bluetooth device.
Functionalities of the widget:
 - expose information about the local BT device
 - scan for remote BT devices
 - pair/unpair with a remote BT device
 - turn on/off the local BT device
 - logging
 - save the selected BT device

The selection dialog is created when the bluetoothMode checkbox
is enabled.

Signed-off-by: Claudiu Olteanu <olteanu.claudiu@ymail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Claudiu Olteanu 2015-07-06 16:35:13 +03:00 committed by Dirk Hohndel
parent b4c4d95ea4
commit dff4e5f33e
7 changed files with 553 additions and 4 deletions

View file

@ -0,0 +1,46 @@
#ifndef BTDEVICESELECTIONDIALOG_H
#define BTDEVICESELECTIONDIALOG_H
#include <QDialog>
#include <QListWidgetItem>
#include <QPointer>
#include <QtBluetooth/QBluetoothLocalDevice>
#include <QtBluetooth/qbluetoothglobal.h>
#include <QtBluetooth/QBluetoothDeviceDiscoveryAgent>
Q_DECLARE_METATYPE(QBluetoothDeviceInfo)
namespace Ui {
class BtDeviceSelectionDialog;
}
class BtDeviceSelectionDialog : public QDialog {
Q_OBJECT
public:
explicit BtDeviceSelectionDialog(QWidget *parent = 0);
~BtDeviceSelectionDialog();
QString getSelectedDeviceAddress();
QString getSelectedDeviceName();
private slots:
void on_changeDeviceState_clicked();
void on_save_clicked();
void on_clear_clicked();
void on_scan_clicked();
void remoteDeviceScanFinished();
void hostModeStateChanged(QBluetoothLocalDevice::HostMode mode);
void addRemoteDevice(const QBluetoothDeviceInfo &remoteDeviceInfo);
void itemActivated(QListWidgetItem *item);
void displayPairingMenu(const QPoint &pos);
void pairingFinished(const QBluetoothAddress &address,QBluetoothLocalDevice::Pairing pairing);
void error(QBluetoothLocalDevice::Error error);
private:
Ui::BtDeviceSelectionDialog *ui;
QBluetoothLocalDevice *localDevice;
QBluetoothDeviceDiscoveryAgent *remoteDeviceDiscoveryAgent;
QSharedPointer<QBluetoothDeviceInfo> selectedRemoteDeviceInfo;
};
#endif // BTDEVICESELECTIONDIALOG_H