diff options
-rw-r--r-- | examples/bluetooth/btfiletransfer/remoteselector.cpp | 35 | ||||
-rw-r--r-- | examples/bluetooth/btfiletransfer/remoteselector.h | 2 |
2 files changed, 26 insertions, 11 deletions
diff --git a/examples/bluetooth/btfiletransfer/remoteselector.cpp b/examples/bluetooth/btfiletransfer/remoteselector.cpp index 84619a4e..08072d14 100644 --- a/examples/bluetooth/btfiletransfer/remoteselector.cpp +++ b/examples/bluetooth/btfiletransfer/remoteselector.cpp @@ -59,7 +59,8 @@ QT_USE_NAMESPACE RemoteSelector::RemoteSelector(QWidget *parent) : QDialog(parent), ui(new Ui::RemoteSelector), - m_localDevice(new QBluetoothLocalDevice), m_pindisplay(0) + m_localDevice(new QBluetoothLocalDevice), m_pindisplay(0), + m_pairingError(false) { ui->setupUi(this); @@ -85,9 +86,14 @@ RemoteSelector::RemoteSelector(QWidget *parent) ui->remoteDevices->setColumnWidth(3, 75); ui->remoteDevices->setColumnWidth(4, 100); - connect(m_localDevice, SIGNAL(pairingDisplayPinCode(QBluetoothAddress,QString)), this, SLOT(displayPin(QBluetoothAddress,QString))); - connect(m_localDevice, SIGNAL(pairingDisplayConfirmation(QBluetoothAddress,QString)), this, SLOT(displayConfirmation(QBluetoothAddress,QString))); - connect(m_localDevice, SIGNAL(pairingFinished(QBluetoothAddress,QBluetoothLocalDevice::Pairing)), this, SLOT(pairingFinished(QBluetoothAddress,QBluetoothLocalDevice::Pairing))); + connect(m_localDevice, SIGNAL(pairingDisplayPinCode(QBluetoothAddress,QString)), + this, SLOT(displayPin(QBluetoothAddress,QString))); + connect(m_localDevice, SIGNAL(pairingDisplayConfirmation(QBluetoothAddress,QString)), + this, SLOT(displayConfirmation(QBluetoothAddress,QString))); + connect(m_localDevice, SIGNAL(pairingFinished(QBluetoothAddress,QBluetoothLocalDevice::Pairing)), + this, SLOT(pairingFinished(QBluetoothAddress,QBluetoothLocalDevice::Pairing))); + connect(m_localDevice, SIGNAL(error(QBluetoothLocalDevice::Error)), + this, SLOT(pairingError(QBluetoothLocalDevice::Error))); ui->busyWidget->setMovie(new QMovie(":/icons/busy.gif")); ui->busyWidget->movie()->start(); @@ -97,8 +103,6 @@ RemoteSelector::RemoteSelector(QWidget *parent) ui->remoteDevices->clearContents(); ui->remoteDevices->setRowCount(0); - - } RemoteSelector::~RemoteSelector() @@ -324,12 +328,13 @@ void RemoteSelector::pairingFinished(const QBluetoothAddress &address, QBluetoot delete m_pindisplay; QMessageBox msgBox; - if (status == QBluetoothLocalDevice::Paired || - status == QBluetoothLocalDevice::AuthorizedPaired){ - msgBox.setText("Paired successfully with" + address.toString()); - } - else { + if (m_pairingError) { msgBox.setText("Pairing failed with " + address.toString()); + } else if (status == QBluetoothLocalDevice::Paired + || status == QBluetoothLocalDevice::AuthorizedPaired) { + msgBox.setText("Paired successfully with " + address.toString()); + } else { + msgBox.setText("Pairing released with " + address.toString()); } if (service.isValid()){ @@ -347,11 +352,19 @@ void RemoteSelector::pairingFinished(const QBluetoothAddress &address, QBluetoot } } + m_pairingError = false; msgBox.exec(); ui->remoteDevices->blockSignals(false); +} +void RemoteSelector::pairingError(QBluetoothLocalDevice::Error error) +{ + if (error != QBluetoothLocalDevice::PairingError) + return; + m_pairingError = true; + pairingFinished(m_service.device().address(), QBluetoothLocalDevice::Unpaired); } void RemoteSelector::on_remoteDevices_cellClicked(int row, int column) diff --git a/examples/bluetooth/btfiletransfer/remoteselector.h b/examples/bluetooth/btfiletransfer/remoteselector.h index fe1d3966..ec2e4fd5 100644 --- a/examples/bluetooth/btfiletransfer/remoteselector.h +++ b/examples/bluetooth/btfiletransfer/remoteselector.h @@ -83,6 +83,7 @@ private: QFile *m_file; QBluetoothLocalDevice *m_localDevice; QPointer<pinDisplay> m_pindisplay; + bool m_pairingError; QString addressToName(const QBluetoothAddress &address); @@ -98,6 +99,7 @@ private slots: void on_stopButton_clicked(); void pairingFinished(const QBluetoothAddress &address,QBluetoothLocalDevice::Pairing pairing); + void pairingError(QBluetoothLocalDevice::Error error); void displayPin(const QBluetoothAddress &address, QString pin); void displayConfirmation(const QBluetoothAddress &address, QString pin); void displayConfReject(); |