本文整理汇总了C++中QStringList::constEnd方法的典型用法代码示例。如果您正苦于以下问题:C++ QStringList::constEnd方法的具体用法?C++ QStringList::constEnd怎么用?C++ QStringList::constEnd使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QStringList
的用法示例。
在下文中一共展示了QStringList::constEnd方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: if
void AnnotationDialog::ListSelect::showContextMenu(const QPoint& pos)
{
QMenu* menu = new QMenu( this );
QTreeWidgetItem* item = m_treeWidget->itemAt(pos);
// click on any item
QString title = i18n("No Item Selected");
if ( item )
title = item->text(0);
QLabel* label = new QLabel( i18n("<b>%1</b>",title), menu );
label->setAlignment( Qt::AlignCenter );
QWidgetAction* action = new QWidgetAction(menu);
action->setDefaultWidget( label );
menu->addAction(action);
QAction* deleteAction = menu->addAction( SmallIcon(QString::fromLatin1("edit-delete")), i18n("Delete") );
QAction* renameAction = menu->addAction( i18n("Rename...") );
QLabel* categoryTitle = new QLabel( i18n("<b>Tag Groups</b>"), menu );
categoryTitle->setAlignment( Qt::AlignCenter );
action = new QWidgetAction( menu );
action->setDefaultWidget( categoryTitle );
menu->addAction( action );
// -------------------------------------------------- Add/Remove member group
DB::MemberMap& memberMap = DB::ImageDB::instance()->memberMap();
QMenu* members = new QMenu( i18n( "Tag groups" ) );
menu->addMenu( members );
QAction* newCategoryAction = nullptr;
if ( item ) {
QStringList grps = memberMap.groups( m_category->name() );
for( QStringList::ConstIterator it = grps.constBegin(); it != grps.constEnd(); ++it ) {
if (!memberMap.canAddMemberToGroup(m_category->name(), *it, item->text(0)))
continue;
QAction* action = members->addAction( *it );
action->setCheckable(true);
action->setChecked( (bool) memberMap.members( m_category->name(), *it, false ).contains( item->text(0) ) );
action->setData( *it );
}
if ( !grps.isEmpty() )
members->addSeparator();
newCategoryAction = members->addAction( i18n("Add this tag to a new tag group..." ) );
}
QAction* newSubcategoryAction = menu->addAction( i18n( "Make this tag a tag group and add a tag..." ) );
// -------------------------------------------------- Take item out of category
QTreeWidgetItem* parent = item ? item->parent() : nullptr;
QAction* takeAction = nullptr;
if ( parent )
takeAction = menu->addAction( i18n( "Remove from tag group %1", parent->text(0) ) );
// -------------------------------------------------- sort
QLabel* sortTitle = new QLabel( i18n("<b>Sorting</b>") );
sortTitle->setAlignment( Qt::AlignCenter );
action = new QWidgetAction( menu );
action->setDefaultWidget( sortTitle );
menu->addAction( action );
QAction* usageAction = menu->addAction( i18n("Usage") );
QAction* alphaFlatAction = menu->addAction( i18n("Alphabetical (Flat)") );
QAction* alphaTreeAction = menu->addAction( i18n("Alphabetical (Tree)") );
usageAction->setCheckable(true);
usageAction->setChecked( Settings::SettingsData::instance()->viewSortType() == Settings::SortLastUse);
alphaFlatAction->setCheckable(true);
alphaFlatAction->setChecked( Settings::SettingsData::instance()->viewSortType() == Settings::SortAlphaFlat);
alphaTreeAction->setCheckable(true);
alphaTreeAction->setChecked( Settings::SettingsData::instance()->viewSortType() == Settings::SortAlphaTree);
if ( !item ) {
deleteAction->setEnabled( false );
renameAction->setEnabled( false );
members->setEnabled( false );
newSubcategoryAction->setEnabled( false );
}
// -------------------------------------------------- exec
QAction* which = menu->exec( m_treeWidget->mapToGlobal(pos));
if ( which == nullptr )
return;
else if ( which == deleteAction ) {
Q_ASSERT( item );
int code = KMessageBox::warningContinueCancel( this, i18n("<p>Do you really want to delete \"%1\"?<br/>"
"Deleting the item will remove any information "
"about it from any image containing the item.</p>"
,title),
i18n("Really Delete %1?",item->text(0)),
KGuiItem(i18n("&Delete"),QString::fromLatin1("editdelete")) );
if ( code == KMessageBox::Continue ) {
if (item->checkState(0) == Qt::Checked and m_positionable) {
// An area could be linked against this. We can use positionableTagDeselected
// here, as the procedure is the same as if the tag had been deselected.
emit positionableTagDeselected(m_category->name(), item->text(0));
}
#ifdef HAVE_KFACE
// Also delete this tag from the recognition database (if it's there)
if (m_positionable) {
//.........这里部分代码省略.........
示例2: installTranslators
void ScribusQApp::installTranslators(const QStringList & langs)
{
static QTranslator *transQt = 0;
static QTranslator *trans = 0;
if (transQt)
{
removeTranslator( transQt );
delete transQt;
transQt=0;
}
if (trans)
{
removeTranslator( trans );
delete trans;
trans=0;
}
transQt = new QTranslator(0);
trans = new QTranslator(0);
QString path(ScPaths::instance().translationDir());
bool loadedQt = false;
bool loadedScribus = false;
QString lang;
for (QStringList::const_iterator it = langs.constBegin(); it != langs.constEnd() && !loadedScribus; ++it)
{
lang=(*it);
if (lang == "en")
{
m_GUILang=lang;
break;
}
else
{
//CB: This might need adjusting for qm files distribution locations
if (transQt->load("qt_" + lang, QLibraryInfo::location(QLibraryInfo::TranslationsPath)))
loadedQt = true;
if (trans->load(QString("scribus." + lang), path))
loadedScribus = true;
if (!loadedScribus)
{
QString altLang(LanguageManager::instance()->getAlternativeAbbrevfromAbbrev(lang));
if (!altLang.isEmpty())
if (trans->load(QString("scribus." + altLang), path))
loadedScribus = true;
}
}
}
if (loadedQt)
installTranslator(transQt);
if (loadedScribus)
{
installTranslator(trans);
m_GUILang=lang;
}
else if (lang == "en")
m_GUILang=lang;
/* CB TODO, currently disabled, because its broken broken broken
path = ScPaths::instance().pluginDir();
QDir dir(path , "*.*", QDir::Name, QDir::Files | QDir::NoSymLinks);
if (dir.exists() && (dir.count() != 0))
{
for (uint i = 0; i < dir.count(); ++i)
{
QFileInfo file(path + dir[i]);
if ((file.extension(false).toLower() == "qm")
&& (file.extension(true).toLower().left(5) == lang))
{
trans = new QTranslator(0);
trans->load(QString(path + dir[i]), ".");
installTranslator(trans);
}
}
}*/
}
示例3: canvasReleaseEvent
//.........这里部分代码省略.........
}
else if ( layerWKBType == QGis::WKBMultiPolygon || layerWKBType == QGis::WKBMultiPolygon25D )
{
g = QgsGeometry::fromMultiPolygon( QgsMultiPolygon() << ( QgsPolygon() << points().toVector() ) );
}
else
{
QMessageBox::critical( 0, tr( "Error" ), tr( "Cannot add feature. Unknown WKB type" ) );
stopCapturing();
return; //unknown wkbtype
}
if ( !g )
{
stopCapturing();
delete f;
return; // invalid geometry; one possibility is from duplicate points
}
f->setGeometry( g );
int avoidIntersectionsReturn = f->geometry()->avoidIntersections();
if ( avoidIntersectionsReturn == 1 )
{
//not a polygon type. Impossible to get there
}
#if 0
else if ( avoidIntersectionsReturn == 2 ) //MH120131: disable this error message until there is a better way to cope with the single type / multi type problem
{
//bail out...
QMessageBox::critical( 0, tr( "Error" ), tr( "The feature could not be added because removing the polygon intersections would change the geometry type" ) );
delete f;
stopCapturing();
return;
}
#endif
else if ( avoidIntersectionsReturn == 3 )
{
QMessageBox::critical( 0, tr( "Error" ), tr( "An error was reported during intersection removal" ) );
}
if ( !f->geometry()->asWkb() ) //avoid intersection might have removed the whole geometry
{
QString reason;
if ( avoidIntersectionsReturn != 2 )
{
reason = tr( "The feature cannot be added because it's geometry is empty" );
}
else
{
reason = tr( "The feature cannot be added because it's geometry collapsed due to intersection avoidance" );
}
QMessageBox::critical( 0, tr( "Error" ), reason );
delete f;
stopCapturing();
return;
}
}
vlayer->beginEditCommand( tr( "Feature added" ) );
if ( addFeature( vlayer, f ) )
{
//add points to other features to keep topology up-to-date
int topologicalEditing = QgsProject::instance()->readNumEntry( "Digitizing", "/TopologicalEditing", 0 );
//use always topological editing for avoidIntersection.
//Otherwise, no way to guarantee the geometries don't have a small gap in between.
QStringList intersectionLayers = QgsProject::instance()->readListEntry( "Digitizing", "/AvoidIntersectionsList" );
bool avoidIntersection = !intersectionLayers.isEmpty();
if ( avoidIntersection ) //try to add topological points also to background layers
{
QStringList::const_iterator lIt = intersectionLayers.constBegin();
for ( ; lIt != intersectionLayers.constEnd(); ++lIt )
{
QgsMapLayer* ml = QgsMapLayerRegistry::instance()->mapLayer( *lIt );
QgsVectorLayer* vl = qobject_cast<QgsVectorLayer*>( ml );
//can only add topological points if background layer is editable...
if ( vl && vl->geometryType() == QGis::Polygon && vl->isEditable() )
{
vl->addTopologicalPoints( f->geometry() );
}
}
}
else if ( topologicalEditing )
{
vlayer->addTopologicalPoints( f->geometry() );
}
vlayer->endEditCommand();
}
else
{
delete f;
vlayer->destroyEditCommand();
}
stopCapturing();
}
}
}
示例4: if
/**
* \class QgsOptions - Set user options and preferences
* Constructor
*/
QgsOptions::QgsOptions( QWidget *parent, Qt::WFlags fl ) :
QDialog( parent, fl )
{
setupUi( this );
connect( cmbTheme, SIGNAL( activated( const QString& ) ), this, SLOT( themeChanged( const QString& ) ) );
connect( cmbTheme, SIGNAL( highlighted( const QString& ) ), this, SLOT( themeChanged( const QString& ) ) );
connect( cmbTheme, SIGNAL( textChanged( const QString& ) ), this, SLOT( themeChanged( const QString& ) ) );
connect( this, SIGNAL( accepted() ), this, SLOT( saveOptions() ) );
cmbIdentifyMode->addItem( tr( "Current layer" ), 0 );
cmbIdentifyMode->addItem( tr( "Top down, stop at first" ), 1 );
cmbIdentifyMode->addItem( tr( "Top down" ), 2 );
// read the current browser and set it
QSettings settings;
int identifyMode = settings.value( "/Map/identifyMode", 0 ).toInt();
cmbIdentifyMode->setCurrentIndex( cmbIdentifyMode->findData( identifyMode ) );
cbxAutoFeatureForm->setChecked( settings.value( "/Map/identifyAutoFeatureForm", false ).toBool() );
double identifyValue = settings.value( "/Map/identifyRadius", QGis::DEFAULT_IDENTIFY_RADIUS ).toDouble();
QgsDebugMsg( QString( "Standard Identify radius setting read from settings file: %1" ).arg( identifyValue ) );
if ( identifyValue <= 0.0 )
identifyValue = QGis::DEFAULT_IDENTIFY_RADIUS;
spinBoxIdentifyValue->setMinimum( 0.01 );
spinBoxIdentifyValue->setValue( identifyValue );
//local directories to search when looking for an SVG with a given basename
QString myPaths = settings.value( "svg/searchPathsForSVG", "" ).toString();
if ( !myPaths.isEmpty() )
{
QStringList myPathList = myPaths.split( "|" );
QStringList::const_iterator pathIt = myPathList.constBegin();
for ( ; pathIt != myPathList.constEnd(); ++pathIt )
{
QListWidgetItem* newItem = new QListWidgetItem( mListSVGPaths );
newItem->setText( *pathIt );
newItem->setFlags( Qt::ItemIsEditable | Qt::ItemIsEnabled | Qt::ItemIsSelectable );
mListSVGPaths->addItem( newItem );
}
}
//Network timeout
mNetworkTimeoutSpinBox->setValue( settings.value( "/qgis/networkAndProxy/networkTimeout", "60000" ).toInt() );
//Web proxy settings
grpProxy->setChecked( settings.value( "proxy/proxyEnabled", "0" ).toBool() );
leProxyHost->setText( settings.value( "proxy/proxyHost", "" ).toString() );
leProxyPort->setText( settings.value( "proxy/proxyPort", "" ).toString() );
leProxyUser->setText( settings.value( "proxy/proxyUser", "" ).toString() );
leProxyPassword->setText( settings.value( "proxy/proxyPassword", "" ).toString() );
//available proxy types
mProxyTypeComboBox->insertItem( 0, "DefaultProxy" );
mProxyTypeComboBox->insertItem( 1, "Socks5Proxy" );
mProxyTypeComboBox->insertItem( 2, "HttpProxy" );
mProxyTypeComboBox->insertItem( 3, "HttpCachingProxy" );
mProxyTypeComboBox->insertItem( 4, "FtpCachingProxy" );
QString settingProxyType = settings.value( "proxy/proxyType", "DefaultProxy" ).toString();
mProxyTypeComboBox->setCurrentIndex( mProxyTypeComboBox->findText( settingProxyType ) );
//URLs excluded not going through proxies
QString proxyExcludedURLs = settings.value( "proxy/proxyExcludedUrls", "" ).toString();
if ( !proxyExcludedURLs.isEmpty() )
{
QStringList splittedUrls = proxyExcludedURLs.split( "|" );
QStringList::const_iterator urlIt = splittedUrls.constBegin();
for ( ; urlIt != splittedUrls.constEnd(); ++urlIt )
{
QListWidgetItem* newItem = new QListWidgetItem( mExcludeUrlListWidget );
newItem->setText( *urlIt );
newItem->setFlags( Qt::ItemIsEditable | Qt::ItemIsEnabled | Qt::ItemIsSelectable );
mExcludeUrlListWidget->addItem( newItem );
}
}
#if QT_VERSION >= 0x40500
// cache settings
QNetworkDiskCache *cache = qobject_cast<QNetworkDiskCache*>( QgsNetworkAccessManager::instance()->cache() );
if ( cache )
{
mCacheDirectory->setText( cache->cacheDirectory() );
mCacheSize->setMinimum( 0 );
mCacheSize->setMaximum( std::numeric_limits<int>::max() );
mCacheSize->setSingleStep( 1024 );
QgsDebugMsg( QString( "set cacheSize: %1" ).arg( cache->maximumCacheSize() ) );
mCacheSize->setValue( cache->maximumCacheSize() / 1024 );
}
#else
grpUrlExclude->setHidden( true );
grpCache->setHidden( true );
#endif
//wms search server
leWmsSearch->setText( settings.value( "/qgis/WMSSearchUrl", "http://geopole.org/wms/search?search=%1&type=rss" ).toString() );
// set the current theme
//.........这里部分代码省略.........
示例5: createVCards
QByteArray VCardParser::createVCards( const VCard::List &list )
{
QByteArray text;
QByteArray textLine;
QString encodingType;
QStringList idents;
QStringList params;
QStringList values;
QStringList::ConstIterator identIt;
QStringList::Iterator paramIt;
QStringList::ConstIterator valueIt;
VCardLine::List lines;
VCardLine::List::ConstIterator lineIt;
VCard::List::ConstIterator cardIt;
bool hasEncoding;
text.reserve( list.size() * 300 ); // reserve memory to be more efficient
// iterate over the cards
VCard::List::ConstIterator listEnd( list.end() );
for ( cardIt = list.begin(); cardIt != listEnd; ++cardIt ) {
text.append( "BEGIN:VCARD\r\n" );
idents = ( *cardIt ).identifiers();
for ( identIt = idents.constBegin(); identIt != idents.constEnd(); ++identIt ) {
lines = ( *cardIt ).lines( ( *identIt ) );
// iterate over the lines
for ( lineIt = lines.constBegin(); lineIt != lines.constEnd(); ++lineIt ) {
QVariant val = ( *lineIt ).value();
if ( val.isValid() ) {
if ( ( *lineIt ).hasGroup() ) {
textLine = ( *lineIt ).group().toLatin1() + '.' + ( *lineIt ).identifier().toLatin1();
} else {
textLine = ( *lineIt ).identifier().toLatin1();
}
params = ( *lineIt ).parameterList();
hasEncoding = false;
if ( !params.isEmpty() ) { // we have parameters
for ( paramIt = params.begin(); paramIt != params.end(); ++paramIt ) {
if ( ( *paramIt ) == QLatin1String( "encoding" ) ) {
hasEncoding = true;
encodingType = ( *lineIt ).parameter( QLatin1String( "encoding" ) ).toLower();
}
values = ( *lineIt ).parameters( *paramIt );
for ( valueIt = values.constBegin(); valueIt != values.constEnd(); ++valueIt ) {
textLine.append( ';' + ( *paramIt ).toLatin1().toUpper() );
if ( !( *valueIt ).isEmpty() ) {
textLine.append( '=' + ( *valueIt ).toLatin1() );
}
}
}
}
QByteArray input, output;
// handle charset
if ( ( *lineIt ).parameterList().contains( QLatin1String( "charset" ) ) ) {
// have to convert the data
const QString value = ( *lineIt ).value().toString();
QTextCodec *codec = QTextCodec::codecForName(
( *lineIt ).parameter( QLatin1String( "charset" ) ).toLatin1() );
if ( codec ) {
input = codec->fromUnicode( value );
} else {
input = value.toUtf8();
}
} else if ( ( *lineIt ).value().type() == QVariant::ByteArray ) {
input = ( *lineIt ).value().toByteArray();
} else {
input = ( *lineIt ).value().toString().toUtf8();
}
// handle encoding
if ( hasEncoding ) { // have to encode the data
if ( encodingType == QLatin1String( "b" ) ) {
output = input.toBase64();
} else if ( encodingType == QLatin1String( "quoted-printable" ) ) {
KCodecs::quotedPrintableEncode( input, output, false );
}
} else {
output = input;
}
addEscapes( output, ( *lineIt ).identifier() == QLatin1String( "CATEGORIES" ) );
if ( !output.isEmpty() ) {
textLine.append( ':' + output );
if ( textLine.length() > FOLD_WIDTH ) { // we have to fold the line
for ( int i = 0; i <= ( textLine.length() / FOLD_WIDTH ); ++i ) {
text.append(
( i == 0 ? "" : " " ) + textLine.mid( i * FOLD_WIDTH, FOLD_WIDTH ) + "\r\n" );
}
} else {
text.append( textLine + "\r\n" );
}
//.........这里部分代码省略.........
示例6: readSettings
void VPiano::readSettings()
{
QSettings settings;
settings.beginGroup(QSTR_WINDOW);
restoreGeometry(settings.value(QSTR_GEOMETRY).toByteArray());
restoreState(settings.value(QSTR_STATE).toByteArray());
settings.endGroup();
settings.beginGroup(QSTR_PREFERENCES);
int in_channel = settings.value(QSTR_INCHANNEL, 0).toInt();
int out_channel = settings.value(QSTR_OUTCHANNEL, 0).toInt();
int velocity = settings.value(QSTR_VELOCITY, 100).toInt();
int base_octave = settings.value(QSTR_BASEOCTAVE, 3).toInt();
int num_octaves = settings.value(QSTR_NUMOCTAVES, 5).toInt();
QString insFileName = settings.value(QSTR_INSTRUMENTSDEFINITION).toString();
QString insName = settings.value(QSTR_INSTRUMENTNAME).toString();
QColor defColor = QApplication::palette().highlight().color();
QColor keyColor = settings.value(QSTR_KEYPRESSEDCOLOR, defColor).value<QColor>();
bool grabKb = settings.value(QSTR_GRABKB, false).toBool();
settings.endGroup();
dlgPreferences.setInChannel(in_channel);
dlgPreferences.setOutChannel(out_channel);
dlgPreferences.setVelocity(velocity);
dlgPreferences.setBaseOctave(base_octave);
dlgPreferences.setNumOctaves(num_octaves);
dlgPreferences.setKeyPressedColor(keyColor);
dlgPreferences.setGrabKeyboard(grabKb);
if (!insFileName.isEmpty()) {
dlgPreferences.setInstrumentsFileName(insFileName);
if (!insName.isEmpty()) {
dlgPreferences.setInstrumentName(insName);
}
}
settings.beginGroup(QSTR_CONNECTIONS);
bool inEnabled = settings.value(QSTR_INENABLED, true).toBool();
bool thruEnabled = settings.value(QSTR_THRUENABLED, false).toBool();
QString in_port = settings.value(QSTR_INPORT).toString();
QString out_port = settings.value(QSTR_OUTPORT).toString();
settings.endGroup();
if (m_midiin == NULL) {
dlgMidiSetup.inputNotAvailable();
} else {
dlgMidiSetup.setInputEnabled(inEnabled);
dlgMidiSetup.setThruEnabled(thruEnabled);
dlgMidiSetup.setCurrentInput(in_port);
}
dlgMidiSetup.setCurrentOutput(out_port);
settings.beginGroup(QSTR_KEYBOARD);
QString mapFile = settings.value(QSTR_MAPFILE, QSTR_DEFAULT).toString();
settings.endGroup();
settings.beginGroup(QSTR_INSTRUMENT);
m_lastBank = settings.value(QSTR_BANK, -1).toInt();
m_lastProg = settings.value(QSTR_PROGRAM, 0).toInt();
m_lastCtl = settings.value(QSTR_CONTROLLER, 1).toInt();
settings.endGroup();
settings.beginGroup(QSTR_CONTROLLERS);
QStringList keys = settings.allKeys();
QStringList::const_iterator it;
for(it = keys.constBegin(); it != keys.constEnd(); ++it) {
int ctl = (*it).toInt();
int val = settings.value(*it, 0).toInt();
m_ctlSettings[ctl] = val;
}
settings.endGroup();
if (!mapFile.isEmpty() && (mapFile != QSTR_DEFAULT)) {
QString msg = ui.pianokeybd->getKeyboardMap()->loadFromXMLFile(mapFile);
ui.statusBar->showMessage(msg);
}
}
示例7: addItems
bool Directory::addItems(const QString & path )
{
QDir thisDir( path );
if( !thisDir.isReadable() )
{
return false;
}
treeWidget()->setUpdatesEnabled( false );
bool added_something = false;
QStringList files = thisDir.entryList( QDir::Dirs, QDir::Name );
for( QStringList::const_iterator it = files.constBegin();
it != files.constEnd(); ++it )
{
QString cur_file = *it;
if( cur_file[0] != '.' )
{
bool orphan = true;
for( int i = 0; i < childCount(); ++i )
{
Directory * d = dynamic_cast<Directory *>(
child( i ) );
if( d == NULL || cur_file < d->text( 0 ) )
{
insertChild( i, new Directory( cur_file,
path, m_filter ) );
orphan = false;
m_dirCount++;
//recurse for each dir
addItems( path + cur_file + QDir::separator() );
break;
}
else if( cur_file == d->text( 0 ) )
{
d->addDirectory( path );
orphan = false;
break;
}
}
if( orphan )
{
addChild( new Directory( cur_file, path,
m_filter ) );
m_dirCount++;
}
added_something = true;
}
}
QList<QTreeWidgetItem*> items;
files = thisDir.entryList( QDir::Files, QDir::Name );
for( QStringList::const_iterator it = files.constBegin();
it != files.constEnd(); ++it )
{
QString cur_file = *it;
if( cur_file[0] != '.' &&
thisDir.match( m_filter, cur_file.toLower() ) )
{
items << new FileItem( cur_file, path );
added_something = true;
}
}
addChildren( items );
treeWidget()->setUpdatesEnabled( true );
return added_something;
}
示例8: log
void
CollectionScanner::scanFiles( const QStringList& entries )
{
typedef QPair<QString, QString> CoverBundle;
QStringList validImages; validImages << "jpg" << "png" << "gif" << "jpeg" << "bmp";
QStringList validPlaylists; validPlaylists << "m3u" << "pls";
QList<CoverBundle> covers;
QStringList images;
int itemCount = 0;
for( QStringList::ConstIterator it = entries.constBegin(), end = entries.constEnd(); it != end; ++it )
{
const QString path = *it;
const QString ext = extension( path );
const QString dir = directory( path );
itemCount++;
// Write path to logfile
if( !m_logfile.isEmpty() )
{
QFile log( m_logfile );
if( log.open( QIODevice::WriteOnly ) )
{
QByteArray cPath = path.toUtf8();
log.write( cPath, cPath.length() );
log.close();
}
}
if( validImages.contains( ext ) )
images += path;
else if( m_importPlaylists && validPlaylists.contains( ext ) )
{
AttributeHash attributes;
if( m_batch && !m_rpath.isEmpty() )
{
QString rpath = path;
rpath.remove( QDir::cleanPath( QDir::currentPath() ) );
rpath.prepend( QDir::cleanPath( m_rpath + '/' ) );
attributes["path"] = rpath;
}
else
attributes["path"] = path;
writeElement( "playlist", attributes );
}
else
{
//FIXME: PORT 2.0
// QList<EmbeddedImage> images;
const AttributeHash attributes = readTags( path );
if( !attributes.empty() )
{
writeElement( "tags", attributes );
CoverBundle cover( attributes["artist"], attributes["album"] );
if( !covers.contains( cover ) )
covers += cover;
//FIXME: PORT 2.0
// foreach( EmbeddedImage image, images )
// {
// AttributeHash attributes;
// if( m_batch && !m_rpath.isEmpty() )
// {
// QString rpath = path;
// rpath.remove( QDir::cleanPath( QDir::currentPath() ) );
// rpath.prepend( QDir::cleanPath( m_rpath + '/' ) );
// attributes["path"] = rpath;
// }
// else
// attributes["path"] = path;
// attributes["hash"] = image.hash();
// attributes["description"] = image.description();
// writeElement( "embed", attributes );
// }
}
}
// Update Compilation-flag, when this is the last loop-run
// or we're going to switch to another dir in the next run
QStringList::const_iterator itTemp( it );
++itTemp;
if( path == entries.last() || dir != directory( *itTemp ) )
{
// we entered the next directory
foreach( const QString &imagePath, images )
{
// Serialize CoverBundle list with AMAROK_MAGIC as separator
QString string;
for( QList<CoverBundle>::ConstIterator it2 = covers.begin(); it2 != covers.end(); ++it2 )
{
//.........这里部分代码省略.........
示例9: startFit
/**
* Start fitting process.
*/
void MuonSequentialFitDialog::startFit()
{
if ( m_state != Stopped )
throw std::runtime_error("Couln't start: already running");
setState(Preparing);
// Explicitly run the file search. This might be needed when Start is clicked straigh after
// editing the run box. In that case, lost focus event might not be processed yet and search
// might not have been started yet. Otherwise, search is not done as the widget sees that it
// has not been changed. Taken from LoadDialog.cpp:124.
m_ui.runs->findFiles();
// Wait for file search to finish.
while ( m_ui.runs->isSearching() )
{
QApplication::processEvents();
}
// To process events from the finished thread
QApplication::processEvents();
// Validate input fields
if ( ! isInputValid() )
{
QMessageBox::critical(this, "Input is not valid",
"One or more input fields are invalid.\n\nInvalid fields are marked with a '*'.");
setState(Stopped);
return;
}
QStringList runFilenames = m_ui.runs->getFilenames();
const std::string label = m_ui.labelInput->text().toStdString();
const std::string labelGroupName = SEQUENTIAL_PREFIX + label;
AnalysisDataServiceImpl& ads = AnalysisDataService::Instance();
if ( ads.doesExist(labelGroupName) )
{
QMessageBox::StandardButton answer = QMessageBox::question(this, "Label already exists",
"Label you specified was used for one of the previous fits. Do you want to overwrite it?",
QMessageBox::Yes | QMessageBox::Cancel);
if ( answer != QMessageBox::Yes )
{
setState(Stopped);
return;
}
ads.deepRemoveGroup(labelGroupName);
}
// Create a group for label
ads.add(labelGroupName, boost::make_shared<WorkspaceGroup>());
// Tell progress bar how many iterations we will need to make and reset it
m_ui.progress->setRange( 0, runFilenames.size() );
m_ui.progress->setFormat("%p%");
m_ui.progress->setValue(0);
// Clear diagnosis table for new fit
m_ui.diagnosisTable->setRowCount(0);
// Get fit function as specified by user in the fit browser
IFunction_sptr fitFunction = FunctionFactory::Instance().createInitialized(
m_fitPropBrowser->getFittingFunction()->asString() );
// Whether we should use initial function for every fit
bool useInitFitFunction = (m_ui.paramTypeGroup->checkedButton() == m_ui.paramTypeInitial);
setState(Running);
m_stopRequested = false;
for ( auto fileIt = runFilenames.constBegin(); fileIt != runFilenames.constEnd(); ++fileIt )
{
// Process events (so that Stop button press is processed)
QApplication::processEvents();
// Stop if requested by user
if ( m_stopRequested )
break;
MatrixWorkspace_sptr ws;
auto load = boost::dynamic_pointer_cast<AlgorithmProxy>( AlgorithmManager::Instance().create("MuonLoad") );
load->setChild(true);
load->setRethrows(true);
load->copyPropertiesFrom(*m_loadAlg);
try
{
load->initialize();
load->setPropertyValue( "Filename", fileIt->toStdString() );
load->setPropertyValue( "OutputWorkspace", "__YouDontSeeMeIAmNinja" ); // Is not used
//.........这里部分代码省略.........
示例10: main
int main(int argc, char **argv)
{
QApplication app(argc, argv, true);
QTranslator custranldr;
QTranslator translator;
QString tnapplang;
QString tnappcoun;
QString clangcode = "";
QStringList allappargs = app.arguments();
QList<QPair<QString, QString> > oppairs;
for (QList<QString>::const_iterator i = allappargs.constBegin(); i < allappargs.constEnd(); ++i)
{
if (i->count('=') == 1)
oppairs.append(QPair<QString, QString>(i->section('=', 0, 0).simplified(), i->section('=',1, 1).simplified()));
}
for (QList<QPair<QString, QString> >::const_iterator i = oppairs.constBegin(); i < oppairs.constEnd(); ++i)
{
if (i->first.contains("lang", Qt::CaseInsensitive))
{
clangcode = i->second;
tnapplang = clangcode.left(2);
if (clangcode.contains('_') && clangcode.size() == 5)
{
tnappcoun = clangcode.section('_', -1, -1);
}
break;
}
}
if (clangcode.isEmpty())
{
clangcode = QLocale::system().name();
tnapplang = clangcode.left(2);
if (clangcode.contains('_') && clangcode.size() == 5)
{
tnappcoun = clangcode.section('_', -1, -1);
}
}
QDir applocdir(app.applicationDirPath());
QStringList applocfiles = applocdir.entryList(QStringList() << "*.qm", QDir::Files);
if (!applocfiles.isEmpty())
{
QString custqmfilepath = applocfiles.at(0);
if (!applocfiles.filter("unetbootin").isEmpty())
{
custqmfilepath = applocfiles.filter("unetbootin").at(0);
if (!applocfiles.filter("unetbootin").filter(tnapplang).isEmpty())
{
custqmfilepath = applocfiles.filter("unetbootin").filter(tnapplang).at(0);
if (!tnappcoun.isEmpty() && !applocfiles.filter("unetbootin").filter(tnapplang).filter(tnappcoun).isEmpty())
custqmfilepath = applocfiles.filter("unetbootin").filter(tnapplang).filter(tnappcoun).at(0);
}
}
if (custranldr.load(custqmfilepath, app.applicationDirPath()))
app.installTranslator(&custranldr);
}
if (!tnappcoun.isEmpty() && QFile::exists(QString("%1/unetbootin_%2_%3.qm").arg(app.applicationDirPath()).arg(tnapplang).arg(tnappcoun)) && translator.load(QString("%1/unetbootin_%2_%3.qm").arg(app.applicationDirPath()).arg(tnapplang).arg(tnappcoun)))
{
app.installTranslator(&translator);
}
else if (!tnappcoun.isEmpty() && QFile::exists(QString(":/unetbootin_%1_%2.qm").arg(tnapplang).arg(tnappcoun)) && translator.load(QString(":/unetbootin_%1_%2.qm").arg(tnapplang).arg(tnappcoun)))
{
app.installTranslator(&translator);
}
else if (!tnappcoun.isEmpty() && QFile::exists(QString("/usr/share/unetbootin/unetbootin_%1_%2.qm").arg(tnapplang).arg(tnappcoun)) && translator.load(QString("/usr/share/unetbootin/unetbootin_%1_%2.qm").arg(tnapplang).arg(tnappcoun)))
{
app.installTranslator(&translator);
}
else if (QFile::exists(QString("%1/unetbootin_%2.qm").arg(app.applicationDirPath(), tnapplang)) && translator.load(QString("%1/unetbootin_%2.qm").arg(app.applicationDirPath(), tnapplang)))
{
app.installTranslator(&translator);
}
else if (QFile::exists(QString(":/unetbootin_%1.qm").arg(tnapplang)) && translator.load(QString(":/unetbootin_%1.qm").arg(tnapplang)))
{
app.installTranslator(&translator);
}
else if (QFile::exists(QString("/usr/share/unetbootin/unetbootin_%1.qm").arg(tnapplang)) && translator.load(QString("/usr/share/unetbootin/unetbootin_%1.qm").arg(tnapplang)))
{
app.installTranslator(&translator);
}
else
{
tnapplang = "en";
tnappcoun = "US";
clangcode = "en_US";
}
app.installTranslator(&translator);
if (QObject::tr("LeftToRight") == "RightToLeft")
app.setLayoutDirection(Qt::RightToLeft);
#ifdef Q_OS_UNIX
bool disabledrootcheck = false;
for (QList<QPair<QString, QString> >::const_iterator i = oppairs.constBegin(); i < oppairs.constEnd(); ++i)
{
if (i->first.contains("rootcheck", Qt::CaseInsensitive))
{
if (i->second.contains('n', Qt::CaseInsensitive))
disabledrootcheck = true;
break;
}
}
if (!disabledrootcheck)
//.........这里部分代码省略.........
示例11: main
//.........这里部分代码省略.........
}
fill_data.chan_data.m_cardType = cmdline.toString("cardtype")
.trimmed().toUpper();
}
if (cmdline.toBool("maxdays") && cmdline.toInt("maxdays") > 0)
{
fill_data.maxDays = cmdline.toInt("maxdays");
if (fill_data.maxDays == 1)
fill_data.SetRefresh(0, true);
}
if (cmdline.toBool("refreshtoday"))
cmdline.SetValue("refresh",
cmdline.toStringList("refresh") << "today");
if (cmdline.toBool("dontrefreshtomorrow"))
cmdline.SetValue("refresh",
cmdline.toStringList("refresh") << "nottomorrow");
if (cmdline.toBool("refreshsecond"))
cmdline.SetValue("refresh",
cmdline.toStringList("refresh") << "second");
if (cmdline.toBool("refreshall"))
cmdline.SetValue("refresh",
cmdline.toStringList("refresh") << "all");
if (cmdline.toBool("refreshday"))
cmdline.SetValue("refresh",
cmdline.toStringList("refresh") <<
cmdline.toStringList("refreshday"));
QStringList sl = cmdline.toStringList("refresh");
if (!sl.isEmpty())
{
QStringList::const_iterator i = sl.constBegin();
for (; i != sl.constEnd(); ++i)
{
QString warn = QString("Invalid entry in --refresh list: %1")
.arg(*i);
bool enable = (*i).contains("not") ? false : true;
if ((*i).contains("today"))
fill_data.SetRefresh(0, enable);
else if ((*i).contains("tomorrow"))
fill_data.SetRefresh(1, enable);
else if ((*i).contains("second"))
fill_data.SetRefresh(2, enable);
else if ((*i).contains("all"))
fill_data.SetRefresh(FillData::kRefreshAll, enable);
else if ((*i).contains("-"))
{
bool ok;
QStringList r = (*i).split("-");
uint lower = r[0].toUInt(&ok);
if (!ok)
{
cerr << warn.toLocal8Bit().constData() << endl;
return false;
}
uint upper = r[1].toUInt(&ok);
if (!ok)
{
cerr << warn.toLocal8Bit().constData() << endl;
return false;
}
示例12: snapToBackgroundLayers
int QgsMapCanvasSnapper::snapToBackgroundLayers( const QgsPoint& point, QList<QgsSnappingResult>& results, const QList<QgsPoint>& excludePoints )
{
results.clear();
if ( !mSnapper )
return 5;
//topological editing on?
int topologicalEditing = QgsProject::instance()->readNumEntry( "Digitizing", "/TopologicalEditing", 0 );
//snapping on intersection on?
int intersectionSnapping = QgsProject::instance()->readNumEntry( "Digitizing", "/IntersectionSnapping", 0 );
if ( topologicalEditing == 0 )
{
if ( intersectionSnapping == 0 )
mSnapper->setSnapMode( QgsSnapper::SnapWithOneResult );
else
mSnapper->setSnapMode( QgsSnapper::SnapWithResultsWithinTolerances );
}
else if ( intersectionSnapping == 0 )
{
mSnapper->setSnapMode( QgsSnapper::SnapWithResultsForSamePosition );
}
else
{
mSnapper->setSnapMode( QgsSnapper::SnapWithResultsWithinTolerances );
}
//read snapping settings from project
bool snappingDefinedInProject, ok;
QStringList layerIdList = QgsProject::instance()->readListEntry( "Digitizing", "/LayerSnappingList", QStringList(), &snappingDefinedInProject );
QStringList enabledList = QgsProject::instance()->readListEntry( "Digitizing", "/LayerSnappingEnabledList", QStringList(), &ok );
QStringList toleranceList = QgsProject::instance()->readListEntry( "Digitizing", "/LayerSnappingToleranceList", QStringList(), &ok );
QStringList toleranceUnitList = QgsProject::instance()->readListEntry( "Digitizing", "/LayerSnappingToleranceUnitList", QStringList(), &ok );
QStringList snapToList = QgsProject::instance()->readListEntry( "Digitizing", "/LayerSnapToList", QStringList(), &ok );
if ( !( layerIdList.size() == enabledList.size() &&
layerIdList.size() == toleranceList.size() &&
layerIdList.size() == toleranceUnitList.size() &&
layerIdList.size() == snapToList.size() ) )
{
// lists must have the same size, otherwise something is wrong
return 1;
}
QList<QgsSnapper::SnapLayer> snapLayers;
QgsSnapper::SnapLayer snapLayer;
// Use snapping information from the project
if ( snappingDefinedInProject )
{
// set layers, tolerances, snap to segment/vertex to QgsSnapper
QStringList::const_iterator layerIt( layerIdList.constBegin() );
QStringList::const_iterator tolIt( toleranceList.constBegin() );
QStringList::const_iterator tolUnitIt( toleranceUnitList.constBegin() );
QStringList::const_iterator snapIt( snapToList.constBegin() );
QStringList::const_iterator enabledIt( enabledList.constBegin() );
for ( ; layerIt != layerIdList.constEnd(); ++layerIt, ++tolIt, ++tolUnitIt, ++snapIt, ++enabledIt )
{
if ( *enabledIt != "enabled" )
{
// skip layer if snapping is not enabled
continue;
}
//layer
QgsVectorLayer *vlayer = qobject_cast<QgsVectorLayer *>( QgsMapLayerRegistry::instance()->mapLayer( *layerIt ) );
if ( !vlayer || !vlayer->hasGeometryType() )
continue;
snapLayer.mLayer = vlayer;
//tolerance
snapLayer.mTolerance = tolIt->toDouble();
snapLayer.mUnitType = ( QgsTolerance::UnitType ) tolUnitIt->toInt();
// segment or vertex
if ( *snapIt == "to_vertex" )
{
snapLayer.mSnapTo = QgsSnapper::SnapToVertex;
}
else if ( *snapIt == "to_segment" )
{
snapLayer.mSnapTo = QgsSnapper::SnapToSegment;
}
else
{
// to vertex and segment
snapLayer.mSnapTo = QgsSnapper::SnapToVertexAndSegment;
}
snapLayers.append( snapLayer );
}
}
else
{
// nothing in project. Use default snapping tolerance to vertex of current layer
QgsMapLayer* currentLayer = mMapCanvas->currentLayer();
if ( !currentLayer )
//.........这里部分代码省略.........
示例13: filterIncidence
bool CalFilter::filterIncidence( Incidence::Ptr incidence ) const
{
if ( !d->mEnabled ) {
return true;
}
Todo::Ptr todo = incidence.dynamicCast<Todo>();
if ( todo ) {
if ( ( d->mCriteria & HideCompletedTodos ) && todo->isCompleted() ) {
// Check if completion date is suffently long ago:
if ( todo->completed().addDays( d->mCompletedTimeSpan ) <
KDateTime::currentUtcDateTime() ) {
return false;
}
}
if ( ( d->mCriteria & HideInactiveTodos ) &&
( ( todo->hasStartDate() &&
KDateTime::currentUtcDateTime() < todo->dtStart() ) ||
todo->isCompleted() ) ) {
return false;
}
if ( d->mCriteria & HideNoMatchingAttendeeTodos ) {
bool iAmOneOfTheAttendees = false;
const Attendee::List &attendees = todo->attendees();
if ( !todo->attendees().isEmpty() ) {
Attendee::List::ConstIterator it;
for ( it = attendees.begin(); it != attendees.end(); ++it ) {
if ( d->mEmailList.contains( ( *it )->email() ) ) {
iAmOneOfTheAttendees = true;
break;
}
}
} else {
// no attendees, must be me only
iAmOneOfTheAttendees = true;
}
if ( !iAmOneOfTheAttendees ) {
return false;
}
}
}
if ( d->mCriteria & HideRecurring ) {
if ( incidence->recurs() ) {
return false;
}
}
if ( d->mCriteria & ShowCategories ) {
for ( QStringList::ConstIterator it = d->mCategoryList.constBegin();
it != d->mCategoryList.constEnd(); ++it ) {
QStringList incidenceCategories = incidence->categories();
for ( QStringList::ConstIterator it2 = incidenceCategories.constBegin();
it2 != incidenceCategories.constEnd(); ++it2 ) {
if ( ( *it ) == ( *it2 ) ) {
return true;
}
}
}
return false;
} else {
for ( QStringList::ConstIterator it = d->mCategoryList.constBegin();
it != d->mCategoryList.constEnd(); ++it ) {
QStringList incidenceCategories = incidence->categories();
for ( QStringList::ConstIterator it2 = incidenceCategories.constBegin();
it2 != incidenceCategories.constEnd(); ++it2 ) {
if ( ( *it ) == ( *it2 ) ) {
return false;
}
}
}
return true;
}
return true;
}
示例14: loadHistoryProject
void ProjectManager::loadHistoryProject()
{
// 配置文件的每个group 都是项目根目录的绝对路径, 这样可以保持treeview中的每个group都是唯一的
QStringList projectList = historySettings->childGroups();
QStringList::const_iterator constIterator = projectList.constBegin();
QStringList::const_iterator endIterator = projectList.constEnd();
// 初始化 allProjectMap
while (constIterator != endIterator) {
if (!allProjectMap.contains(*constIterator))
allProjectMap[*constIterator] = QString();
++constIterator;
}
qDebug() << "导入历史项目中 ...";
constIterator = projectList.constBegin();
while (constIterator != endIterator) {
qDebug() << "开始导入项目" << *constIterator << "...";
historySettings->beginGroup(*constIterator);
QString rootPath = historySettings->value("RootPath").toString();
if (rootPath.contains(QRegExp("/\\s*$"))) {
rootPath.remove(QRegExp("/\\s*$"));
historySettings->setValue("RootPath", rootPath);
}
// 如果 pathList 中含有rootPath, 则说明该位置的项目已经导入了, 不需要重新导入它
// 从 historySettings 和 allProjectMap 中删除它, 并继续下一个项目
if (pathList.contains(rootPath)) {
historySettings->endGroup();
qDebug() << "目录" << rootPath << "中的项目已经导入, 不需要重新导入";
historySettings->remove(*constIterator);
allProjectMap.remove(*constIterator);
++constIterator;
continue;
}
// 如果rootPath 为空 或者 不存在该目录, 则从historySettings和allProjectMap中删除该项目
if (rootPath.isEmpty() || !QFile::exists(rootPath)) {
historySettings->endGroup();
qDebug() << "目录" << rootPath + "不存在, 放弃该项目" << *constIterator;
allProjectMap.remove(*constIterator);
historySettings->remove(*constIterator);
++constIterator;
continue;
}
// 查看是否存在project.small文件, 如果不存在, 则拷贝一份模板, 如果拷贝失败, 则从historySettings和allProjectMap中删除该项目
// 之所以在不存在的情况加拷贝一份模板, 是因为用户可能误删了配置文件, 所以重新建立它
bool isNew = false;
QFileInfo fileInfo(rootPath + "/project.small");
if (!fileInfo.exists()) {
if (!QFile::copy(Global::projectConfigTemplate(), fileInfo.absoluteFilePath())) {
QString errorInfo = "拷贝项目配置文件失败 \ncopy from:" + Global::projectConfigTemplate() +
"\n copy to:" + fileInfo.absoluteFilePath() + "\n没有导入该项目\"" + *constIterator + "\"";
qDebug() << errorInfo;
hintInfoList << errorInfo;
emit hint(errorInfo);
historySettings->endGroup();
allProjectMap.remove(*constIterator);
historySettings->remove(*constIterator);
++constIterator;
continue;
}
isNew = true;
} else if (!fileInfo.isFile() || !fileInfo.isWritable() || !fileInfo.isReadable()) {
// 如果project.small不是普通文件或者没有读写权限, 则从historySettings和allProjectMap中删除该项目
QString errorInfo = "文件\"" + fileInfo.absoluteFilePath() + "\"不是普通文件, 或者您没有它读写权限"
+ "\n没有导入该项目\"" + *constIterator + "\"";
qDebug() << errorInfo;
hintInfoList << errorInfo;
emit hint(errorInfo);
historySettings->endGroup();
allProjectMap.remove(*constIterator);
historySettings->remove(*constIterator);
++constIterator;
continue;
}
QSettings *projectSettings = new QSettings(fileInfo.absoluteFilePath(), QSettings::IniFormat);
// 如果配置文件是复制得到的, 设置 Name = *constIterator
if (isNew || projectSettings->value("Name").toString().isEmpty()) {
projectSettings->setValue("Name", *constIterator);
projectSettings->sync();
}
QString projectName = projectSettings->value("Name").toString();
// 如果project.small文件中的Name 与 历史配置文件的项目名称变量不一致, 则使之尽可能与项目配置文件一致
if (projectName != *constIterator) {
projectName = validProjectName(projectName);
qDebug() << "项目名称" << *constIterator << "与project.small配置文件中的Name不一致, 修改项目名称";
qDebug() << "修改后的名称为" << projectName;
// 暂存historySettings中项目oldName配置
QString status = historySettings->value("Status", "On").toString();
QString isCurrent = historySettings->value("IsCurrent", "False").toString();
QString path = historySettings->value("RootPath").toString();
historySettings->endGroup();
// 移除 historySettings中的oldName配置, 加入newName的配置
historySettings->remove(*constIterator);
historySettings->setValue(projectName + "/Status", status);
//.........这里部分代码省略.........
示例15: declaration
/*!
Creates a declaration (header file) for the form given in \a e
\sa createFormImpl()
*/
void Ui3Reader::createFormDecl(const QDomElement &e, bool implicitIncludes)
{
QDomElement body = e;
QDomElement n;
QDomNodeList nl;
int i;
QString objClass = getClassName(e);
if (objClass.isEmpty())
return;
QString objName = getObjectName(e);
QStringList typeDefs;
QMap<QString, CustomInclude> customWidgetIncludes;
/*
We are generating a few QImage members that are not strictly
necessary in some cases. Ideally, we would use requiredImage,
which is computed elsewhere, to keep the generated .h and .cpp
files synchronized.
*/
// at first the images
QMap<QString, int> customWidgets;
QStringList forwardDecl;
QStringList forwardDecl2;
for (n = e; !n.isNull(); n = n.nextSibling().toElement()) {
if (n.tagName().toLower() == QLatin1String("customwidgets")) {
QDomElement n2 = n.firstChild().toElement();
while (!n2.isNull()) {
if (n2.tagName().toLower() == QLatin1String("customwidget")) {
QDomElement n3 = n2.firstChild().toElement();
QString cl;
while (!n3.isNull()) {
QString tagName = n3.tagName().toLower();
if (tagName == QLatin1String("class")) {
cl = n3.firstChild().toText().data();
if (!nofwd)
forwardDecl << cl;
customWidgets.insert(cl, 0);
} else if (tagName == QLatin1String("header")) {
CustomInclude ci;
ci.header = n3.firstChild().toText().data();
ci.location = n3.attribute(QLatin1String("location"), QLatin1String("global"));
if (!ci.header.isEmpty())
forwardDecl.removeAll(cl);
customWidgetIncludes.insert(cl, ci);
}
n3 = n3.nextSibling().toElement();
}
}
n2 = n2.nextSibling().toElement();
}
}
}
// register the object and unify its name
objName = registerObject(objName);
QString protector = objName.toUpper() + QLatin1String("_H");
protector.replace(QLatin1String("::"), QLatin1String("_"));
out << "#ifndef " << protector << endl;
out << "#define " << protector << endl;
out << endl;
out << "#include <qvariant.h>" << endl; // for broken HP-UX compilers
QStringList globalIncludes, localIncludes;
{
QMap<QString, CustomInclude>::Iterator it = customWidgetIncludes.find(objClass);
if (it != customWidgetIncludes.end()) {
if ((*it).location == QLatin1String("global"))
globalIncludes += (*it).header;
else
localIncludes += (*it).header;
}
}
QStringList::ConstIterator it;
globalIncludes = unique(globalIncludes);
for (it = globalIncludes.constBegin(); it != globalIncludes.constEnd(); ++it) {
if (!(*it).isEmpty()) {
QString header = fixHeaderName(*it);
out << "#include <" << header << ">" << endl;
}
}
localIncludes = unique(localIncludes);
for (it = localIncludes.constBegin(); it != localIncludes.constEnd(); ++it) {
if (!(*it).isEmpty()) {
QString header = fixHeaderName(*it);
out << "#include \"" << header << "\"" << endl;
}
}
//.........这里部分代码省略.........