diff options
Diffstat (limited to 'examples/ndefeditor')
-rw-r--r-- | examples/ndefeditor/mainwindow.cpp | 51 | ||||
-rw-r--r-- | examples/ndefeditor/mainwindow.h | 1 | ||||
-rw-r--r-- | examples/ndefeditor/mainwindow.ui | 7 |
3 files changed, 50 insertions, 9 deletions
diff --git a/examples/ndefeditor/mainwindow.cpp b/examples/ndefeditor/mainwindow.cpp index 7e6997e719..eaf33f5f90 100644 --- a/examples/ndefeditor/mainwindow.cpp +++ b/examples/ndefeditor/mainwindow.cpp @@ -139,8 +139,6 @@ MainWindow::MainWindow(QWidget *parent) this, SLOT(targetDetected(QNearFieldTarget*))); connect(m_manager, SIGNAL(targetLost(QNearFieldTarget*)), this, SLOT(targetLost(QNearFieldTarget*))); - - m_manager->startTargetDetection(); } MainWindow::~MainWindow() @@ -207,6 +205,7 @@ void MainWindow::touchReceive() m_touchAction = ReadNdef; m_manager->setTargetAccessModes(QNearFieldManager::NdefReadTargetAccess); + m_manager->startTargetDetection(); } void MainWindow::touchStore() @@ -216,6 +215,7 @@ void MainWindow::touchStore() m_touchAction = WriteNdef; m_manager->setTargetAccessModes(QNearFieldManager::NdefWriteTargetAccess); + m_manager->startTargetDetection(); } void MainWindow::targetDetected(QNearFieldTarget *target) @@ -229,14 +229,14 @@ void MainWindow::targetDetected(QNearFieldTarget *target) connect(target, SIGNAL(error(QNearFieldTarget::Error,QNearFieldTarget::RequestId)), this, SLOT(targetError(QNearFieldTarget::Error,QNearFieldTarget::RequestId))); - target->readNdefMessages(); + m_request = target->readNdefMessages(); break; case WriteNdef: connect(target, SIGNAL(ndefMessagesWritten()), this, SLOT(ndefMessageWritten())); connect(target, SIGNAL(error(QNearFieldTarget::Error,QNearFieldTarget::RequestId)), this, SLOT(targetError(QNearFieldTarget::Error,QNearFieldTarget::RequestId))); - target->writeNdefMessages(QList<QNdefMessage>() << ndefMessage()); + m_request = target->writeNdefMessages(QList<QNdefMessage>() << ndefMessage()); break; } } @@ -267,12 +267,18 @@ void MainWindow::ndefMessageRead(const QNdefMessage &message) ui->status->setStyleSheet(QString()); m_manager->setTargetAccessModes(QNearFieldManager::NoTargetAccess); + m_manager->stopTargetDetection(); + m_request = QNearFieldTarget::RequestId(); + ui->statusBar->clearMessage(); } void MainWindow::ndefMessageWritten() { ui->status->setStyleSheet(QString()); m_manager->setTargetAccessModes(QNearFieldManager::NoTargetAccess); + m_manager->stopTargetDetection(); + m_request = QNearFieldTarget::RequestId(); + ui->statusBar->clearMessage(); } void MainWindow::targetError(QNearFieldTarget::Error error, const QNearFieldTarget::RequestId &id) @@ -280,8 +286,41 @@ void MainWindow::targetError(QNearFieldTarget::Error error, const QNearFieldTarg Q_UNUSED(error); Q_UNUSED(id); - ui->status->setStyleSheet(QString()); - m_manager->setTargetAccessModes(QNearFieldManager::NoTargetAccess); + if (m_request == id) { + switch (error) { + case QNearFieldTarget::NoError: + ui->statusBar->clearMessage(); + break; + case QNearFieldTarget::UnsupportedError: + ui->statusBar->showMessage(tr("Unsupported tag")); + break; + case QNearFieldTarget::TargetOutOfRangeError: + ui->statusBar->showMessage(tr("Tag removed from field")); + break; + case QNearFieldTarget::NoResponseError: + ui->statusBar->showMessage(tr("No response from tag")); + break; + case QNearFieldTarget::ChecksumMismatchError: + ui->statusBar->showMessage(tr("Checksum mismatch")); + break; + case QNearFieldTarget::InvalidParametersError: + ui->statusBar->showMessage(tr("Invalid parameters")); + break; + case QNearFieldTarget::NdefReadError: + ui->statusBar->showMessage(tr("NDEF read error")); + break; + case QNearFieldTarget::NdefWriteError: + ui->statusBar->showMessage(tr("NDEF write error")); + break; + default: + ui->statusBar->showMessage(tr("Unknown error")); + } + + ui->status->setStyleSheet(QString()); + m_manager->setTargetAccessModes(QNearFieldManager::NoTargetAccess); + m_manager->stopTargetDetection(); + m_request = QNearFieldTarget::RequestId(); + } } void MainWindow::clearMessage() diff --git a/examples/ndefeditor/mainwindow.h b/examples/ndefeditor/mainwindow.h index 47bfdffa67..ae3d975455 100644 --- a/examples/ndefeditor/mainwindow.h +++ b/examples/ndefeditor/mainwindow.h @@ -101,6 +101,7 @@ private: QNearFieldManager *m_manager; TouchAction m_touchAction; + QNearFieldTarget::RequestId m_request; }; #endif // MAINWINDOW_H diff --git a/examples/ndefeditor/mainwindow.ui b/examples/ndefeditor/mainwindow.ui index f3e38bfbe0..adffa33116 100644 --- a/examples/ndefeditor/mainwindow.ui +++ b/examples/ndefeditor/mainwindow.ui @@ -6,7 +6,7 @@ <rect> <x>0</x> <y>0</y> - <width>551</width> + <width>553</width> <height>397</height> </rect> </property> @@ -120,8 +120,8 @@ <rect> <x>0</x> <y>0</y> - <width>551</width> - <height>355</height> + <width>553</width> + <height>335</height> </rect> </property> </widget> @@ -129,6 +129,7 @@ </item> </layout> </widget> + <widget class="QStatusBar" name="statusBar"/> </widget> <layoutdefault spacing="6" margin="11"/> <resources/> |