diff options
author | Andreas Buhr <andreas@andreasbuhr.de> | 2021-02-09 19:26:33 +0100 |
---|---|---|
committer | Andreas Buhr <andreas@andreasbuhr.de> | 2021-02-12 16:53:26 +0100 |
commit | 3f4d3476d870c06b6c5b93a6fc909a1c9a0e2edc (patch) | |
tree | 5c4bb5db9b78233046830d2844c8bf9e13af180a /examples/bluetooth/btchat | |
parent | 0961f042ee42f00152b7fea3f7b9e8d1727272cf (diff) |
Adapt btchat example for Android
The btchat example was unusable on Android because QListWidget::
itemActivated had to be triggered to select a partner to chat with.
This is impossible on Android. This patch adds a QPushButton to
confirm the chat partner.
Change-Id: I3abb4eb35a983202dc6a7a551419b1c4ba1cfd51
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
Diffstat (limited to 'examples/bluetooth/btchat')
-rw-r--r-- | examples/bluetooth/btchat/remoteselector.cpp | 19 | ||||
-rw-r--r-- | examples/bluetooth/btchat/remoteselector.h | 2 | ||||
-rw-r--r-- | examples/bluetooth/btchat/remoteselector.ui | 10 |
3 files changed, 30 insertions, 1 deletions
diff --git a/examples/bluetooth/btchat/remoteselector.cpp b/examples/bluetooth/btchat/remoteselector.cpp index ec5d207c..4257e90b 100644 --- a/examples/bluetooth/btchat/remoteselector.cpp +++ b/examples/bluetooth/btchat/remoteselector.cpp @@ -141,7 +141,6 @@ void RemoteSelector::discoveryFinished() void RemoteSelector::on_remoteDevices_itemActivated(QListWidgetItem *item) { - qDebug() << "got click" << item->text(); m_service = m_discoveredServices.value(item); if (m_discoveryAgent->isActive()) m_discoveryAgent->stop(); @@ -149,6 +148,24 @@ void RemoteSelector::on_remoteDevices_itemActivated(QListWidgetItem *item) accept(); } +void RemoteSelector::on_remoteDevices_itemClicked(QListWidgetItem *) +{ + ui->connectButton->setEnabled(true); +} + +void RemoteSelector::on_connectButton_clicked() +{ + auto items = ui->remoteDevices->selectedItems(); + if (items.size()) { + QListWidgetItem *item = items[0]; + m_service = m_discoveredServices.value(item); + if (m_discoveryAgent->isActive()) + m_discoveryAgent->stop(); + + accept(); + } +} + void RemoteSelector::on_cancelButton_clicked() { reject(); diff --git a/examples/bluetooth/btchat/remoteselector.h b/examples/bluetooth/btchat/remoteselector.h index 54649ba9..d5de3492 100644 --- a/examples/bluetooth/btchat/remoteselector.h +++ b/examples/bluetooth/btchat/remoteselector.h @@ -91,7 +91,9 @@ private slots: void serviceDiscovered(const QBluetoothServiceInfo &serviceInfo); void discoveryFinished(); void on_remoteDevices_itemActivated(QListWidgetItem *item); + void on_remoteDevices_itemClicked(QListWidgetItem *item); void on_cancelButton_clicked(); + void on_connectButton_clicked(); }; #endif // REMOTESELECTOR_H diff --git a/examples/bluetooth/btchat/remoteselector.ui b/examples/bluetooth/btchat/remoteselector.ui index d415f416..108ae885 100644 --- a/examples/bluetooth/btchat/remoteselector.ui +++ b/examples/bluetooth/btchat/remoteselector.ui @@ -25,6 +25,16 @@ <widget class="QListWidget" name="remoteDevices"/> </item> <item> + <widget class="QPushButton" name="connectButton"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="text"> + <string>Connect</string> + </property> + </widget> + </item> + <item> <widget class="QPushButton" name="cancelButton"> <property name="text"> <string>Cancel</string> |