本文整理汇总了C++中QVersitProperty::setValueType方法的典型用法代码示例。如果您正苦于以下问题:C++ QVersitProperty::setValueType方法的具体用法?C++ QVersitProperty::setValueType怎么用?C++ QVersitProperty::setValueType使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QVersitProperty
的用法示例。
在下文中一共展示了QVersitProperty::setValueType方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: codec
void tst_QVCard21Writer::testEncodeVersitProperty_data()
{
QTest::addColumn<QVersitProperty>("property");
QTest::addColumn<QByteArray>("expectedResult");
QTest::addColumn<QByteArray>("codec");
QVersitProperty property;
QByteArray expectedResult;
QByteArray codec("ISO-8859_1");
// normal case
property.setName(QString::fromLatin1("FN"));
property.setValue(QString::fromLatin1("John Citizen"));
property.setValueType(QVersitProperty::PlainType);
expectedResult = "FN:John Citizen\r\n";
QTest::newRow("No parameters") << property << expectedResult << codec;
// Structured N - escaping should happen for semicolons, not for commas
property.setName(QStringLiteral("N"));
property.setValue(QStringList()
<< QStringLiteral("La;st") // needs to be backslash escaped
<< QStringLiteral("Fi,rst")
<< QStringLiteral("Mi:ddle")
<< QStringLiteral("Pr\\efix") // needs to be QP encoded
<< QStringLiteral("Suffix"));
property.setValueType(QVersitProperty::CompoundType);
expectedResult = "N;ENCODING=QUOTED-PRINTABLE:La\\;st;Fi,rst;Mi:ddle;Pr=5Cefix;Suffix\r\n";
QTest::newRow("N property") << property << expectedResult << codec;
// Structured N - there was a bug where if two fields had to be escaped,
// two ENCODING parameters were added
property.setName(QStringLiteral("N"));
property.setValue(QStringList()
<< QStringLiteral("La\\st")
<< QStringLiteral("Fi\\rst")
<< QString()
<< QString()
<< QString());
property.setValueType(QVersitProperty::CompoundType);
expectedResult = "N;ENCODING=QUOTED-PRINTABLE:La=5Cst;Fi=5Crst;;;\r\n";
QTest::newRow("N property, double-encoded") << property << expectedResult << codec;
// Structured N - one field needs to be encoded in UTF-8 while the other doesn't
// correct behaviour is to encode the whole thing in UTF-8
property.setName(QStringLiteral("N"));
property.setValue(QStringList()
<< QString::fromUtf8("\xE2\x82\xAC") // euro sign
<< QString::fromLatin1("\xA3") // pound sign (upper Latin-1)
<< QString()
<< QString()
<< QString());
property.setValueType(QVersitProperty::CompoundType);
expectedResult = "N;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:=E2=82=AC;=C2=A3;;;\r\n";
QTest::newRow("N property, double-encoded") << property << expectedResult << codec;
// Structured CATEGORIES - escaping should happen for commas, not semicolons
property.setName(QStringLiteral("CATEGORIES"));
property.setValue(QStringList()
<< QStringLiteral("re;d")
<< QStringLiteral("gr,een")
<< QStringLiteral("bl:ue"));
property.setValueType(QVersitProperty::ListType);
expectedResult = "CATEGORIES:re;d,gr\\,een,bl:ue\r\n";
QTest::newRow("CATEGORIES property") << property << expectedResult << codec;
// With parameter(s). No special characters in the value.
// -> No need to Quoted-Printable encode the value.
expectedResult = "TEL;HOME:123\r\n";
property.setName(QString::fromLatin1("TEL"));
property.setValue(QString::fromLatin1("123"));
property.insertParameter(QString::fromLatin1("TYPE"),QString::fromLatin1("HOME"));
QTest::newRow("With parameters, plain value") << property << expectedResult << codec;
expectedResult = "EMAIL;HOME;ENCODING=QUOTED-PRINTABLE:john.citizen=40example.com\r\n";
property.setName(QString::fromLatin1("EMAIL"));
property.setValue(QString::fromLatin1("[email protected]"));
QTest::newRow("With parameters, special value") << property << expectedResult << codec;
// AGENT property with parameter
expectedResult =
"AGENT;X-PARAMETER=VALUE:\r\n\
BEGIN:VCARD\r\n\
VERSION:2.1\r\n\
FN:Secret Agent\r\n\
END:VCARD\r\n\
\r\n";
property.setParameters(QMultiHash<QString,QString>());
property.setName(QString::fromLatin1("AGENT"));
property.setValue(QString());
property.insertParameter(QString::fromLatin1("X-PARAMETER"),QString::fromLatin1("VALUE"));
QVersitDocument document(QVersitDocument::VCard21Type);
document.setComponentType(QStringLiteral("VCARD"));
QVersitProperty embeddedProperty;
embeddedProperty.setName(QString(QString::fromLatin1("FN")));
embeddedProperty.setValue(QString::fromLatin1("Secret Agent"));
document.addProperty(embeddedProperty);
property.setValue(QVariant::fromValue(document));
QTest::newRow("AGENT property") << property << expectedResult << codec;
// Value is base64 encoded.
//.........这里部分代码省略.........
示例2: document
void tst_QVCard30Writer::testEncodeVersitProperty_data()
{
QTest::addColumn<QVersitProperty>("property");
QTest::addColumn<QByteArray>("expectedResult");
QVersitProperty property;
QByteArray expectedResult;
// No parameters
expectedResult = "FN:John Citizen\r\n";
property.setName(QString::fromAscii("FN"));
property.setValue(QString::fromAscii("John Citizen"));
QTest::newRow("No parameters") << property << expectedResult;
// With parameter(s)
expectedResult = "TEL;TYPE=HOME:123\r\n";
property.setName(QString::fromAscii("TEL"));
property.setValue(QString::fromAscii("123"));
property.insertParameter(QString::fromAscii("TYPE"),QString::fromAscii("HOME"));
QTest::newRow("With parameters, plain value") << property << expectedResult;
// normal FN property is backslash escaped
property.clear();
property.setName(QLatin1String("FN"));
property.setValue(QLatin1String(";,:\\"));
// semicolons, commas and backslashes are escaped (not colons, as per RFC2426)
expectedResult = "FN:\\;\\,:\\\\\r\n";
QTest::newRow("FN property") << property << expectedResult;
// Structured N
property.setName(QLatin1String("N"));
property.setValue(QStringList()
<< QLatin1String("La;st") // needs to be backslash escaped
<< QLatin1String("Fi,rst")
<< QLatin1String("Mi:ddle")
<< QLatin1String("Pr\\efix") // needs to be QP encoded
<< QLatin1String("Suffix"));
property.setValueType(QVersitProperty::CompoundType);
expectedResult = "N:La\\;st;Fi\\,rst;Mi:ddle;Pr\\\\efix;Suffix\r\n";
QTest::newRow("N property") << property << expectedResult;
// Structured CATEGORIES
property.setName(QLatin1String("CATEGORIES"));
property.setValue(QStringList()
<< QLatin1String("re;d")
<< QLatin1String("gr,een")
<< QLatin1String("bl:ue")
<< QLatin1String("ye\\llow"));
property.setValueType(QVersitProperty::ListType);
expectedResult = "CATEGORIES:re\\;d,gr\\,een,bl:ue,ye\\\\llow\r\n";
QTest::newRow("CATEGORIES property") << property << expectedResult;
// Convert X-NICKNAME to NICKNAME
expectedResult = "NICKNAME:Jack\r\n";
property.setParameters(QMultiHash<QString,QString>());
property.setName(QString::fromAscii("X-NICKNAME"));
property.setValue(QString::fromAscii("Jack"));
QTest::newRow("NICKNAME property") << property << expectedResult;
// Convert X-IMPP to IMPP;
expectedResult = "IMPP:msn:msn-address\r\n";
property.setParameters(QMultiHash<QString,QString>());
property.setName(QString::fromAscii("X-IMPP"));
property.setValue(QString::fromAscii("msn:msn-address"));
QTest::newRow("IMPP property") << property << expectedResult;
// AGENT property
expectedResult = "AGENT:BEGIN:VCARD\\nVERSION:3.0\\nFN:Secret Agent\\nEND:VCARD\\n\r\n";
property.setName(QString::fromAscii("AGENT"));
property.setValue(QString());
QVersitDocument document(QVersitDocument::VCard30Type);
document.setComponentType(QLatin1String("VCARD"));
QVersitProperty embeddedProperty;
embeddedProperty.setName(QString(QString::fromAscii("FN")));
embeddedProperty.setValue(QString::fromAscii("Secret Agent"));
document.addProperty(embeddedProperty);
property.setValue(QVariant::fromValue(document));
QTest::newRow("AGENT property") << property << expectedResult;
// Value is base64 encoded.
QByteArray value("value");
expectedResult = "Springfield.HOUSE.PHOTO;ENCODING=b:" + value.toBase64() + "\r\n";
QStringList groups(QString::fromAscii("Springfield"));
groups.append(QString::fromAscii("HOUSE"));
property.setGroups(groups);
property.setParameters(QMultiHash<QString,QString>());
property.setName(QString::fromAscii("PHOTO"));
property.setValue(value);
QTest::newRow("base64 encoded") << property << expectedResult;
// Characters other than ASCII:
expectedResult = "ORG:" + KATAKANA_NOKIA.toUtf8() + "\r\n";
property = QVersitProperty();
property.setName(QLatin1String("ORG"));
property.setValue(KATAKANA_NOKIA);
QTest::newRow("non-ASCII") << property << expectedResult;
// No CHARSET and QUOTED-PRINTABLE parameters
expectedResult = "EMAIL:[email protected]" + KATAKANA_NOKIA.toUtf8() + ".com\r\n";
property = QVersitProperty();
//.........这里部分代码省略.........
示例3: testWritingDocument_data
void tst_QVersitWriter::testWritingDocument_data()
{
QTest::addColumn<QVersitDocument>("document");
QTest::addColumn<QByteArray>("expected");
QVersitDocument document(QVersitDocument::VCard21Type);
document.setComponentType(QStringLiteral("VCARD"));
QVersitProperty property;
property.setName(QStringLiteral("FN"));
property.setValue(QStringLiteral("Bob"));
document.addProperty(property);
QTest::newRow("basic vCard 2.1") << document << QByteArray(
"BEGIN:VCARD\r\n"
"VERSION:2.1\r\n"
"FN:Bob\r\n"
"END:VCARD\r\n"
);
document.setComponentType(QStringLiteral("VCARD"));
document.setType(QVersitDocument::VCard30Type);
QTest::newRow("basic vCard 3.0") << document << QByteArray(
"BEGIN:VCARD\r\n"
"VERSION:3.0\r\n"
"FN:Bob\r\n"
"END:VCARD\r\n"
);
document.setComponentType(QStringLiteral("VCARD"));
document.setType(QVersitDocument::VCard40Type);
QTest::newRow("basic vCard 4.0") << document << QByteArray(
"BEGIN:VCARD\r\n"
"VERSION:4.0\r\n"
"FN:Bob\r\n"
"END:VCARD\r\n"
);
{
QVersitDocument document(QVersitDocument::ICalendar20Type);
document.setComponentType(QStringLiteral("VCALENDAR"));
QVersitDocument subdocument(QVersitDocument::ICalendar20Type);
subdocument.setComponentType(QStringLiteral("VEVENT"));
property.setValueType(QVersitProperty::PreformattedType);
property.setName(QStringLiteral("RRULE"));
property.setValue(QStringLiteral("FREQ=MONTHLY;BYMONTHDAY=1,3"));
subdocument.addProperty(property);
document.addSubDocument(subdocument);
QTest::newRow("basic iCalendar 2.0") << document << QByteArray(
"BEGIN:VCALENDAR\r\n"
"VERSION:2.0\r\n"
"BEGIN:VEVENT\r\n"
"RRULE:FREQ=MONTHLY;BYMONTHDAY=1,3\r\n"
"END:VEVENT\r\n"
"END:VCALENDAR\r\n");
}
{
QVersitDocument document(QVersitDocument::ICalendar20Type);
document.setComponentType(QStringLiteral("VCALENDAR"));
QVersitProperty property;
property.setName(QStringLiteral("PRODID"));
property.setValue(QStringLiteral("-//hacksw/handcal//NONSGML v1.0//EN"));
document.addProperty(property);
QVersitDocument nested(QVersitDocument::ICalendar20Type);
nested.setComponentType(QStringLiteral("VEVENT"));
property.setName(QStringLiteral("DTSTART"));
property.setValue(QStringLiteral("19970714T170000Z"));
nested.addProperty(property);
property.setName(QStringLiteral("DTEND"));
property.setValue(QStringLiteral("19970715T035959Z"));
nested.addProperty(property);
property.setName(QStringLiteral("SUMMARY"));
property.setValue(QStringLiteral("Bastille Day Party"));
nested.addProperty(property);
document.addSubDocument(nested);
QTest::newRow("iCalendar 2.0 from spec") << document << QByteArray(
"BEGIN:VCALENDAR\r\n"
"VERSION:2.0\r\n"
"PRODID:-//hacksw/handcal//NONSGML v1.0//EN\r\n"
"BEGIN:VEVENT\r\n"
"DTSTART:19970714T170000Z\r\n"
"DTEND:19970715T035959Z\r\n"
"SUMMARY:Bastille Day Party\r\n"
"END:VEVENT\r\n"
"END:VCALENDAR\r\n");
}
{
QString longString(QLatin1String(
"4567890123456789012345678901234567890123456789012345678901234567890123456"
"234567890123456789012345678901234567890123456789012345678901234567890123456"
"234567890123456789012"));
QVersitDocument document(QVersitDocument::VCard21Type);
document.setComponentType(QStringLiteral("VCARD"));
QVersitProperty property;
property.setName(QStringLiteral("FN"));
property.setValue(longString);
document.addProperty(property);
QByteArray expected21(
"BEGIN:VCARD\r\n"
"VERSION:2.1\r\n"
//.........这里部分代码省略.........