summaryrefslogtreecommitdiffabout
path: root/kabc/vcard/ContentLine.cpp
Side-by-side diff
Diffstat (limited to 'kabc/vcard/ContentLine.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--kabc/vcard/ContentLine.cpp30
1 files changed, 29 insertions, 1 deletions
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
@@ -264,24 +264,51 @@ ContentLine::_parse()
case ValueGeo: value_ = new GeoValue; break;
case ValueText:
case ValueUnknown:
default: value_ = new TextValue; break;
}
*value_ = valuePart;
}
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);
QCString line;
if (!group_.isEmpty())
line += group_ + '.';
line += name_;
vDebug("Adding parameters");
ParamListIterator it(paramList_);
@@ -298,24 +325,25 @@ ContentLine::_assemble()
// Quote newlines
line = line.replace( QRegExp( "\n" ), "\\n" );
// Fold lines longer than 72 chars
const int maxLen = 72;
uint cursor = 0;
while( line.length() > ( cursor + 1 ) * maxLen ) {
strRep_ += line.mid( cursor * maxLen, maxLen );
strRep_ += "\r\n ";
++cursor;
}
strRep_ += line.mid( cursor * maxLen );
- //qDebug("ContentLine::_assemble()\n%s*****", strRep_.data());
+ qDebug("ContentLine::_assemble()\n%s*****", strRep_.data());
+#endif
}
void
ContentLine::clear()
{
group_.truncate(0);
name_.truncate(0);
paramList_.clear();
delete value_;
value_ = 0;
}