本文整理汇总了C++中qstringlist::iterator::length方法的典型用法代码示例。如果您正苦于以下问题:C++ iterator::length方法的具体用法?C++ iterator::length怎么用?C++ iterator::length使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类qstringlist::iterator
的用法示例。
在下文中一共展示了iterator::length方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: quoteText
/** @short Take the initial text and mark it as a quotation */
QStringList quoteText(QStringList inputLines)
{
QStringList quote;
for (QStringList::iterator line = inputLines.begin(); line != inputLines.end(); ++line) {
if (UiUtils::signatureSeparator().match(*line).hasMatch()) {
// This is the signature separator, we should not include anything below that in the quote
break;
}
// rewrap - we need to keep the quotes at < 79 chars, yet the grow with every level
if (line->length() < 79-2) {
// this line is short enough, prepend quote mark and continue
if (line->isEmpty() || line->at(0) == QLatin1Char('>'))
line->prepend(QLatin1Char('>'));
else
line->prepend(QLatin1String("> "));
quote << *line;
continue;
}
// long line -> needs to be wrapped
// 1st, detect the quote depth and eventually stript the quotes from the line
int quoteLevel = 0;
int contentStart = 0;
if (line->at(0) == QLatin1Char('>')) {
quoteLevel = 1;
while (quoteLevel < line->length() && line->at(quoteLevel) == QLatin1Char('>'))
++quoteLevel;
contentStart = quoteLevel;
if (quoteLevel < line->length() && line->at(quoteLevel) == QLatin1Char(' '))
++contentStart;
}
// 2nd, build a quote string
QString quotemarks;
for (int i = 0; i < quoteLevel; ++i)
quotemarks += QLatin1Char('>');
quotemarks += QLatin1String("> ");
// 3rd, wrap the line, prepend the quotemarks to each line and add it to the quote text
int space(contentStart), lastSpace(contentStart), pos(contentStart), length(0);
while (pos < line->length()) {
if (line->at(pos) == QLatin1Char(' '))
space = pos+1;
++length;
if (length > 65-quotemarks.length() && space != lastSpace) {
// wrap
quote << quotemarks + line->mid(lastSpace, space - lastSpace);
lastSpace = space;
length = pos - space;
}
++pos;
}
quote << quotemarks + line->mid(lastSpace);
}
return quote;
}
示例2: authResult
void GoogleSession::authResult(bool errorFlag)
{
if (errorFlag)
{
qDebug() << "Auth http error" << http->errorString();
setState(Invalid);
emit error(AuthenticationFailed, http->errorString());
}
else
{
QString resp = http->readAll();
//qDebug() << resp;
QStringList keys = resp.split("\n");
QHash<QString, QString> keyMap;
for (QStringList::iterator it = keys.begin(); it!=keys.end(); it++)
{
int sep = it->indexOf('=');
QString key = it->left(sep);
QString value = it->right(it->length()-sep-1);
keyMap[key] = value;
//qDebug() << key << value;
}
if (http->lastResponse().statusCode()==200) // OK
{
if (keyMap.contains("Auth"))
{
authKey = keyMap["Auth"];
qDebug() << "Authenticated" << authKey;
setState(Authenticated);
emit authenticated();
}
else
{
setState(Invalid);
emit error(AuthenticationFailed, "No Auth key");
}
}
else
{
qDebug() << "ERROR Response header:" << http->lastResponse().statusCode() << http->lastResponse().reasonPhrase();
qDebug() << "ERROR reason" << keyMap["Error"];
setState(Invalid);
emit error(AuthenticationFailed, keyMap["Error"]);
}
}
}
示例3: quoteText
QString MessageView::quoteText() const
{
if (const AbstractPartWidget *w = dynamic_cast<const AbstractPartWidget *>(viewer)) {
QStringList quote;
QStringList lines = w->quoteMe().split('\n');
for (QStringList::iterator line = lines.begin(); line != lines.end(); ++line) {
if (Composer::Util::signatureSeparator().exactMatch(*line)) {
// This is the signature separator, we should not include anything below that in the quote
break;
}
// rewrap - we need to keep the quotes at < 79 chars, yet the grow with every level
if (line->length() < 79-2) {
// this line is short enough, prepend quote mark and continue
if (line->isEmpty() || line->at(0) == '>')
line->prepend(">");
else
line->prepend("> ");
quote << *line;
continue;
}
// long line -> needs to be wrapped
// 1st, detect the quote depth and eventually stript the quotes from the line
int quoteLevel = 0;
int contentStart = 0;
if (line->at(0) == '>') {
quoteLevel = 1;
while (quoteLevel < line->length() && line->at(quoteLevel) == '>')
++quoteLevel;
contentStart = quoteLevel;
if (quoteLevel < line->length() && line->at(quoteLevel) == ' ')
++contentStart;
}
// 2nd, build a qute string
QString quotemarks;
for (int i = 0; i < quoteLevel; ++i)
quotemarks += ">";
quotemarks += "> ";
// 3rd, wrap the line, prepend the quotemarks to each line and add it to the quote text
int space(contentStart), lastSpace(contentStart), pos(contentStart), length(0);
while (pos < line->length()) {
if (line->at(pos) == ' ')
space = pos+1;
++length;
if (length > 65-quotemarks.length() && space != lastSpace) {
// wrap
quote << quotemarks + line->mid(lastSpace, space - lastSpace);
lastSpace = space;
length = pos - space;
}
++pos;
}
quote << quotemarks + line->mid(lastSpace);
}
const Imap::Message::Envelope &e = message.data(Imap::Mailbox::RoleMessageEnvelope).value<Imap::Message::Envelope>();
QString sender;
if (!e.from.isEmpty())
sender = e.from[0].prettyName(Imap::Message::MailAddress::FORMAT_JUST_NAME);
if (e.from.isEmpty())
sender = tr("you");
// One extra newline at the end of the quoted text to separate the response
quote << QString();
return tr("On %1, %2 wrote:\n").arg(e.date.toLocalTime().toString(Qt::SystemLocaleLongDate)).arg(sender) + quote.join("\n");
}
return QString();
}
示例4: save
//.........这里部分代码省略.........
oit=_obsolete.constBegin();
if (oit!=_obsolete.constEnd())
{
stream << "\n" << (*oit);
while((++oit)!=_obsolete.constEnd())
stream << "\n\n" << (*oit);
}
}
int i=m_trailingNewLines+1;
while (--i>=0)
stream << '\n';
return OK;
}
void GettextExportPlugin::writeComment( QTextStream& stream, const QString& comment ) const
{
if( !comment.isEmpty() )
{
// We must check that each comment line really starts with a #, to avoid syntax errors
int pos = 0;
for(;;)
{
const int newpos = comment.indexOf( '\n', pos, Qt::CaseInsensitive );
if ( newpos == pos )
{
++pos;
stream << '\n';
continue;
}
const QString& span ((newpos==-1 ) ? comment.mid(pos) : comment.mid(pos, newpos-pos) );
const int len = span.length();
QString spaces; // Stored leading spaces
for ( int i = 0 ; i < len ; ++i )
{
const QChar& ch = span[ i ];
if ( ch == '#' )
{
stream << spaces << span.mid( i );
break;
}
else if ( ch == ' ' || ch == '\t' )
{
// We have a leading white space character, so store it temporary
spaces += ch;
}
else
{
// Not leading white space and not a # character. so consider that the # character was missing at first position.
stream << "# " << spaces << span.mid( i );
break;
}
}
stream << '\n';
if ( newpos == -1 )
break;
else
pos = newpos + 1;
}
}
}
void GettextExportPlugin::writeKeyword( QTextStream& stream, const QString& keyword, QString text, bool containsHtml, bool startedWithEmptyLine ) const