本文整理汇总了C++中qstringlist::iterator::split方法的典型用法代码示例。如果您正苦于以下问题:C++ iterator::split方法的具体用法?C++ iterator::split怎么用?C++ iterator::split使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类qstringlist::iterator
的用法示例。
在下文中一共展示了iterator::split方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: submitEditorAboutToClose
bool BazaarPlugin::submitEditorAboutToClose(VCSBase::VCSBaseSubmitEditor *submitEditor)
{
if (!m_changeLog)
return true;
Core::IFile *editorFile = submitEditor->file();
const CommitEditor *commitEditor = qobject_cast<const CommitEditor *>(submitEditor);
if (!editorFile || !commitEditor)
return true;
bool dummyPrompt = m_bazaarSettings.boolValue(BazaarSettings::promptOnSubmitKey);
const VCSBase::VCSBaseSubmitEditor::PromptSubmitResult response =
commitEditor->promptSubmit(tr("Close Commit Editor"), tr("Do you want to commit the changes?"),
tr("Message check failed. Do you want to proceed?"),
&dummyPrompt, dummyPrompt);
switch (response) {
case VCSBase::VCSBaseSubmitEditor::SubmitCanceled:
return false;
case VCSBase::VCSBaseSubmitEditor::SubmitDiscarded:
deleteCommitLog();
return true;
default:
break;
}
QStringList files = commitEditor->checkedFiles();
if (!files.empty()) {
//save the commit message
if (!m_core->fileManager()->saveFile(editorFile))
return false;
//rewrite entries of the form 'file => newfile' to 'newfile' because
//this would mess the commit command
for (QStringList::iterator iFile = files.begin(); iFile != files.end(); ++iFile) {
const QStringList parts = iFile->split(" => ", QString::SkipEmptyParts);
if (!parts.isEmpty())
*iFile = parts.last();
}
const BazaarCommitWidget *commitWidget = commitEditor->commitWidget();
QStringList extraOptions;
// Author
if (!commitWidget->committer().isEmpty())
extraOptions.append(QLatin1String("--author=") + commitWidget->committer());
// Fixed bugs
foreach (const QString &fix, commitWidget->fixedBugs()) {
if (!fix.isEmpty())
extraOptions << QLatin1String("--fixes") << fix;
}
// Whether local commit or not
if (commitWidget->isLocalOptionEnabled())
extraOptions += QLatin1String("--local");
m_client->commit(m_submitRepository, files, editorFile->fileName(), extraOptions);
}
return true;
}
示例2: submitEditorAboutToClose
bool BazaarPlugin::submitEditorAboutToClose()
{
CommitEditor *commitEditor = qobject_cast<CommitEditor *>(submitEditor());
QTC_ASSERT(commitEditor, return true);
Core::IDocument *editorDocument = commitEditor->document();
QTC_ASSERT(editorDocument, return true);
bool dummyPrompt = false;
const VcsBase::VcsBaseSubmitEditor::PromptSubmitResult response =
commitEditor->promptSubmit(tr("Close Commit Editor"), tr("Do you want to commit the changes?"),
tr("Message check failed. Do you want to proceed?"),
&dummyPrompt, !m_submitActionTriggered);
m_submitActionTriggered = false;
switch (response) {
case VcsBase::VcsBaseSubmitEditor::SubmitCanceled:
return false;
case VcsBase::VcsBaseSubmitEditor::SubmitDiscarded:
return true;
default:
break;
}
QStringList files = commitEditor->checkedFiles();
if (!files.empty()) {
//save the commit message
if (!Core::DocumentManager::saveDocument(editorDocument))
return false;
//rewrite entries of the form 'file => newfile' to 'newfile' because
//this would mess the commit command
for (QStringList::iterator iFile = files.begin(); iFile != files.end(); ++iFile) {
const QStringList parts = iFile->split(QLatin1String(" => "), QString::SkipEmptyParts);
if (!parts.isEmpty())
*iFile = parts.last();
}
BazaarCommitWidget *commitWidget = commitEditor->commitWidget();
QStringList extraOptions;
// Author
if (!commitWidget->committer().isEmpty())
extraOptions.append(QLatin1String("--author=") + commitWidget->committer());
// Fixed bugs
foreach (const QString &fix, commitWidget->fixedBugs()) {
if (!fix.isEmpty())
extraOptions << QLatin1String("--fixes") << fix;
}
// Whether local commit or not
if (commitWidget->isLocalOptionEnabled())
extraOptions += QLatin1String("--local");
m_client->commit(m_submitRepository, files, editorDocument->filePath(), extraOptions);
}
return true;
}
示例3: svgParseGroup
// Parse a <g> tag while opening a file
void svgParseGroup(const QDomElement &element, NoteEditor *editor, QPen pen)
{
if (element.tagName() != "g") return;
// Convert the <g> tag into a QPen
if (element.hasAttribute("stroke-width"))
pen.setWidthF(element.attribute("stroke-width").toDouble());
if (element.hasAttribute("stroke")) {
// Colors by hex value with '#' prefix
if (element.attribute("stroke").at(0) == '#') {
pen.setColor(QColor(element.attribute("stroke")
.right(6).toInt(0, 16)));
}
// TODO: handle colors by name
}
if (element.hasAttribute("stroke-linecap")) {
QString linecap = element.attribute("stroke-linecap");
if (linecap == "square") {
pen.setCapStyle(Qt::SquareCap);
} else if (linecap == "round") {
pen.setCapStyle(Qt::RoundCap);
} else if (linecap == "butt") {
pen.setCapStyle(Qt::FlatCap);
}
}
QDomElement child = element.firstChildElement();
while (!child.isNull()) {
if (child.tagName() == "g") {
svgParseGroup(child, editor, pen);
} else if (child.tagName() == "polyline") {
// Get curve from points, add to editor
Curve *curve = new Curve(pen);
QStringList pointStrs = child.attribute("points")
.split(' ', QString::SkipEmptyParts);
QStringList::iterator itr;
for (itr = pointStrs.begin(); itr != pointStrs.end(); ++itr) {
QStringList curPointStr =
itr->split(',', QString::SkipEmptyParts);
QPointF point(curPointStr[0].toDouble(),
curPointStr[1].toDouble());
editor->addPointToCurve(point, curve);
}
editor->addCurve(curve);
}
child = child.nextSiblingElement();
}
}
示例4: view
void ParsetTreeViewer::view(QString parset, const OTDBtree &otdb_tree) {
if (!parset.isEmpty()) {
ui.treeWidget->clear();
parset.remove("LOFAR.");
parset.remove("ObsSW.");
QStringList lines(parset.split("\n", QString::SkipEmptyParts));
lines.sort();
if (otdb_tree.treeID()) {
// add meta data from the OTDB tree
lines += QString("current status in SAS=") + sasStateString(otdb_tree.state()).c_str();
lines += QString("actual start time=") + otdb_tree.startTime().toString().c_str();
lines += QString("actual stop time=") + otdb_tree.stopTime().toString().c_str();
lines += QString("creation date=") + otdb_tree.creationDate().toString().c_str();
lines += QString("modified date=") + otdb_tree.modificationDate().toString().c_str();
lines += QString("SAS ID=") + QString::number(otdb_tree.treeID());
lines += QString("group ID=") + QString::number(otdb_tree.groupID());
lines += QString("MoM ID=") + QString::number(otdb_tree.momID());
lines += QString("parent template=") + QString::number(otdb_tree.originalTree());
lines += QString("campaign=") + otdb_tree.campaign().c_str();
lines += QString("processType=") + otdb_tree.processType();
lines += QString("processSubType=") + PROCESS_SUBTYPES[otdb_tree.processSubType()];
lines += QString("strategy=") + otdb_tree.strategy();
}
QStringList key_value_pair, prev_line, current_line, item_pair;
QTreeWidgetItem *newItem;
QList<QTreeWidgetItem *> parents, prevParents;
QString value, tooltip;
int idx, nrElements;
for (QStringList::iterator it = lines.begin()+1; it != lines.end(); ++it) {
key_value_pair = it->split('='); // key_value_pair.first() = full node/key parset name, key_value_pair.last() = value
if (key_value_pair.size() > 1) {
value = key_value_pair.last();
}
else value = "";
current_line = key_value_pair.first().split('.');
prevParents = parents;
parents.clear();
idx = 0;
nrElements = current_line.size();
while (idx < nrElements) { // while not arrived at last element and not beyond the length of the previous line
if (idx < prev_line.size()) { // if not beyond the number of elements in the previous line
if (current_line.at(idx) != prev_line.at(idx)) { // if the item on this position is different from the item on that position of the previous line
// insert element
if (idx+1 == nrElements) {
item_pair << current_line.at(idx) << value;
tooltip = commaWordWrap(item_pair.first() + " = " + value,100);
}
else {
item_pair << current_line.at(idx);
tooltip = item_pair.first();
}
if (parents.empty()) newItem = new QTreeWidgetItem(ui.treeWidget, item_pair);
else newItem = new QTreeWidgetItem(parents.last(), item_pair);
newItem->setToolTip(0,tooltip);
newItem->setToolTip(1,tooltip);
parents.push_back(newItem);
item_pair.clear();
}
else parents.push_back(prevParents.at(idx));
}
else {
// insert element
if (idx+1 == nrElements) {
item_pair << current_line.at(idx) << value;
tooltip = commaWordWrap(item_pair.first() + " = " + value,100);
}
else {
item_pair << current_line.at(idx);
tooltip = item_pair.first();
}
if (parents.empty()) newItem = new QTreeWidgetItem(ui.treeWidget, item_pair);
else newItem = new QTreeWidgetItem(parents.last(), item_pair);
newItem->setToolTip(0,tooltip);
newItem->setToolTip(1,tooltip);
parents.push_back(newItem);
item_pair.clear();
}
++idx;
}
prev_line = current_line;
}
this->show();
}
}
示例5: position
GeoDataDocument *CycleStreetsRunner::parse( const QByteArray &content ) const
{
QDomDocument xml;
if ( !xml.setContent( content ) ) {
mDebug() << "Cannot parse xml file with routing instructions.";
return 0;
}
GeoDataDocument *result = new GeoDataDocument();
result->setName( "CycleStreets" );
GeoDataPlacemark *routePlacemark = new GeoDataPlacemark;
routePlacemark->setName( "Route" );
GeoDataLineString *routeWaypoints = new GeoDataLineString;
QDomNodeList features = xml.elementsByTagName( "gml:featureMember" );
if ( features.isEmpty() ) {
return 0;
}
QDomElement route = features.at( 0 ).toElement().firstChild().toElement();
QDomElement lineString = route.elementsByTagName( "gml:LineString" ).at( 0 ).toElement();
QDomElement coordinates = lineString.toElement().elementsByTagName( "gml:coordinates" ).at( 0 ).toElement();
QStringList coordinatesList = coordinates.text().split( ' ' );
QStringList::iterator iter = coordinatesList.begin();
QStringList::iterator end = coordinatesList.end();
for( ; iter != end; ++iter) {
QStringList coordinate = iter->split(',');
if ( coordinate.size() == 2 ) {
double const lon = coordinate.at( 0 ).toDouble();
double const lat = coordinate.at( 1 ).toDouble();
GeoDataCoordinates const position( lon, lat, 0.0, GeoDataCoordinates::Degree );
routeWaypoints->append( position );
}
}
routePlacemark->setGeometry( routeWaypoints );
QDomElement durationElement = route.elementsByTagName( "cs:time" ).at(0).toElement();
QTime duration;
duration = duration.addSecs( durationElement.text().toInt() );
qreal length = routeWaypoints->length( EARTH_RADIUS );
const QString name = nameString( "CS", length, duration );
const GeoDataExtendedData data = routeData( length, duration );
routePlacemark->setExtendedData( data );
result->setName( name );
result->append( routePlacemark );
int i;
for ( i = 1; i < features.count() && features.at( i ).firstChildElement().tagName() != "cs:segment"; ++i );
for ( ; i < features.count(); ++i) {
QDomElement segment = features.at( i ).toElement();
QString name = segment.elementsByTagName( "cs:name" ).at( 0 ).toElement().text();
QString maneuver = segment.elementsByTagName( "cs:turn" ).at( 0 ).toElement().text();
QStringList points = segment.elementsByTagName( "cs:points" ).at( 0 ).toElement().text().split( ' ' );
QStringList const elevation = segment.elementsByTagName( "cs:elevations" ).at( 0 ).toElement().text().split( ',' );
GeoDataPlacemark *instructions = new GeoDataPlacemark;
QString instructionName;
if ( !maneuver.isEmpty() ) {
instructionName = maneuver.left( 1 ).toUpper() + maneuver.mid( 1 );
} else {
instructionName = "Straight";
}
if ( name != "Short un-named link" && name != "Un-named link" ){
instructionName.append( " into " + name );
}
instructions->setName( instructionName );
GeoDataExtendedData extendedData;
GeoDataData turnType;
turnType.setName( "turnType" );
turnType.setValue( maneuverType( maneuver ) );
extendedData.addValue( turnType );
instructions->setExtendedData( extendedData );
GeoDataLineString *lineString = new GeoDataLineString;
QStringList::iterator iter = points.begin();
QStringList::iterator end = points.end();
for ( int j=0; iter != end; ++iter, ++j ) {
QStringList coordinate = iter->split( ',' );
if ( coordinate.size() == 2 ) {
double const lon = coordinate.at( 0 ).toDouble();
double const lat = coordinate.at( 1 ).toDouble();
double const alt = j < elevation.size() ? elevation[j].toDouble() : 0.0;
lineString->append( GeoDataCoordinates( lon, lat, alt, GeoDataCoordinates::Degree ) );
}
}
instructions->setGeometry( lineString );
result->append( instructions );
}
return result;
}
示例6: validateValue
bool OutputOptions::validateValue(const QString& optionName, const QString& value)
{
QStringList allowValues;
QStringList allowColors;
if (!m_list.contains(optionName)) {
// Option does not exist
return false;
}
allowValues = m_allow[optionName].split('|');
switch (m_type[optionName]) {
case Integer:
/* If the allow string is empty, then any number is allowed */
if (m_allow[optionName].isEmpty()) {
return true;
}
/* See if value is in on of the ranges */
for (QStringList::iterator it = allowValues.begin(); it != allowValues.end(); ++it) {
if ((*it).indexOf(':') >= 0) {
QStringList limits = it->split(':');
int val = value.toInt();
int ulimit = limits[1].toInt();
int llimit = limits[0].toInt();
if ((val >= llimit) && (val <= ulimit)) {
return true;
}
}
}
if (allowValues.contains(value)) {
return true;
}
return false;
case String:
if (m_allow[optionName].isEmpty()) {
return true;
}
if (allowValues.contains(value)) {
return true;
}
return false;
case Boolean:
if ((value == "1") || (value == "0") || (value == "true") || (value == "false")) {
return true;
} else {
return false;
}
case Color:
allowColors.append("red");
allowColors.append("blue");
allowColors.append("black");
allowColors.append("white");
allowColors.append("green");
allowColors.append("purple");
if ((allowColors.contains(value)) || (value.contains(QRegExp("^#[0-9a-fA-F]{6}")))) {
return true;
} else {
return false;
}
break;
default :
/* Unknown type */
return false;
}
/* Error because method should have returned by now. */
return false;
}