QtNFC: remove QNearFieldTarget::ndefMessagesWritten signal

ndefMessagesWritten signal basically duplicates the requestCompleted
signal, but does not provide a request id parameter to track, which
messages were actually written. Given that, the signal is removed. One
should now use requestCompleted and check the request id instead.

[ChangeLog][QtNFC][QNearFieldTarget] Remove ndefMessagesWritten signal.
Use requestCompleted signal instead.

Task-number: QTBUG-93854
Change-Id: Ic7f97eabfa83879b0da0cf34310a2982621cf8de
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
This commit is contained in:
Ivan Solovev 2021-05-25 17:13:34 +02:00
parent e7f77b79a3
commit 47d54961c7
12 changed files with 24 additions and 31 deletions

View File

@ -56,7 +56,7 @@ Tag by calling the method QNearFieldManager::startTargetDetection.
Once the target is detected the MainWindow connects the following
signals to its internal private slots:
QNearFieldTarget::ndefMessageRead, QNearFieldTarget::NdefReadError,
QNearFieldTarget::ndefMessagesWritten,
QNearFieldTarget::requestCompleted,
QNearFieldTarget::NdefWriteError and QNearFieldTarget::error
\snippet ndefeditor/mainwindow.cpp QNearFieldTarget detected

View File

@ -242,7 +242,7 @@ void MainWindow::targetDetected(QNearFieldTarget *target)
targetError(QNearFieldTarget::NdefReadError, m_request);
break;
case WriteNdef:
connect(target, &QNearFieldTarget::ndefMessagesWritten, this, &MainWindow::ndefMessageWritten);
connect(target, &QNearFieldTarget::requestCompleted, this, &MainWindow::ndefMessageWritten);
connect(target, &QNearFieldTarget::error, this, &MainWindow::targetError);
m_request = target->writeNdefMessages(QList<QNdefMessage>() << ndefMessage());
@ -287,12 +287,14 @@ void MainWindow::ndefMessageRead(const QNdefMessage &message)
ui->statusBar->clearMessage();
}
void MainWindow::ndefMessageWritten()
void MainWindow::ndefMessageWritten(const QNearFieldTarget::RequestId &id)
{
ui->status->setStyleSheet(QString());
m_manager->stopTargetDetection();
m_request = QNearFieldTarget::RequestId();
ui->statusBar->clearMessage();
if (id == m_request) {
ui->status->setStyleSheet(QString());
m_manager->stopTargetDetection();
m_request = QNearFieldTarget::RequestId();
ui->statusBar->clearMessage();
}
}
void MainWindow::targetError(QNearFieldTarget::Error error, const QNearFieldTarget::RequestId &id)

View File

@ -91,7 +91,7 @@ private slots:
void targetLost(QNearFieldTarget *target);
void ndefMessageRead(const QNdefMessage &message);
void ndefMessageWritten();
void ndefMessageWritten(const QNearFieldTarget::RequestId &id);
void targetError(QNearFieldTarget::Error error, const QNearFieldTarget::RequestId &id);
private:

View File

@ -12,3 +12,4 @@ This document lists the API changed done to QtNFC between Qt 5.15 and Qt 6.
- Added NfcTagType4A and NfcTagType4B to QNearFieldTarget::Type.
- Changed the type of typeInfo in QNdefNfcSmartPosterRecord from QByteArray to QString.
- Removed TargetAccessModes, setTargetAccessModes and targetAccessModes from QNearFieldManager. No replacement available.
- Removed ndefMessagesWritten signal. A requestCompleted signal is used instead.

View File

@ -115,6 +115,7 @@ may consist of zero or more \l QNdefRecord entries, which can be identified by t
For more information about processing of records, see the \l QNdefRecord class documentation.
As the above code demonstrates, writing of NDEF messages is triggered via
\l QNearFieldTarget::writeNdefMessages(). The successful completion of the write operation
is indicated by the emission of the \l QNearFieldTarget::ndefMessagesWritten() signal. Any
type of error during read or write is indicated via \l QNearFieldTarget::error().
is indicated by the emission of the \l QNearFieldTarget::requestCompleted() signal with the
corresponding request id. Any type of error during read or write is indicated via
\l QNearFieldTarget::error().
*/

View File

