From 61c95ce0295f1397db6499c5b468a9fb3d32a0f4 Mon Sep 17 00:00:00 2001 From: zautrix Date: Fri, 14 Jan 2005 11:37:40 +0000 Subject: made kapi saving faster --- (limited to 'kabc/vcard') diff --git a/kabc/vcard/ContentLine.cpp b/kabc/vcard/ContentLine.cpp index c368172..2f88cde 100644 --- a/kabc/vcard/ContentLine.cpp +++ b/kabc/vcard/ContentLine.cpp @@ -273,6 +273,33 @@ ContentLine::_parse() void ContentLine::_assemble() { + //strRep_.truncate(0); + QString line; + if (!group_.isEmpty()) + line = group_ + '.'; + line += name_; + ParamListIterator it(paramList_); + for (; it.current(); ++it) + line += ";" + it.current()->asString(); + + if (value_ != 0) + line += ":" + value_->asString(); + + line = line.replace( QRegExp( "\n" ), "\\n" ); + + // Fold lines longer than 72 chars + const int maxLen = 72; + uint cursor = 0; + QString cut; + while( line.length() > ( cursor + 1 ) * maxLen ) { + cut += line.mid( cursor * maxLen, maxLen ); + cut += "\r\n "; + ++cursor; + } + cut += line.mid( cursor * maxLen ); + strRep_ = cut.latin1(); + //qDebug("ContentLine::_assemble()\n%s*****", strRep_.data()); +#if 0 vDebug("Assemble (argl) - my name is \"" + name_ + "\""); strRep_.truncate(0); @@ -307,7 +334,8 @@ ContentLine::_assemble() ++cursor; } strRep_ += line.mid( cursor * maxLen ); - //qDebug("ContentLine::_assemble()\n%s*****", strRep_.data()); + qDebug("ContentLine::_assemble()\n%s*****", strRep_.data()); +#endif } void diff --git a/kabc/vcard/VCardv.cpp b/kabc/vcard/VCardv.cpp index bc80707..49bfe43 100644 --- a/kabc/vcard/VCardv.cpp +++ b/kabc/vcard/VCardv.cpp @@ -23,6 +23,9 @@ #include #include +#include +#include +#include #include #include @@ -96,30 +99,29 @@ VCard::~VCard() void VCard::_parse() { - vDebug("parse() called"); - QStrList l; + + QStringList l; + QStrList sl; - RTokenise(strRep_, "\r\n", l); + RTokenise(strRep_, "\r\n", sl); - if (l.count() < 3) { // Invalid VCARD ! - vDebug("Invalid vcard"); + if (sl.count() < 3) { // Invalid VCARD ! + //qDebug("invalid vcard "); return; } - + l = QStringList::fromStrList( sl ); // Get the first line - QCString beginLine = QCString(l.at(0)).stripWhiteSpace(); - - vDebug("Begin line == \"" + beginLine + "\""); + QString beginLine = l[0].stripWhiteSpace(); // Remove extra blank lines - while (QCString(l.last()).isEmpty()) + while (l.last().isEmpty()) l.remove(l.last()); // Now we know this is the last line - QCString endLine = l.last(); + QString endLine = l.last(); // Trash the first and last lines as we have seen them. - l.remove(0u); + l.remove(l.first()); l.remove(l.last()); /////////////////////////////////////////////////////////////// @@ -132,8 +134,8 @@ VCard::_parse() return; } - QCString firstPart(beginLine.left(split)); - QCString valuePart(beginLine.mid(split + 1)); + QString firstPart(beginLine.left(split)); + QString valuePart(beginLine.mid(split + 1)); split = firstPart.find('.'); @@ -142,13 +144,13 @@ VCard::_parse() firstPart = firstPart.right(firstPart.length() - split - 1); } - if (qstrnicmp(firstPart, "BEGIN", 5) != 0) { // No BEGIN ! - vDebug("No BEGIN"); + if (firstPart.left(5) != "BEGIN" ) { // No BEGIN ! + qDebug("no BEGIN in vcard "); return; } - if (qstrnicmp(valuePart, "VCARD", 5) != 0) { // Not a vcard ! - vDebug("No VCARD"); + if (valuePart.left(5) != "VCARD") { // Not a vcard ! + qDebug("not a VCARD "); return; } @@ -159,42 +161,30 @@ VCard::_parse() // Handle folded lines. - QStrList refolded; - - QStrListIterator it(l); + QStringList refolded; - QCString cur; - for (; it.current(); ++it) { + QStringList::Iterator it = l.begin(); - cur = it.current(); + QString cur; + for (; it != l.end(); ++it) { + cur = (*it); ++it; - - while ( - it.current() && - it.current()[0] == ' ' && - strlen(it.current()) != 1) - { - cur += it.current() + 1; + while ( it!= l.end() && (*it).at(0) == ' ' && (*it).length()!= 1) { + cur += (*it) ; ++it; } - --it; - refolded.append(cur); } - - QStrListIterator it2(refolded); - - for (; it2.current(); ++it2) { - vDebug("New contentline using \"" + QCString(it2.current()) + "\""); - ContentLine * cl = new ContentLine(it2.current()); - + QStringList::Iterator it2 = refolded.begin(); + for (; it2 != refolded.end(); ++it2) { + ContentLine * cl = new ContentLine(QCString((*it2).latin1())); cl->parse(); if (cl->value() == 0) { - qDebug("Content line could not be parsed. Discarded: %s", it2.current()); + qDebug("Content line could not be parsed. Discarded: %s", (*it2).latin1()); delete cl; } else @@ -204,6 +194,10 @@ VCard::_parse() /////////////////////////////////////////////////////////////// // LAST LINE + + // LR: sorry, but the remaining code in this method makes no sense + +#if 0 split = endLine.find(':'); if (split == -1) // invalid, no END @@ -224,6 +218,7 @@ VCard::_parse() if (qstricmp(valuePart, "VCARD") != 0) // Not a vcard ! return; +#endif } void -- cgit v0.9.0.2