summaryrefslogtreecommitdiffstats
path: root/examples/ndefeditor
diff options
context:
space:
mode:
Diffstat (limited to 'examples/ndefeditor')
-rw-r--r--examples/ndefeditor/mainwindow.cpp51
-rw-r--r--examples/ndefeditor/mainwindow.h1
-rw-r--r--examples/ndefeditor/mainwindow.ui7
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/>