@ -300,7 +300,6 @@ void QNearFieldTagType1Private::progressToNextNdefWriteMessageState()
m_writeNdefMessageState = NotWritingNdefMessage;
delete m_tlvWriter;
m_tlvWriter = nullptr;
Q_EMIT q->ndefMessagesWritten();
Q_EMIT q->requestCompleted(m_writeNdefRequestId);
m_writeNdefRequestId = QNearFieldTarget::RequestId();
} else {

View File

@ -138,14 +138,6 @@ QT_BEGIN_NAMESPACE
\sa readNdefMessages()
*/
/*!
\fn void QNearFieldTarget::ndefMessagesWritten()
This signal is emitted when NDEF messages have been successfully written to the target.
\sa writeNdefMessages()
*/
/*!
\fn void QNearFieldTarget::requestCompleted(const QNearFieldTarget::RequestId &id)
@ -347,7 +339,7 @@ QNearFieldTarget::RequestId QNearFieldTarget::readNdefMessages()
to track the completion status of the request. An invalid request id will be returned if the
target does not support reading NDEF messages.
The ndefMessagesWritten() signal will be emitted when the write operation completes
The requestCompleted() signal will be emitted when the write operation completes
successfully; otherwise the error() signal is emitted.
*/
QNearFieldTarget::RequestId QNearFieldTarget::writeNdefMessages(const QList<QNdefMessage> &messages)
@ -431,8 +423,6 @@ QNearFieldTarget::QNearFieldTarget(QNearFieldTargetPrivate *backend, QObject *pa
this, &QNearFieldTarget::disconnected);
connect(d, &QNearFieldTargetPrivate::ndefMessageRead,
this, &QNearFieldTarget::ndefMessageRead);
connect(d, &QNearFieldTargetPrivate::ndefMessagesWritten,
this, &QNearFieldTarget::ndefMessagesWritten);
connect(d, &QNearFieldTargetPrivate::requestCompleted,
this, &QNearFieldTarget::requestCompleted);
connect(d, &QNearFieldTargetPrivate::error,

View File

@ -142,7 +142,6 @@ Q_SIGNALS:
void disconnected();
void ndefMessageRead(const QNdefMessage &message);
void ndefMessagesWritten();
void requestCompleted(const QNearFieldTarget::RequestId &id);

View File

@ -300,7 +300,9 @@ QNearFieldTarget::RequestId QNearFieldTargetPrivateImpl::writeNdefMessages(const
return requestId;
}
QMetaObject::invokeMethod(this, &QNearFieldTargetPrivate::ndefMessagesWritten, Qt::QueuedConnection);
QMetaObject::invokeMethod(this, [this, requestId]() {
Q_EMIT this->requestCompleted(requestId);
}, Qt::QueuedConnection);
return requestId;
}

View File

@ -97,7 +97,6 @@ Q_SIGNALS:
void disconnected();
void ndefMessageRead(const QNdefMessage &message);
void ndefMessagesWritten();
void requestCompleted(const QNearFieldTarget::RequestId &id);

View File

@ -422,7 +422,6 @@ void tst_QNearFieldTagType1::ndefMessages()
requestCompletedSpy.clear();
errorSpy.clear();
QSignalSpy ndefMessageWriteSpy(target, SIGNAL(ndefMessagesWritten()));
QNearFieldTarget::RequestId writeId = target->writeNdefMessages(messages);
QVERIFY(writeId.isValid());
@ -436,8 +435,6 @@ void tst_QNearFieldTagType1::ndefMessages()
requestCompletedSpy.takeFirst().first().value<QNearFieldTarget::RequestId>();
}
QVERIFY(!ndefMessageWriteSpy.isEmpty());
QVERIFY(target->hasNdefMessage());
ndefMessageReadSpy.clear();

View File

@ -311,10 +311,13 @@ void tst_QNearFieldTagType2::ndefMessages()
messages.append(message);
QSignalSpy ndefMessageWriteSpy(target, SIGNAL(ndefMessagesWritten()));
target->writeNdefMessages(messages);
QSignalSpy requestCompleteSpy(target, &QNearFieldTagType2::requestCompleted);
id = target->writeNdefMessages(messages);
QTRY_VERIFY(!ndefMessageWriteSpy.isEmpty());
QTRY_VERIFY(!requestCompleteSpy.isEmpty());
const auto completedId =
requestCompleteSpy.takeFirst().first().value<QNearFieldTarget::RequestId>();
QCOMPARE(completedId, id);
QVERIFY(target->hasNdefMessage());