本文整理汇总了C++中qstringlist::iterator::at方法的典型用法代码示例。如果您正苦于以下问题:C++ iterator::at方法的具体用法?C++ iterator::at怎么用?C++ iterator::at使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类qstringlist::iterator
的用法示例。
在下文中一共展示了iterator::at方法的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: outputLong
QStringList::iterator
CLArgsPrivate::hasOutputToken(QString& indexStr)
{
QString outputLong( QString::fromUtf8("--output") );
QString outputShort( QString::fromUtf8("-o") );
for (QStringList::iterator it = args.begin(); it != args.end(); ++it) {
int indexOf = it->indexOf(outputLong);
if (indexOf != -1) {
indexOf += outputLong.size();
if ( indexOf < it->size() ) {
indexStr = it->mid(indexOf);
bool ok;
indexStr.toInt(&ok);
if (!ok) {
error = 1;
std::cout << QObject::tr("Wrong formating for the -o option").toStdString() << std::endl;
return args.end();
}
} else {
indexStr = QChar::fromLatin1('1');
}
return it;
} else {
indexOf = it->indexOf(outputShort);
if (indexOf != -1) {
if ( (it->size() > 2) && !it->at(2).isDigit() ) {
//This is probably the --onload option
return args.end();
}
indexOf += outputShort.size();
if ( indexOf < it->size() ) {
indexStr = it->mid(indexOf);
bool ok;
indexStr.toInt(&ok);
if (!ok) {
error = 1;
std::cout << QObject::tr("Wrong formating for the -o option").toStdString() << std::endl;
return args.end();
}
} else {
indexStr = QChar::fromLatin1('1');
}
return it;
}
}
}
return args.end();
} // CLArgsPrivate::hasOutputToken
示例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: d
void
ExportGroupTemplateDialog::onOkClicked()
{
QString dirPath = _imp->fileEdit->text();
if ( !dirPath.isEmpty() && ( dirPath[dirPath.size() - 1] == QLatin1Char('/') ) ) {
dirPath.remove(dirPath.size() - 1, 1);
}
QDir d(dirPath);
if ( !d.exists() ) {
Dialogs::errorDialog( tr("Error").toStdString(), tr("You must specify a directory to save the script").toStdString() );
return;
}
QString pluginLabel = _imp->labelEdit->text();
if ( pluginLabel.isEmpty() ) {
Dialogs::errorDialog( tr("Error").toStdString(), tr("You must specify a label to name the script").toStdString() );
return;
} else {
pluginLabel = QString::fromUtf8( NATRON_PYTHON_NAMESPACE::makeNameScriptFriendly( pluginLabel.toStdString() ).c_str() );
}
QString pluginID = _imp->idEdit->text();
if ( pluginID.isEmpty() ) {
Dialogs::errorDialog( tr("Error").toStdString(), tr("You must specify a unique ID to identify the script").toStdString() );
return;
}
QString iconPath = _imp->iconPath->text();
QString grouping = _imp->groupingEdit->text();
QString description = _imp->descriptionEdit->getText();
QString filePath = d.absolutePath() + QLatin1Char('/') + pluginLabel + QString::fromUtf8(".py");
QStringList filters;
filters.push_back( QString( pluginLabel + QString::fromUtf8(".py") ) );
if ( !d.entryList(filters, QDir::Files | QDir::NoDotAndDotDot).isEmpty() ) {
StandardButtonEnum rep = Dialogs::questionDialog(tr("Existing plug-in").toStdString(),
tr("A group plug-in with the same name already exists "
"would you like to "
"override it?").toStdString(), false);
if (rep == eStandardButtonNo) {
return;
}
}
bool foundInPath = false;
QStringList groupSearchPath = appPTR->getAllNonOFXPluginsPaths();
for (QStringList::iterator it = groupSearchPath.begin(); it != groupSearchPath.end(); ++it) {
if ( !it->isEmpty() && ( it->at(it->size() - 1) == QLatin1Char('/') ) ) {
it->remove(it->size() - 1, 1);
}
if (*it == dirPath) {
foundInPath = true;
}
}
if (!foundInPath) {
QString message = dirPath + tr(" does not exist in the group plug-in search path, would you like to add it?");
StandardButtonEnum rep = Dialogs::questionDialog(tr("Plug-in path").toStdString(),
message.toStdString(), false);
if (rep == eStandardButtonYes) {
appPTR->getCurrentSettings()->appendPythonGroupsPath( dirPath.toStdString() );
}
}
QFile file(filePath);
if ( !file.open(QIODevice::ReadWrite | QIODevice::Truncate) ) {
Dialogs::errorDialog( tr("Error").toStdString(), QString(tr("Cannot open ") + filePath).toStdString() );
return;
}
QTextStream ts(&file);
QString content;
_imp->group->exportGroupToPython(pluginID, pluginLabel, description, iconPath, grouping, content);
ts << content;
accept();
} // ExportGroupTemplateDialog::onOkClicked