static QNdefMessage _bookmarkToMessage(QString url, QString name, QString icon) { (void) icon; QNdefMessage message; QNdefNfcUriRecord u; u.setUri(url); if (name != "") { SmartPosterRecord sp; sp.setUri(u); QNdefNfcTextRecord t; t.setText(name); t.setLocale(Util::currentLanguageCode()); QList<QNdefNfcTextRecord> ts; ts << t; sp.setTitles(ts); message << sp; } else { message << u; } return message; }
void TextRecordEditor::setRecord(const QNdefNfcTextRecord &textRecord) { ui->text->setText(textRecord.text()); ui->locale->setText(textRecord.locale()); if (textRecord.encoding() == QNdefNfcTextRecord::Utf8) ui->encoding->setCurrentIndex(0); else if (textRecord.encoding() == QNdefNfcTextRecord::Utf16) ui->encoding->setCurrentIndex(1); }
void tst_QNdefRecord::tst_textRecord() { QFETCH(QString, locale); QFETCH(QString, text); QFETCH(bool, utf8); QFETCH(QByteArray, payload); // test setters { QNdefNfcTextRecord record; record.setLocale(locale); record.setText(text); record.setEncoding(utf8 ? QNdefNfcTextRecord::Utf8 : QNdefNfcTextRecord::Utf16); QCOMPARE(record.payload(), payload); QVERIFY(record != QNdefRecord()); } // test getters { QNdefNfcTextRecord record; record.setPayload(payload); QCOMPARE(record.locale(), locale); QCOMPARE(record.text(), text); QCOMPARE(record.encoding() == QNdefNfcTextRecord::Utf8, utf8); } // test copy { QNdefRecord record; record.setTypeNameFormat(QNdefRecord::NfcRtd); record.setType("T"); record.setPayload(payload); QVERIFY(!record.isRecordType<QNdefRecord>()); QVERIFY(record.isRecordType<QNdefNfcTextRecord>()); QVERIFY(!record.isRecordType<QNdefNfcUriRecord>()); QNdefNfcTextRecord textRecord(record); QVERIFY(!textRecord.isEmpty()); QVERIFY(record == textRecord); QCOMPARE(textRecord.locale(), locale); QCOMPARE(textRecord.text(), text); QCOMPARE(textRecord.encoding() == QNdefNfcTextRecord::Utf8, utf8); } }
QNdefNfcTextRecord TextRecordEditor::record() const { QNdefNfcTextRecord record; if (ui->encoding->currentIndex() == 0) record.setEncoding(QNdefNfcTextRecord::Utf8); else if (ui->encoding->currentIndex() == 1) record.setEncoding(QNdefNfcTextRecord::Utf16); record.setLocale(ui->locale->text()); record.setText(ui->text->text()); return record; }
QNdefNfcTextRecord* NfcModelToNdef::convertTextFromModel(const int startIndex, int& endIndex, bool expectHeader) { QNdefNfcTextRecord* newRecord = new QNdefNfcTextRecord(); int curIndex = startIndex; if (expectHeader) { if (m_recordItems[startIndex]->messageType() != NfcTypes::MsgText || m_recordItems[startIndex]->recordContent() != NfcTypes::RecordHeader) { return newRecord; } // Start at the next item after the header curIndex = startIndex + 1; } bool reachedRecordEnd = false; bool foundText = false; bool foundLocale = false; while (curIndex < m_recordItems.size()) { NfcRecordItem* curItem = m_recordItems[curIndex]; switch (curItem->recordContent()) { case NfcTypes::RecordText: if (foundText) { reachedRecordEnd = true; } else { newRecord->setText(curItem->currentText()); foundText = true; } break; case NfcTypes::RecordTextLanguage: if (foundLocale) { reachedRecordEnd = true; } else { newRecord->setLocale(curItem->currentText()); foundLocale = true; } break; default: // Unknown record content that doesn't belong to this record reachedRecordEnd = true; break; } if (reachedRecordEnd) break; curIndex ++; } endIndex = curIndex; return newRecord; }