void KoPAMasterPage::saveOdf( KoShapeSavingContext & context ) const { KoPASavingContext &paContext = static_cast<KoPASavingContext&>( context ); KoGenStyle pageLayoutStyle = pageLayout().saveOdf(); pageLayoutStyle.setAutoStyleInStylesDotXml( true ); pageLayoutStyle.addAttribute( "style:page-usage", "all" ); QString pageLayoutName( paContext.mainStyles().insert( pageLayoutStyle, "pm" ) ); KoGenStyle pageMaster( KoGenStyle::MasterPageStyle ); pageMaster.addAttribute( "style:page-layout-name", pageLayoutName ); pageMaster.addAttribute( "style:display-name", name() ); pageMaster.addAttribute( "draw:style-name", saveOdfPageStyle( paContext ) ); KoXmlWriter &savedWriter = paContext.xmlWriter(); QBuffer buffer; buffer.open( QIODevice::WriteOnly ); KoXmlWriter xmlWriter( &buffer ); paContext.setXmlWriter( xmlWriter ); saveOdfPageContent( paContext ); paContext.setXmlWriter( savedWriter ); QString contentElement = QString::fromUtf8( buffer.buffer(), buffer.buffer().size() ); pageMaster.addChildElement( paContext.masterPageElementName(), contentElement ); paContext.addMasterPage( this, paContext.mainStyles().insert( pageMaster, "Default" ) ); }
const QString Filterkpr2odf::createMasterPageStyle(const KXmlNode & objects, const KXmlElement & masterBackground) { //KXmlElement header( m_mainDoc.namedItem( "DOC" ).namedItem( "HEADER" ).toElement() ); //KXmlElement footer( m_mainDoc.namedItem( "DOC" ).namedItem( "FOOTER" ).toElement() ); // set that we work on master m_sticky = true; KOdfGenericStyle style(KOdfGenericStyle::MasterPageStyle, ""); style.addAttribute("style:page-layout-name", createPageLayout()); style.addAttribute("draw:style-name", createPageStyle(masterBackground)); QBuffer buffer; buffer.open(QIODevice::WriteOnly); KXmlWriter xmlWriter(&buffer); convertObjects(&xmlWriter, objects); m_sticky = false; QString contentElement = QString::fromUtf8(buffer.buffer(), buffer.buffer().size()); style.addChildElement("master", contentElement); return m_styles.insert(style, "Default"); }
Element* MTest::writeReadElement(Element* element) { // // write element // QBuffer buffer; buffer.open(QIODevice::WriteOnly); Xml xml(&buffer); xml.header(); element->write(xml); buffer.close(); // // read element // // printf("%s\n", buffer.buffer().data()); QDomDocument doc; int line, column; QString err; if (!doc.setContent(buffer.buffer(), &err, &line, &column)) { printf("writeReadElement: error reading paste data at line %d column %d: %s\n", line, column, qPrintable(err)); printf("%s\n", buffer.buffer().data()); return 0; } docName = "--"; QDomElement e = doc.documentElement(); QString tag(e.tagName()); element = Element::name2Element(e.tagName(), score); element->read(e); return element; }
void PSDUtilsTest::test_psdwrite_quint8() { QBuffer buf; buf.open(QBuffer::ReadWrite); quint8 i = 3; QVERIFY(psdwrite(&buf, i)); QCOMPARE(buf.buffer().size(), 1); QCOMPARE(buf.buffer().at(0), '\3'); }
void PSDUtilsTest::test_psdwrite_quint32() { QBuffer buf; buf.open(QBuffer::ReadWrite); quint32 i = 100; QVERIFY(psdwrite(&buf, i)); QCOMPARE(buf.buffer().size(), 4); QCOMPARE(buf.buffer().at(0), '\0'); QCOMPARE(buf.buffer().at(1), '\0'); QCOMPARE(buf.buffer().at(2), '\0'); QCOMPARE(buf.buffer().at(3), 'd'); }
void PSDUtilsTest::test_psdwrite_qstring() { QBuffer buf; buf.open(QBuffer::ReadWrite); QString s = "8BPS"; QVERIFY(psdwrite(&buf, s)); QCOMPARE(buf.buffer().size(), 4); QCOMPARE(buf.buffer().at(0), '8'); QCOMPARE(buf.buffer().at(1), 'B'); QCOMPARE(buf.buffer().at(2), 'P'); QCOMPARE(buf.buffer().at(3), 'S'); }
void PSDUtilsTest::test_psdpad() { QBuffer buf; buf.open(QBuffer::ReadWrite); QVERIFY(psdpad(&buf, 6)); QCOMPARE(buf.buffer().size(), 6); QCOMPARE(buf.buffer().at(0), '\0'); QCOMPARE(buf.buffer().at(1), '\0'); QCOMPARE(buf.buffer().at(2), '\0'); QCOMPARE(buf.buffer().at(3), '\0'); QCOMPARE(buf.buffer().at(4), '\0'); QCOMPARE(buf.buffer().at(5), '\0'); }
bool DataBlobVerify::verifyDeserialise() const { _serialise(); static FactoryGeneric<DataBlob> factory(true); DataBlob* copy = factory.create( _blob->type() ); QByteArray tmp( _buffer.data() ); QBuffer buffer2( &tmp ); buffer2.open( QBuffer::ReadOnly ); copy->deserialise( buffer2, QSysInfo::ByteOrder ); QBuffer copyBuffer; copyBuffer.open(QBuffer::WriteOnly); copy->serialise( copyBuffer ); if( copyBuffer.buffer().size() == 0 ) return false; return copyBuffer.buffer() == _buffer.buffer(); }
KOdfGenericStyle KWPageStyle::saveOdf() const { KOdfGenericStyle pageLayout = d->pageLayout.saveOdf(); pageLayout.setAutoStyleInStylesDotXml(true); pageLayout.addAttribute("style:page-usage", "all"); QBuffer buffer; buffer.open(QIODevice::WriteOnly); KXmlWriter writer(&buffer); if (d->columns.columns > 1) { writer.startElement("style:columns"); writer.addAttribute("fo:column-count", d->columns.columns); writer.addAttributePt("fo:column-gap", d->columns.columnSpacing); writer.endElement(); } //<style:footnote-sep style:adjustment="left" style:width="0.5pt" style:rel-width="20%" style:line-style="solid"/> //writer.startElement("style:footnote-sep"); // TODO //writer.addAttribute("style:adjustment",) //writer.addAttribute("style:width",) //writer.addAttribute("style:rel-width",) //writer.addAttribute("style:line-style",) //writer.endElement(); // TODO save background QString contentElement = QString::fromUtf8(buffer.buffer(), buffer.buffer().size()); pageLayout.addChildElement("columnsEnzo", contentElement); if (headerPolicy() != KWord::HFTypeNone) { pageLayout.addProperty("style:dynamic-spacing", d->fixedHeaderSize, KOdfGenericStyle::PageHeaderType); pageLayout.addPropertyPt("fo:min-height", d->headerMinimumHeight, KOdfGenericStyle::PageHeaderType); saveInsets(d->headerMargin, pageLayout, "fo:margin", KOdfGenericStyle::PageHeaderType); saveInsets(d->headerInsets, pageLayout, "fo:padding", KOdfGenericStyle::PageHeaderType); } if (footerPolicy() != KWord::HFTypeNone) { pageLayout.addProperty("style:dynamic-spacing", d->fixedFooterSize, KOdfGenericStyle::PageFooterType); pageLayout.addPropertyPt("fo:min-height", d->footerMinimumHeight, KOdfGenericStyle::PageFooterType); saveInsets(d->footerMargin, pageLayout, "fo:margin", KOdfGenericStyle::PageFooterType); saveInsets(d->footerInsets, pageLayout, "fo:padding", KOdfGenericStyle::PageFooterType); } // TODO see how we should save margins if we use the 'closest to binding' stuff. return pageLayout; }
void tst_QRingBuffer::readPointerAtPositionWriteRead() { //create some data QBuffer inData; inData.open(QIODevice::ReadWrite); inData.putChar(0x42); inData.putChar(0x23); inData.write("Qt rocks!"); for (int i = 0; i < 5000; i++) inData.write(QString("Number %1").arg(i).toUtf8()); inData.reset(); QVERIFY(inData.size() > 0); //put the inData in the QRingBuffer QRingBuffer ringBuffer; qint64 remaining = inData.size(); while (remaining > 0) { // write in chunks of 50 bytes // this ensures there will be multiple QByteArrays inside the QRingBuffer // since QRingBuffer is then only using individual arrays of around 4000 bytes qint64 thisWrite = qMin(remaining, qint64(50)); char *pos = ringBuffer.reserve(thisWrite); inData.read(pos, thisWrite); remaining -= thisWrite; } // was data put into it? QVERIFY(ringBuffer.size() > 0); QCOMPARE(qint64(ringBuffer.size()), inData.size()); //read from the QRingBuffer in loop, put back into another QBuffer QBuffer outData; outData.open(QIODevice::ReadWrite); remaining = ringBuffer.size(); while (remaining > 0) { qint64 thisRead; // always try to read as much as possible const char *buf = ringBuffer.readPointerAtPosition(ringBuffer.size() - remaining, thisRead); outData.write(buf, thisRead); remaining -= thisRead; } outData.reset(); QVERIFY(outData.size() > 0); // was the data read from the QRingBuffer the same as the one written into it? QCOMPARE(outData.size(), inData.size()); QVERIFY(outData.buffer().startsWith(inData.buffer())); }
void TestSymmetricCipher::testAes256CbcEncryption() { // http://csrc.nist.gov/publications/nistpubs/800-38a/sp800-38a.pdf QByteArray key = QByteArray::fromHex("603deb1015ca71be2b73aef0857d77811f352c073b6108d72d9810a30914dff4"); QByteArray iv = QByteArray::fromHex("000102030405060708090a0b0c0d0e0f"); QByteArray plainText = QByteArray::fromHex("6bc1bee22e409f96e93d7e117393172a"); plainText.append(QByteArray::fromHex("ae2d8a571e03ac9c9eb76fac45af8e51")); QByteArray cipherText = QByteArray::fromHex("f58c4c04d6e5f1ba779eabfb5f7bfbd6"); cipherText.append(QByteArray::fromHex("9cfc4e967edb808d679f777bc6702c7d")); bool ok; SymmetricCipher cipher(SymmetricCipher::Aes256, SymmetricCipher::Cbc, SymmetricCipher::Encrypt); QVERIFY(cipher.init(key, iv)); QCOMPARE(cipher.blockSize(), 16); QCOMPARE(cipher.process(plainText, &ok), cipherText); QVERIFY(ok); QBuffer buffer; SymmetricCipherStream stream(&buffer, SymmetricCipher::Aes256, SymmetricCipher::Cbc, SymmetricCipher::Encrypt); QVERIFY(stream.init(key, iv)); buffer.open(QIODevice::WriteOnly); QVERIFY(stream.open(QIODevice::WriteOnly)); QVERIFY(stream.reset()); buffer.reset(); buffer.buffer().clear(); QCOMPARE(stream.write(plainText.left(16)), qint64(16)); QCOMPARE(buffer.data(), cipherText.left(16)); QVERIFY(stream.reset()); // make sure padding is written QCOMPARE(buffer.data().size(), 32); buffer.reset(); buffer.buffer().clear(); QCOMPARE(stream.write(plainText.left(10)), qint64(10)); QVERIFY(buffer.data().isEmpty()); QVERIFY(stream.reset()); buffer.reset(); buffer.buffer().clear(); QCOMPARE(stream.write(plainText.left(10)), qint64(10)); stream.close(); QCOMPARE(buffer.data().size(), 16); }
void dataExport() { QFETCH(QString, fileIn); QFETCH(QString, fileOut); QFETCH(QString, exportPrefix); QFETCH(QList<QLandmark>, waypoints); QFETCH(QList<QList<QLandmark> >, tracks); QFETCH(QList<QList<QLandmark> >, routes); m_handler->setWaypoints(waypoints); m_handler->setTracks(tracks); m_handler->setRoutes(routes); QBuffer buffer; buffer.open(QIODevice::WriteOnly); QVERIFY(m_handler->exportData(&buffer, exportPrefix)); QByteArray dataExported = buffer.buffer(); buffer.close(); QFile file(fileOut); file.open(QIODevice::ReadOnly); QByteArray testData = file.readAll(); file.close(); QCOMPARE(dataExported, testData); }
QString FLUtil::sha1( const QString & str ) { QBuffer b; b.open( IO_WriteOnly ); QTextStream t( &b ); t << str; b.close(); FLSha1 sha1; sha1.Update(( unsigned char * ) b.buffer().data(), b.buffer().size() ); sha1.Final(); char strC[ 255 ]; strC[ 0 ] = '\0'; sha1.ReportHash( strC ); return strC; }
void HttpInfoReceiver::packageDataWritten( qint64 bytes ) { if ( fetcher->httpRequestAborted ) return; fetcher->packageData->close(); fetcher->packageData->open( QIODevice::ReadOnly ); while ( true ) { lineString += fetcher->packageData->readLine( bytes ); if ( !lineString.contains( "\n" )) { goto out_recv_data; } reader->readLine( lineString ); lineString = ""; } out_recv_data: fetcher->packageData->close(); //if downloading a package list clear buffer QBuffer *buf = qobject_cast<QBuffer *>(fetcher->packageData); if ( buf ) buf->buffer().clear(); fetcher->packageData->open( QIODevice::WriteOnly ); }
void TestSymmetricCipher::testPadding() { QByteArray key = QByteArray::fromHex("603deb1015ca71be2b73aef0857d77811f352c073b6108d72d9810a30914dff4"); QByteArray iv = QByteArray::fromHex("000102030405060708090a0b0c0d0e0f"); QByteArray plainText = QByteArray::fromHex("6bc1bee22e409f96e93d"); QBuffer buffer; buffer.open(QIODevice::ReadWrite); SymmetricCipherStream streamEnc(&buffer, SymmetricCipher::Aes256, SymmetricCipher::Cbc, SymmetricCipher::Encrypt); QVERIFY(streamEnc.init(key, iv)); streamEnc.open(QIODevice::WriteOnly); streamEnc.write(plainText); streamEnc.close(); buffer.reset(); // make sure padding is written QCOMPARE(buffer.buffer().size(), 16); SymmetricCipherStream streamDec(&buffer, SymmetricCipher::Aes256, SymmetricCipher::Cbc, SymmetricCipher::Decrypt); QVERIFY(streamDec.init(key, iv)); streamDec.open(QIODevice::ReadOnly); QByteArray decrypted = streamDec.readAll(); QCOMPARE(decrypted, plainText); }
KoFilter::ConversionStatus VmlDrawingReader::read_xml() { unsigned index = 0; KoXmlWriter *oldBody = 0; while (!atEnd()) { readNext(); if (isEndElement() && qualifiedName() == "xml") { break; } if (isStartElement()) { if (name() == "shapetype") { TRY_READ(shapetype) } else if (name() == "shape") { oldBody = body; // Body protetion starts QBuffer frameBuf; KoXmlWriter frameWriter(&frameBuf); body = &frameWriter; TRY_READ(shape) //from vml m_content[m_currentVMLProperties.currentShapeId] = m_currentVMLProperties.imagedataPath; pushCurrentDrawStyle(new KoGenStyle(KoGenStyle::GraphicAutoStyle, "graphic")); createFrameStart(); popCurrentDrawStyle(); m_frames[m_currentVMLProperties.currentShapeId] = QString::fromUtf8(frameBuf.buffer(), frameBuf.buffer().size()).append(">"); body = oldBody; // Body protection ends ++index; } } } return KoFilter::OK; }
Element* MTest::writeReadElement(Element* element) { // // write element // QBuffer buffer; buffer.open(QIODevice::WriteOnly); Xml xml(&buffer); xml.header(); element->write(xml); buffer.close(); // // read element // // printf("===read <%s>===\n", element->name()); // printf("%s\n", buffer.buffer().data()); XmlReader e(buffer.buffer()); e.readNextStartElement(); QString tag(e.name().toString()); // printf("read tag %s\n", qPrintable(tag)); element = Element::name2Element(e.name(), score); element->read(e); return element; }
bool Document::Save (const QString& path) { std::unique_ptr<Poppler::PDFConverter> conv (PDocument_->pdfConverter ()); conv->setPDFOptions (Poppler::PDFConverter::WithChanges); if (path == DocURL_.toLocalFile ()) { QBuffer buffer; buffer.open (QIODevice::WriteOnly); conv->setOutputDevice (&buffer); if (!conv->convert ()) return false; QFile file (path); if (!file.open (QIODevice::WriteOnly)) return false; file.write (buffer.buffer ()); return true; } else { conv->setOutputFileName (path); return conv->convert (); } }
/** Do an HTTP GET of the directory on the server that has the * available traceroute sets. The directory listing is parsed * for links, and these are appended to the trsets vector. */ bool ServerComm::getTrSets(QStringList& trsets, bool popupOnError) { static bool in_progress = false; if ( in_progress ) return false; //in theory, a race condition is here. in_progress = true; trsets.clear(); QBuffer buf; buf.open(QBuffer::WriteOnly); QUrl url("http://trgen.ixmaps.ca/trsets/"); HttpGet hget(url, &buf); qDebug() << "HttpGet error " << hget.error(); QHttp::Error err = hget.error(); if ( err != QHttp::NoError ) { msgConnFailure(err, popupOnError); in_progress = false; return false; } // scan the Apache directory listing. This makes it easy to change deployment // of batch trace files. // To see what this is parsing, fetch the link in a browser and view source. char prefix_str[] = "<a href=\""; qDebug() << "prefix_str len is " << sizeof(prefix_str); QByteArray ba = buf.buffer(); char *s = ba.data(); qDebug() << "from server got: " << s; char *e = s + ba.count() - (sizeof(prefix_str)+2); // guard against read past buffer end while ( s < e ) { // look for <a href="something.trset" if ( strncmp(s, prefix_str, sizeof(prefix_str)-1) == 0 ) { // found a likely URL char *token = s+sizeof(prefix_str)-1; char *p; for ( p = token; *p != '"'; p++ ) { if ( p >= e ) goto end_buffer; } *p = '\0'; // stomp the closing quote -> string terminator if ( token[0] == '.' && token[1] == '/' ) token += 2; // ignore superfluous ./ in ./something.trset // Apache directory listing contains a few unwanted URLs beginning with ? or / // restrict filenames to those ending with ".trset" if ( token[0] != '?' && token[0] != '/' && strcmp(p-6, ".trset") == 0 ) { QString qstr(token); trsets << qstr; qDebug() << "getTrSets got " << qstr.toAscii().data(); } s = p+1; } else s++; } end_buffer: in_progress = false; return true; }
QString LeechCraft::Util::GetAsBase64Src (const QImage& pix) { QBuffer buf; buf.open (QIODevice::ReadWrite); pix.save (&buf, "PNG", 100); return QString ("data:image/png;base64,%1") .arg (QString (buf.buffer ().toBase64 ())); }
void TestCsvExporter::testEmptyDatabase() { QBuffer buffer; QVERIFY(buffer.open(QIODevice::ReadWrite)); m_csvExporter->exportDatabase(&buffer, m_db); QCOMPARE(QString::fromUtf8(buffer.buffer().constData()), ExpectedHeaderLine); }
const QByteArray KinotifyWidget::MakeImage (const QPixmap& pixmap) { QBuffer iconBuffer; iconBuffer.open (QIODevice::ReadWrite); pixmap.save (&iconBuffer, "PNG"); return QByteArray ("data:image/png;base64,") + iconBuffer.buffer ().toBase64 (); }
int FLDigiDoc::dataDigest(const QString &data, QByteArray &digestResult) { QBuffer b; b.open(IO_WriteOnly); QTextStream t(&b); t << data; b.close(); return dataDigest(b.buffer(), digestResult); }
void Client::requestFinished(int id, bool error) { if ( !d->serverResponses.count(id) ) { return; } #ifdef XMLRPC_DEBUG qDebug() << "request" << d->methodNames[id] << "finished, id=" << id << ", isError:" << error; #endif if ( error ) { //if ( d->serverResponses.count(id) ) QBuffer *buffer = d->serverResponses.take(id); delete buffer; emit failed(id, -32300, d->http->errorString() ); return; } if ( d->serverResponses.count(id) ) { QBuffer *buffer = d->serverResponses.take(id); QByteArray buf = buffer->buffer(); //qDebug() << "xml-rpc server response:\n" << QString(buf); Response response; QString errorMessage; if ( response.setContent( buf, &errorMessage ) ) { Q_ASSERT( !response.isNull() ); if ( response.isFault() ) { qDebug() << "request failed:" << response.faultCode() << response.faultString(); emit failed(id, response.faultCode(), response.faultString() ); } else { #ifdef XMLRPC_DEBUG qDebug() << response.returnValue().pprint(); #endif emit done( id, response.returnValue() ); } } else { #ifdef XMLRPC_DEBUG qDebug() << "incorrect xmlrpc response:" << errorMessage; qDebug() << QString(buf); #endif emit failed(id, -32600, "Server error: Invalid xml-rpc. \nNot conforming to spec."); } delete buffer; } }
bool PictureBase::saveAsBase64(KoXmlWriter& writer) const { QBuffer buffer; buffer.open(QIODevice::ReadWrite); if (!save(&buffer)) return false; QByteArray encoded = buffer.buffer().toBase64(); writer.addTextNode(encoded); return true; }
bool KoOdfWriteStore::closeManifestWriter(bool writeMainfest) { Q_ASSERT(d->manifestWriter); bool ok = true; if (writeMainfest) { d->manifestWriter->endElement(); d->manifestWriter->endDocument(); QBuffer* buffer = static_cast<QBuffer *>(d->manifestWriter->device()); if (d->store->open("META-INF/manifest.xml")) { qint64 written = d->store->write(buffer->buffer()); ok = (written == (qint64) buffer->buffer().size() && d->store->close()); } else { ok = false; } delete buffer; } delete d->manifestWriter; d->manifestWriter = 0; return ok; }
void PSDUtilsTest::test_psdread_pascalstring() { QBuffer buf; QString s; QString r; // test null string buf.open(QBuffer::ReadWrite); QVERIFY(psdwrite_pascalstring(&buf, s)); buf.close(); buf.open(QBuffer::ReadOnly); psdread_pascalstring(&buf, r, 2); QCOMPARE(r, s); QVERIFY(buf.bytesAvailable() == 0); // test even string buf.close(); buf.buffer().clear(); r.clear(); buf.open(QBuffer::ReadWrite); s = QString("bl"); QVERIFY(psdwrite_pascalstring(&buf, s)); buf.close(); buf.open(QBuffer::ReadOnly); psdread_pascalstring(&buf, r, 1); QCOMPARE(r, s); QVERIFY(buf.bytesAvailable() == 0); // test uneven string buf.close(); buf.buffer().clear(); r.clear(); buf.open(QBuffer::ReadWrite); s = QString("bla"); QVERIFY(psdwrite_pascalstring(&buf, s, 2)); buf.close(); buf.open(QBuffer::ReadOnly); psdread_pascalstring(&buf, r, 2); QCOMPARE(r, s); dbgKrita << buf.bytesAvailable(); QVERIFY(buf.bytesAvailable() == 0); }
int FLDigiDoc::dataSignature(const QString &data, QByteArray &signResult, const QString &keyfile, const QString &passwd) { QBuffer b; b.open(IO_WriteOnly); QTextStream t(&b); t << data; b.close(); return dataSignature(b.buffer(), signResult, keyfile, passwd); }
void merge( const QString& newname, const QString& oldname, const QString& resname ) { QFile f1(newname); if ( !f1.open( IO_ReadOnly) ) return; QFile f2(oldname); if ( !f2.open( IO_ReadOnly) ) return; QBuffer fout; fout.open(IO_WriteOnly); QTextStream in1( &f1 ); QTextStream in2( &f2 ); QTextStream out( &fout ); QString buf1 = in1.readLine().stripWhiteSpace(); QString buf2 = in2.readLine().stripWhiteSpace(); Item i1 = getItem( in1, buf1 ); Item i2 = getItem( in2, buf2 ); while ( !i1.isNull() || !i2.isNull() ) { Status s = compare( i1, i2 ); if ( s == Equal ) { writemerge(out,i1,i2); i1 = getItem( in1, buf1 ); i2 = getItem( in2, buf2 ); } else if ( s == First ) { writenew( out, i1 ); i1 = getItem( in1, buf1 ); } else if ( s == FirstJunk ) { //solitary comment writejunk( out, i1 ); i1 = getItem( in1, buf1 ); } else if ( s == Second ) { writeold( out, i2 ); i2 = getItem( in2, buf2 ); } else if ( s == SecondJunk ) { //solitary comment writejunk( out, i2 ); i2 = getItem( in2, buf2 ); } } f1.close(); f2.close(); fout.close(); QFile fileout(resname); if ( !fileout.open( IO_WriteOnly | IO_Translate ) ) return; fileout.writeBlock(fout.buffer()); fileout.close(); }
void TestKoGenStyles::testWriteStyle() { kDebug(); KOdfGenericStyles coll; QBuffer buffer; buffer.open(QIODevice::WriteOnly); KXmlWriter styleChildWriter(&buffer); styleChildWriter.startElement("styleChild"); styleChildWriter.addAttribute("foo", "bar"); styleChildWriter.endElement(); QString styleChildContents = QString::fromUtf8(buffer.buffer(), buffer.buffer().size()); KOdfGenericStyle style(KOdfGenericStyle::ParagraphStyle, "paragraph"); style.addProperty("style:foo", "bar"); style.addProperty("style:paragraph", "property", KOdfGenericStyle::ParagraphType); style.addProperty("style:graphic", "property", KOdfGenericStyle::GraphicType); style.addProperty("styleChild", styleChildContents, KOdfGenericStyle::StyleChildElement); QString styleName = coll.insert(style, "P"); // XML for style TEST_BEGIN(0, 0); style.writeStyle(&writer, coll, "style:style", styleName, "style:paragraph-properties"); TEST_END_QTTEST("<r>\n <style:style style:name=\"P1\" style:family=\"paragraph\">\n <style:paragraph-properties style:foo=\"bar\" style:paragraph=\"property\"/>\n <style:graphic-properties style:graphic=\"property\"/>\n <styleChild foo=\"bar\"/>\n </style:style>\n</r>\n"); KOdfGenericStyle pageLayoutStyle(KOdfGenericStyle::PageLayoutStyle); pageLayoutStyle.addProperty("style:print-orientation", "portrait"); QString pageLayoutStyleName = coll.insert(pageLayoutStyle, "pm"); // XML for page layout style TEST_BEGIN(0, 0); pageLayoutStyle.writeStyle(&writer, coll, "style:page-layout", pageLayoutStyleName, "style:page-layout-properties"); TEST_END_QTTEST("<r>\n <style:page-layout style:name=\"pm1\">\n <style:page-layout-properties style:print-orientation=\"portrait\"/>\n </style:page-layout>\n</r>\n"); KOdfGenericStyle listStyle(KOdfGenericStyle::ListStyle); QString listStyleName = coll.insert(listStyle, "L"); // XML for list layout style TEST_BEGIN(0, 0); listStyle.writeStyle(&writer, coll, "text:list-style", listStyleName, 0); TEST_END_QTTEST("<r>\n <text:list-style style:name=\"L1\"/>\n</r>\n"); }