void MasterConfiguration::loadMasterSettings() { QXmlQuery query; if(!query.setFocus(QUrl(filename_))) { put_flog(LOG_FATAL, "failed to load %s", filename_.toLatin1().constData()); exit(-1); } QString queryResult; // dock start directory query.setQuery("string(/configuration/dock/@directory)"); if (query.evaluateTo(&queryResult)) dockStartDir_ = queryResult.remove(QRegExp("[\\n\\t\\r]")); if( dockStartDir_.isEmpty( )) dockStartDir_ = QDir::homePath(); // WebService server port query.setQuery("string(/configuration/webservice/@port)"); if (query.evaluateTo(&queryResult)) { if (queryResult.isEmpty()) dcWebServicePort_ = DEFAULT_WEBSERVICE_PORT; else dcWebServicePort_ = queryResult.toInt(); } }
void LastFmContext::readContextReply() { qDebug("Got reply!"); QString replyString = QString::fromUtf8(contextReply->readAll()); if (replyString.isEmpty()) { emit contextError(); return; // Avoid empty parsing of XML } // Parametres QString status; QString artistName; QString artistPicture; QString artistSummary; QString artistProfile; QXmlQuery query; query.setFocus(replyString); query.setQuery("lfm[@status = 'ok']/count(artist)"); query.evaluateTo(&status); status = status.trimmed(); qDebug("Status: " + status.toUtf8()); /* * If we got the data successfully, let's read it. * I hate XML. */ if (status == "1") { query.setQuery("lfm/artist/name/text()"); query.evaluateTo(&artistName); artistName = artistName.trimmed(); query.setQuery("lfm/artist/url/text()"); query.evaluateTo(&artistProfile); artistProfile = artistProfile.trimmed(); query.setQuery("lfm/artist/image[@size=\"extralarge\"]/text()"); query.evaluateTo(&artistPicture); artistPicture = artistPicture.trimmed(); // Summary has HTML entities that must be un-replaced. query.setQuery("lfm/artist/bio/summary/text()"); query.evaluateTo(&artistSummary); artistSummary = artistSummary.trimmed().replace("<","<").replace(">",">"); // Store the context data into... contextData. Nice! contextData.clear(); contextData.insert("artist", artistName); contextData.insert("picture", artistPicture); contextData.insert("summary", artistSummary); contextData.insert("profile", artistProfile); // Emit the signal emit contextUpdated(contextData); } else { qDebug("FAIL!"); emit contextError(); } }
void JobEventList::setContent(const QString &content, const QString &userName, QList<qint64> jobIds) { m_xml = content; m_valid = true; MessageHandler handler; QXmlQuery query; query.setMessageHandler(&handler); JobEventListXmlReceiver receiver(query.namePool()); query.setFocus(m_xml); if (jobIds.isEmpty()) { query.setQuery("/list/JobEvent"); } else { QString xpath = "/list/JobEvent/jobID["; QListIterator<qint64> iter(jobIds); while (iter.hasNext()) { qint64 jobId = iter.next(); xpath += QString("starts-with(text(), '%1')").arg(jobId); if (iter.hasNext()) xpath += " or "; } xpath += "]/parent::node()"; query.setQuery(xpath); } m_valid = query.evaluateTo(&receiver); m_jobEvents = receiver.jobEvents(); }
SimXmlElement SimXmlDoc::findElement(const std::string& elementName, const std::string& refId) const { SimXmlElement result(QSharedPointer<QDomElement>(), *this); if (isNull()){ return result; } QString queryString = simQuery("/SimModel/" + elementName + "[@RefId='" + refId + "'][1]"); QXmlQuery query; QDomNodeModel model(query.namePool(), *(impl())); query.setFocus(QXmlItem(model.fromDomNode(impl()->documentElement()))); query.setQuery(queryString, QUrl(QString::fromStdString(this->path()))); if (query.isValid()) { QXmlResultItems items; query.evaluateTo(&items); QXmlItem item(items.next()); if(!item.isNull()) { QDomElement elem = model.toDomNode(item.toNodeModelIndex()).toElement(); QSharedPointer<QDomElement> impl(new QDomElement(elem)); result = SimXmlElement(impl, *this); } } return result; }
QString F520xmlserializer::query(F520Status *f520, QString day, QString month, SysError &sysErr) { QXmlQuery query; QString res; QFile xml(f520->getXmlPath()); if ( ! xml.exists()) { xml.setFileName(f520->getXmlPath()); if ( ! xml.exists()) { sysErr = SysError(SysError::F520_CAN_NOT_OPEN_FILE, "F520 Rasource file not exist"); return ""; } } if (!xml.open(QIODevice::ReadOnly | QIODevice::Text)) { sysErr = SysError(SysError::F520_RESOUCES_NOT_EXIST, "F520 can not open xml resource file"); return ""; } QString queryStr = CARICO + "/" + DAYS + "/" + DAY + "[@" + DAY_VALUE + "='" + day + "'][@" + MONTH_VALUE + "='" + month + "']"; qDebug() << "F520xmlserializer::query: " << queryStr; query.setFocus(&xml); query.setQuery(queryStr); if ( ! query.isValid()) { qDebug() << "F520xmlserializer::query query not valid"; sysErr = SysError(SysError::F520_QUERY_ERROR, "F520 Query is invalid: " + queryStr); return ""; } query.evaluateTo(&res); if (!(res.length() > 1)) { queryStr = CARICO + "/" + DAYS + "/" + DAY + "[@" + NAME + "='" + DEFAULT_DAY + "']"; qDebug() << "F520xmlserializer::query: " << queryStr; query.setQuery(queryStr); if (!query.isValid()) { qDebug() << "F520xmlserializer::query query not valid"; sysErr = SysError(SysError::F520_QUERY_ERROR, "F520 Query is invalid: " + queryStr); return ""; } query.evaluateTo(&res); } xml.close(); qDebug() << "F520xmlserializer::query " << res; QDomDocument watt; watt.setContent("" + res + ""); QDomNodeList entryNodes = watt.elementsByTagName(DAY); QString rtn; for (int i = 0; i < entryNodes.count(); i++) { QDomElement node = entryNodes.at(i).toElement(); rtn = node.attribute(WATT); break; } qDebug() << "F520xmlserializer::query " << rtn; return rtn; }
void RssFeedNode::render(Grantlee::OutputStream* stream, Grantlee::Context* c) { QNetworkAccessManager *mgr = new QNetworkAccessManager(this); QUrl url(Grantlee::getSafeString(m_url.resolve(c))); QNetworkReply *reply = mgr->get(QNetworkRequest(url)); QEventLoop eLoop; connect( mgr, SIGNAL( finished( QNetworkReply * ) ), &eLoop, SLOT( quit() ) ); eLoop.exec( QEventLoop::ExcludeUserInputEvents ); c->push(); foreach(Grantlee::Node *n, m_childNodes) { if (!n->inherits(XmlNamespaceNode::staticMetaObject.className())) continue; Grantlee::OutputStream _dummy; n->render(&_dummy, c); } QXmlQuery query; QByteArray ba = reply->readAll(); QBuffer buffer; buffer.setData(ba); buffer.open(QIODevice::ReadOnly); query.bindVariable("inputDocument", &buffer); QString ns; QHash<QString, QVariant> h = c->lookup("_ns").toHash(); QHash<QString, QVariant>::const_iterator it = h.constBegin(); const QHash<QString, QVariant>::const_iterator end = h.constEnd(); for ( ; it != end; ++it ) { if (it.key().isEmpty()) { ns += QLatin1Literal( "declare default element namespace " ) + QLatin1Literal( " \"" ) + it.value().toString() + QLatin1Literal( "\";\n" ); } else { ns += QLatin1Literal( "declare namespace " ) + it.key() + QLatin1Literal( " = \"" ) + it.value().toString() + QLatin1Literal( "\";\n" ); } } query.setQuery(ns + "doc($inputDocument)" + Grantlee::getSafeString(m_query.resolve(c)).get()); QXmlResultItems result; query.evaluateTo(&result); QXmlItem item(result.next()); int count = 0; while (!item.isNull()) { if (count++ > 20) break; query.setFocus(item); c->push(); foreach(Grantlee::Node *n, m_childNodes) { if (n->inherits(XmlNamespaceNode::staticMetaObject.className())) continue; c->insert("_q", QVariant::fromValue(query)); n->render(stream, c); } c->pop(); item = result.next(); } c->pop(); }
void Configuration::load() { QXmlQuery query; if(!query.setFocus(QUrl(filename_))) throw std::runtime_error("Invalid configuration file: " + filename_.toStdString()); QString queryResult; // get screen / mullion dimensions query.setQuery("string(/configuration/dimensions/@numTilesWidth)"); if(query.evaluateTo(&queryResult)) totalScreenCountX_ = queryResult.toInt(); query.setQuery("string(/configuration/dimensions/@numTilesHeight)"); if(query.evaluateTo(&queryResult)) totalScreenCountY_ = queryResult.toInt(); query.setQuery("string(/configuration/dimensions/@screenWidth)"); if(query.evaluateTo(&queryResult)) screenWidth_ = queryResult.toInt(); query.setQuery("string(/configuration/dimensions/@screenHeight)"); if(query.evaluateTo(&queryResult)) screenHeight_ = queryResult.toInt(); query.setQuery("string(/configuration/dimensions/@mullionWidth)"); if(query.evaluateTo(&queryResult)) mullionWidth_ = queryResult.toInt(); query.setQuery("string(/configuration/dimensions/@mullionHeight)"); if(query.evaluateTo(&queryResult)) mullionHeight_ = queryResult.toInt(); // check for fullscreen mode flag query.setQuery("string(/configuration/dimensions/@fullscreen)"); if(query.evaluateTo(&queryResult)) fullscreen_ = queryResult.toInt() != 0; // Background content URI query.setQuery("string(/configuration/background/@uri)"); if(query.evaluateTo(&queryResult)) backgroundUri_ = queryResult.remove(QRegExp("[\\n\\t\\r]")); // Background color query.setQuery("string(/configuration/background/@color)"); if (query.evaluateTo(&queryResult)) { queryResult.remove(QRegExp("[\\n\\t\\r]")); QColor newColor( queryResult ); if( newColor.isValid( )) backgroundColor_ = newColor; } }
void YandexNarodUploadJob::onDirectoryChecked() { QNetworkReply *reply = qobject_cast<QNetworkReply *>(sender()); Q_ASSERT(reply); reply->deleteLater(); const int code = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(); if (code == 404) { // Directory is not created yet, so be a god YandexRequest request(reply->url()); QNetworkReply *reply = YandexNarodFactory::networkManager() ->sendCustomRequest(request, "MKCOL"); connect(reply, SIGNAL(finished()), this, SLOT(onDirectoryCreated())); return; } const QString xmlData = QString::fromUtf8(reply->readAll()); QStringList files; QXmlQuery query; query.setFocus(xmlData); query.setQuery(QLatin1String("declare default element namespace \"DAV:\";" "/multistatus/response/href/text()/string()")); query.evaluateTo(&files); if (files.contains(QLatin1String("/qutim-filetransfer"))) { // Oops... May be check another directories? setState(Error); setError(NetworkError); setErrorString(QT_TR_NOOP("Can't create directory \"/qutim-filetransfer/\"")); return; } const QString fileName = YandexNarodUploadJob::fileName(); QUrl url = reply->url(); QString path = url.path(); QString filePath = path + fileName; if (files.contains(filePath)) { const QString basename = fileName.section(QLatin1Char('.'), 0, 0); const QString suffix = fileName.section(QLatin1Char('.'), 1); for (int i = 1; ; ++i) { filePath = path % basename % QLatin1Char('(') % QString::number(i) % QLatin1Char(')') % (suffix.isEmpty() ? QLatin1Literal("") : QLatin1Literal(".")) % suffix; if (!files.contains(filePath)) break; } } uploadFile(reply->url().resolved(QUrl(filePath))); }
void MasterConfiguration::loadMasterSettings() { QXmlQuery query; if(!query.setFocus(QUrl(filename_))) { put_flog(LOG_FATAL, "failed to load %s", filename_.toLatin1().constData()); exit(-1); } loadDockStartDirectory(query); loadWebBrowserStartURL(query); }
RepoInfo ParseRepoInfo (const QUrl& url, const QString& data) { QXmlQuery query; query.setFocus (data); RepoInfo info (url); QString out; query.setQuery ("/repo/name/text()"); if (!query.evaluateTo (&out)) throw QObject::tr ("Could not get repo name."); info.SetName (out.simplified ()); query.setQuery ("/repo/description/short/text()"); if (!query.evaluateTo (&out)) throw QObject::tr ("Could not get repo description."); info.SetShortDescr (out.simplified ()); query.setQuery ("/repo/description/long/text()"); if (!query.evaluateTo (&out)) throw QObject::tr ("Could not get long repo description."); info.SetLongDescr (out.simplified ()); MaintainerInfo maintInfo; query.setQuery ("/repo/maintainer/name/text()"); if (!query.evaluateTo (&out)) throw QObject::tr ("Could not get maintainer name."); maintInfo.Name_ = out.simplified (); query.setQuery ("/repo/maintainer/email/text()"); if (!query.evaluateTo (&out)) throw QObject::tr ("Could not get maintainer email."); maintInfo.Email_ = out.simplified (); info.SetMaintainer (maintInfo); QStringList components; query.setQuery ("/repo/components/component/text()"); if (query.evaluateTo (&components)) info.SetComponents (components); else if (query.evaluateTo (&out)) info.SetComponents (QStringList (out)); else throw QObject::tr ("Could not get components."); return info; }
QString runXmlQuerry(QFile *file, QString querry) { F_TRACE; QXmlQuery query; QString res; file->seek(0); query.setFocus(file); query.setQuery(querry); if ( ! query.isValid()) { qDebug() << "Invalid querry" << querry; } query.evaluateTo(&res); return res.simplified(); }
QString CXSettingsXML::getValue(const QString& aFileName, const QString& aName, const QString& def) { QString result; QFile xmlFile(aFileName); if (xmlFile.open(QIODevice::ReadOnly)) { QXmlQuery query; query.setFocus(&xmlFile); query.setQuery(QString("/Settings/%1/text()").arg(aName)); query.evaluateTo(&result); xmlFile.close(); } if(result.length() == 0) result = def; return result; }
void FotoBilderAccount::handleGetChallengeRequestFinished () { QDomDocument document; const QByteArray& content = CreateDomDocumentFromReply (qobject_cast<QNetworkReply*> (sender ()), document); if (content.isEmpty ()) return; QXmlQuery query; query.setFocus (content); QString challenge; query.setQuery ("/FBResponse/GetChallengeResponse/Challenge/text()"); if (!query.evaluateTo (&challenge)) return; if (!CallsQueue_.isEmpty ()) CallsQueue_.dequeue () (challenge.trimmed ()); }
Presets *PtzManagement::getPresets() { Presets *presets = NULL; Message *msg = newMessage(); QDomElement getPresets = newElement("wsdl:GetPresets"); QDomElement profileToken = newElement("wsdl:ProfileToken","profile_CIF"); getPresets.appendChild(profileToken); msg->appendToBody(getPresets); MessageParser *result = sendMessage(msg); if(result != NULL){ presets = new Presets(); QXmlQuery *query = result->query(); QXmlResultItems items; QXmlItem item; QString value,xml; QDomDocument doc; QDomNodeList itemNodeList; QDomNode node; query->setQuery(result->nameSpace()+"doc($inputDocument)//tptz:Preset"); query->evaluateTo(&items); item = items.next(); while(!item.isNull()){ query->setFocus(item); query->setQuery(result->nameSpace()+"."); query->evaluateTo(&xml); doc.setContent(xml); itemNodeList = doc.elementsByTagName("tptz:Preset"); for(int i=0; i<itemNodeList.size(); i++) { node = itemNodeList.at(i); value = node.toElement().attribute("token"); presets->setToken(value.trimmed()); } query->setQuery(result->nameSpace()+"./tt:Name/string()"); query->evaluateTo(&value); presets->setName(value.trimmed()); item = items.next(); } } delete msg; delete result; return presets; }
void Twitter::handleLoginReply() { QNetworkReply *reply = qobject_cast<QNetworkReply *>(sender()); m_credentialsXml = reply->readAll(); QString error; if (!m_credentialsXml.isEmpty()) { QBuffer buffer(&m_credentialsXml); buffer.open(QIODevice::ReadOnly); QXmlQuery query; query.setFocus(&buffer); query.setQuery("data(/hash/error)"); QString error; query.evaluateTo(&error); } else { error = reply->errorString(); } emit credentialsVerified(reply->error() == QNetworkReply::NoError, error); }
bool State::legacyLoadXML( const QString& filename ) { QXmlQuery query; if( !query.setFocus( QUrl( filename ))) { put_flog( LOG_DEBUG, "Not a valid legacy session: '%s'", filename.toLocal8Bit().constData( )); return false; } if( !checkVersion_( query )) return false; int numContentWindows = 0; query.setQuery( "string(count(//state/ContentWindow))" ); QString qstring; if( query.evaluateTo( &qstring )) numContentWindows = qstring.toInt(); ContentWindowPtrs contentWindows; contentWindows.reserve( numContentWindows ); for( int i = 1; i <= numContentWindows; ++i ) { ContentPtr content = loadContent_( query, i ); if( !content ) content = ContentFactory::getErrorContent(); ContentWindowPtr contentWindow = restoreContent_( query, content, i ); if( contentWindow ) contentWindows.push_back( contentWindow ); } displayGroup_->setContentWindows( contentWindows ); // Preserve appearence of legacy sessions. displayGroup_->setShowWindowTitles( false ); version_ = LEGACY_FILE_VERSION; return true; }
std::vector<SimXmlElement> SimXmlDoc::getElements(const std::string& elementName) const { std::vector<SimXmlElement> result; if (isNull()){ return result; } QString queryString = simQuery("/SimModel/" + elementName); QXmlQuery query; QDomNodeModel model(query.namePool(), *(impl())); query.setFocus(QXmlItem(model.fromDomNode(impl()->documentElement()))); query.setQuery(queryString, QUrl(QString::fromStdString(this->path()))); if (query.isValid()) { QString junk; QXmlResultItems items; query.evaluateTo(&items); QXmlItem item(items.next()); while (!item.isNull()) { QDomElement elem = model.toDomNode(item.toNodeModelIndex()).toElement(); QSharedPointer<QDomElement> impl(new QDomElement(elem)); result.push_back(SimXmlElement(impl, *this)); // get next item item = items.next(); } } return result; }
void DirListingInfo::setContent(const QString &content) { m_xml = content; m_valid = true; MessageHandler handler; QXmlQuery query; query.setMessageHandler(&handler); query.setFocus(m_xml); QString dir; query.setQuery("/DirListingInfo/currentDirectory/string()"); m_valid = query.evaluateTo(&dir); if (!m_valid) return; m_currentDirectory = dir.trimmed(); // Get the directories; FileInfoXmlReceiver dirReceiver(query.namePool()); query.setQuery("/DirListingInfo/directories"); m_valid = query.evaluateTo(&dirReceiver); if (!m_valid) return; m_directories = dirReceiver.fileInfos(); // Get the files FileInfoXmlReceiver fileReceiver(query.namePool()); query.setQuery("/DirListingInfo/files"); m_valid = query.evaluateTo(&fileReceiver); if (!m_valid) return; m_files = fileReceiver.fileInfos(); }
bool SeLogerHousingDriver::parseSearchRequestData( const QByteArray& data, Announcement::List& announcements, RequestResultProperties* properties ) const { // before parsing the announce, we convert the xml to a standard simple one using xquery const QString xpath = xPathQuery(); QXmlQuery query; QString xml; if ( !query.setFocus( QString::fromUtf8( data ) ) ) { if ( properties ) { properties->error = tr( "%s: Can't set focus" ).arg( Q_FUNC_INFO ); } qWarning( "%s: 1", Q_FUNC_INFO ); return false; } query.setQuery( xpath, QUrl( d->webServiceUrl() ) ); if ( !query.isValid() ) { if ( properties ) { properties->error = tr( "%s: Invalid query" ).arg( Q_FUNC_INFO ); } qWarning( "%s: 2", Q_FUNC_INFO ); return false; } if ( !query.evaluateTo( &xml ) ) { if ( properties ) { properties->error = tr( "%s: Can't evaluateTo" ).arg( Q_FUNC_INFO ); } qWarning( "%s: 3", Q_FUNC_INFO ); return false; } return parseStandardDomDocument( xml, announcements, properties ); }
bool FotoBilderAccount::IsErrorReply (const QByteArray& content) { QXmlQuery query; query.setFocus (content); QString code; query.setQuery ("/FBResponse/Error/@code/data(.)"); if (!query.evaluateTo (&code)) { query.setQuery ("/FBResponse/CreateGalsResponse/Error/@code/data(.)"); if (!query.evaluateTo (&code)) return false; } code = code.simplified (); QString string; query.setQuery ("/FBResponse/Error/text()"); if (!query.evaluateTo (&string)) { query.setQuery ("/FBResponse/CreateGalsResponse/Error/text()"); if (!query.evaluateTo (&string)) return false; } string = string.simplified (); if (code.isEmpty () || string.isEmpty ()) return false; Proxy_->GetEntityManager ()->HandleEntity (Util::MakeNotification ("Blasq DeathNote", tr ("%1 (original message: %2)") .arg (LocalizedErrorFromCode (code.toInt ())) .arg (string), Priority::PWarning_)); return true; }
//Load the asset from the specified file bool GMAsset_Sprite::Load(const QFileInfo &file) { this->GMAsset::Load(file); QFile spriteFile(file.absoluteFilePath()); if (!spriteFile.exists()) return false; //File does not exist if (!spriteFile.open(QIODevice::ReadOnly | QIODevice::Text)) return false; //Failed to open the file QXmlQuery query; QXmlResultItems result; QXmlItem item; query.setFocus(&spriteFile); //Type of sprite query.setQuery("sprite/type/string()"); query.evaluateTo(&result); item = result.next(); if (item.isAtomicValue()) { //Make sure the item is an atomic value (ie, the node string was returned) SetType(item.toAtomicValue().toInt()); } QPoint origin; //X Origin query.setQuery("sprite/xorig/string()"); query.evaluateTo(&result); item = result.next(); if (item.isAtomicValue()) { //Make sure the item is an atomic value (ie, the node string was returned) origin.setX(item.toAtomicValue().toInt()); } //Y Origin query.setQuery("sprite/yorigin/string()"); query.evaluateTo(&result); item = result.next(); if (item.isAtomicValue()) { //Make sure the item is an atomic value (ie, the node string was returned) origin.setY(item.toAtomicValue().toInt()); } SetOrigin(origin); //Collision Kind query.setQuery("sprite/colkind/string()"); query.evaluateTo(&result); item = result.next(); if (item.isAtomicValue()) { //Make sure the item is an atomic value (ie, the node string was returned) SetCollisionKind((CollisionKind)item.toAtomicValue().toInt()); } //Color Tolerance query.setQuery("sprite/coltolerance/string()"); query.evaluateTo(&result); item = result.next(); if (item.isAtomicValue()) { //Make sure the item is an atomic value (ie, the node string was returned) SetColTolerance(item.toAtomicValue().toInt()); } //Seprate Masks? query.setQuery("sprite/sepmasks/string()"); query.evaluateTo(&result); item = result.next(); if (item.isAtomicValue()) { //Make sure the item is an atomic value (ie, the node string was returned) SetSepMasks(item.toAtomicValue().toBool()); } //Bounding Box Mode query.setQuery("sprite/bboxmode/string()"); query.evaluateTo(&result); item = result.next(); if (item.isAtomicValue()) { //Make sure the item is an atomic value (ie, the node string was returned) SetBboxMode((BoundingBoxMode)item.toAtomicValue().toInt()); } QRect bbox; //Bounding box //Bounding Box Left query.setQuery("sprite/bbox_left/string()"); query.evaluateTo(&result); item = result.next(); if (item.isAtomicValue()) { //Make sure the item is an atomic value (ie, the node string was returned) bbox.setLeft(item.toAtomicValue().toInt()); } //Bounding Box Right query.setQuery("sprite/bbox_right/string()"); query.evaluateTo(&result); item = result.next(); if (item.isAtomicValue()) { //Make sure the item is an atomic value (ie, the node string was returned) bbox.setRight(item.toAtomicValue().toInt()); } //Bounding Box Top query.setQuery("sprite/bbox_top/string()"); query.evaluateTo(&result); item = result.next(); if (item.isAtomicValue()) { //Make sure the item is an atomic value (ie, the node string was returned) bbox.setTop(item.toAtomicValue().toInt()); } //Bounding Box Bottom query.setQuery("sprite/bbox_bottom/string()"); query.evaluateTo(&result); item = result.next(); if (item.isAtomicValue()) { //Make sure the item is an atomic value (ie, the node string was returned) bbox.setBottom(item.toAtomicValue().toInt()); } SetBbox(bbox); //Set the bounding box //Horizontal Tile? query.setQuery("sprite/HTile/string()"); query.evaluateTo(&result); item = result.next(); if (item.isAtomicValue()) { //Make sure the item is an atomic value (ie, the node string was returned) SetHTile(item.toAtomicValue().toBool()); } //Vertical Tile? query.setQuery("sprite/VTile/string()"); query.evaluateTo(&result); item = result.next(); if (item.isAtomicValue()) { //Make sure the item is an atomic value (ie, the node string was returned) SetVTile(item.toAtomicValue().toBool()); } //For 3D? query.setQuery("sprite/For3D/string()"); query.evaluateTo(&result); item = result.next(); if (item.isAtomicValue()) { //Make sure the item is an atomic value (ie, the node string was returned) SetFor3D(item.toAtomicValue().toBool()); } QSize size; //Width of sprite query.setQuery("sprite/width/string()"); query.evaluateTo(&result); item = result.next(); if (item.isAtomicValue()) { //Make sure the item is an atomic value (ie, the node string was returned) size.setWidth(item.toAtomicValue().toInt()); } //Height of Sprite query.setQuery("sprite/height/string()"); query.evaluateTo(&result); item = result.next(); if (item.isAtomicValue()) { //Make sure the item is an atomic value (ie, the node string was returned) size.setHeight(item.toAtomicValue().toInt()); } SetSize(size); //Set the size of the sprite //We will now get all of the frames for the sprite (NOTE: This ignores the index attribute and just adds them in order) query.setQuery("sprite/frames/frame/string()"); query.evaluateTo(&result); item = result.next(); while (!item.isNull()) { if (item.isAtomicValue()) { //Make sure the item is an atomic value (ie, the node string was returned) QString frameFilePath = GetFileInfo().absolutePath().append("/").append(item.toAtomicValue().toString()); frames.push_back(QFileInfo(frameFilePath)); } item = result.next(); } spriteFile.close(); //Close the XML File return true; }
checkForUpdates::checkForUpdates(QWidget* parent, Qt::WFlags fl) : XWidget(parent, fl) { setupUi(this); QUrl updatequrl("http://updates.xtuple.com/checkForUpdates.php"); updatequrl.addQueryItem("xtuple", _Version); XSqlQuery versions; versions.exec("SELECT version() AS pgver," " fetchMetricText('ServerVersion') AS dbver," " fetchMetricText('Application') AS dbprod;"); if(versions.first()) { updatequrl.addQueryItem("postgres", versions.value("pgver").toString()); updatequrl.addQueryItem(versions.value("dbprod").toString(), versions.value("dbver").toString()); } else if (versions.lastError().type() != QSqlError::NoError) systemError(this, versions.lastError().text(), __FILE__, __LINE__); // no return - let's learn as much as we can #ifdef Q_WS_MACX QString helpdir = QApplication::applicationDirPath() + "/../Resources/helpXTupleGUIClient"; #else QString helpdir = QApplication::applicationDirPath() + "helpXTupleGUIClient"; #endif QFile helpfile(helpdir + "/index.html"); QString helpver; if (helpfile.exists()) { if (helpfile.open(QIODevice::ReadOnly)) { QXmlQuery helpverq; if (helpverq.setFocus(&helpfile)) { helpverq.setQuery("/descendant::p[attribute::class='releaseinfo']/text()/string()"); if (helpverq.isValid()) { QStringList helpverlist; if (helpverq.evaluateTo(&helpverlist) && ! helpverlist.isEmpty()) helpver = helpverlist.at(0); else if (DEBUG) qDebug("Could not find the releaseinfo in %s", qPrintable(helpfile.fileName())); } else if (DEBUG) qDebug("The helpver query is not valid for some reason"); } else if (DEBUG) qDebug("Could not set focus on the help file %s", qPrintable(helpfile.fileName())); } else if (DEBUG) qDebug("Found the help file %s but could not open it: %s", qPrintable(helpfile.fileName()), qPrintable(helpfile.errorString())); } else if (DEBUG) qDebug("The help file %s does not exist", qPrintable(helpfile.fileName())); updatequrl.addQueryItem("xTupleHelp", helpver); QStringList context; context << "xTuple" << "openrpt" << "reports"; // duplicated from main.cpp! versions.exec("SELECT pkghead_name, pkghead_version" " FROM pkghead" " WHERE packageisenabled(pkghead_id);"); while(versions.next()) { updatequrl.addQueryItem(versions.value("pkghead_name").toString(), versions.value("pkghead_version").toString()); context << versions.value("pkghead_name").toString(); } if (versions.lastError().type() != QSqlError::NoError) systemError(this, versions.lastError().text(), __FILE__, __LINE__); // no return - let's learn as much as we can // get all of the locales on the system versions.exec("SELECT DISTINCT lang_abbr2, country_abbr" " FROM locale" " JOIN lang ON (locale_lang_id=lang_id)" " LEFT OUTER JOIN country ON (locale_country_id=country_id)" " ORDER BY lang_abbr2, country_abbr;"); QStringList locale; while(versions.next()) { QString tmp = versions.value("lang_abbr2").toString(); if (! versions.value("country_abbr").isNull()) tmp += "_" + versions.value("country_abbr").toString(); locale.append(tmp); } if (! locale.isEmpty()) updatequrl.addQueryItem("locales", locale.join(",")); else if(versions.lastError().type() != QSqlError::NoError) systemError(this, versions.lastError().text(), __FILE__, __LINE__); // maybe i want to update just _my_ translation file versions.exec("SELECT lang_abbr2, country_abbr" " FROM locale" " JOIN usr ON (locale_id=usr_locale_id)" " JOIN lang ON (locale_lang_id=lang_id)" " LEFT OUTER JOIN country ON (locale_country_id=country_id)" " WHERE (usr_username=getEffectiveXtUser());"); if (versions.first()) { QString tmp = versions.value("lang_abbr2").toString(); if (! versions.value("country_abbr").isNull()) tmp += "_" + versions.value("country_abbr").toString(); updatequrl.addQueryItem("mylocale", tmp); } else if(versions.lastError().type() != QSqlError::NoError) systemError(this, versions.lastError().text(), __FILE__, __LINE__); QString qmparam = "qm.%1.%2"; for (int l = 0; l < locale.length(); l++) { for (int c = 0; c < context.length(); c++) { QString version(""); QString tf = translationFile(locale.at(l), context.at(c), version); updatequrl.addQueryItem(qmparam.arg(context.at(c), locale.at(l)), version); } } if (DEBUG) qDebug("checkForUpdates::checkForUpdates() sending %s", updatequrl.toEncoded().data()); _view->load(updatequrl); }
bool AircraftData::import(QProgressDialog &progress, MainObject *mainObject){ int c = 0; int found = 0; progress.setRange(0, 2000); progress.setWindowTitle("Scanning Aircraft Directories"); progress.show(); progress.repaint(); //= Cache File QFile cacheFile( mainObject->data_file("aircraft.txt") ); if(!cacheFile.open(QIODevice::WriteOnly | QIODevice::Text)){ //qDebug() << "TODO Open error cachce file="; return true; } QTextStream out(&cacheFile); //= Get files Entries from Aircaft/ directory QDir aircraftDir( mainObject->X->aircraft_path() ); aircraftDir.setFilter( QDir::Dirs | QDir::NoSymLinks | QDir::NoDotAndDotDot); QStringList entries = aircraftDir.entryList(); progress.setRange(0, entries.size() + 20); for( QStringList::ConstIterator entry=entries.begin(); entry!=entries.end(); ++entry ){ // Filter out default dir names, should be a QDir name filter? if (*entry != "Instruments" && *entry != "Instruments-3d" && *entry != "Generic") { progress.setValue(c); progress.setLabelText(*entry); progress.repaint(); //** get the List of *-set.xml files in dir QDir dir( mainObject->X->aircraft_path(*entry) ); QStringList filters; filters << "*-set.xml"; QStringList list_xml = dir.entryList(filters); if(list_xml.count() > 0){ // << Scan MOdels QString directory; QString description; QString author; QString fdm; QString xml_file; QString aero; //** Add Path Node directory = QString(*entry); //** Add Models for (int i = 0; i < list_xml.size(); ++i){ xml_file = QString(list_xml.at(i)); aero = QString(xml_file); aero.chop(8); //*=parse the Xml file - f&*& long winded QString file_path = mainObject->X->aircraft_path(*entry); file_path.append("/"); file_path.append(list_xml.at(i)); QFile xmlFile( file_path); if (xmlFile.open(QIODevice::ReadOnly | QIODevice::Text)){ /* The file content is converted to UTF-8. Some files are Windows, encoding and throw error with QxmlQuery etc Its a hack and don't quite understand whats happening.. said pedro */ QString xmlString = QString(xmlFile.readAll()).toUtf8(); QXmlQuery query; query.setFocus(xmlString); //query.setFocus(&xmlFile); << Because file is not QTF8 using sting instead query.setQuery("PropertyList/sim"); if (query.isValid()){ QString res; query.evaluateTo(&res); xmlFile.close(); QDomDocument dom; dom.setContent("" + res + ""); QDomNodeList nodes = dom.elementsByTagName("sim"); QDomNode n = nodes.at(0); description = n.firstChildElement("description").text(); author = n.firstChildElement("author").text().trimmed().replace(("\n"),""); fdm = n.firstChildElement("flight-model").text(); } /* !query.isValid() */ } /* xmlFile.open() */ QStringList lines; lines << directory << aero << xml_file << description << fdm << author << file_path; out << lines.join("\t") << "\n"; found++; if(progress.wasCanceled()){ //qDebug() << "Progress cancelled!"; progress.hide(); return true; } c++; } } /* list_xml.count() > 0 */ } /* entry != INstruments etc */ } /* loop entries.() */ cacheFile.close(); return false; }
Configurations *PtzManagement::getConfigurations() { Configurations *configurations = NULL; Message *msg = newMessage(); msg->appendToBody(newElement("wsdl:GetConfigurations")); MessageParser *result = sendMessage(msg); if(result != NULL){ configurations = new Configurations(); QXmlQuery *query = result->query(); QString value,xml; QDomDocument doc; QDomNodeList itemNodeList; QDomNode node; QXmlResultItems items; QXmlItem item; query->setQuery(result->nameSpace()+"doc($inputDocument)//tptz:PTZConfiguration"); query->evaluateTo(&items); item = items.next(); while(!item.isNull()){ query->setFocus(item); query->setQuery(result->nameSpace()+"."); query->evaluateTo(&xml); doc.setContent(xml); itemNodeList = doc.elementsByTagName("tptz:PTZConfiguration"); for(int i=0; i<itemNodeList.size(); i++) { node = itemNodeList.at(i); value = node.toElement().attribute("token"); configurations->setToken(value.trimmed()); } query->setQuery(result->nameSpace()+"./tt:Name/string()"); query->evaluateTo(&value); configurations->setName(value.trimmed()); query->setQuery(result->nameSpace()+"./tt:UseCount/string()"); query->evaluateTo(&value); configurations->setUseCount(value.trimmed().toInt()); query->setQuery(result->nameSpace()+"./tt:NodeToken/string()"); query->evaluateTo(&value); configurations->setNodeToken(value.trimmed()); query->setQuery(result->nameSpace()+"./tt:DefaultAbsolutePantTiltPositionSpace/string()"); query->evaluateTo(&value); configurations->setDefaultAbsolutePantTiltPositionSpace(value.trimmed()); query->setQuery(result->nameSpace()+"./tt:DefaultAbsoluteZoomPositionSpace/string()"); query->evaluateTo(&value); configurations->setDefaultAbsoluteZoomPositionSpace(value.trimmed()); query->setQuery(result->nameSpace()+"./tt:DefaultRelativePanTiltTranslationSpace/string()"); query->evaluateTo(&value); configurations->setDefaultRelativePanTiltTranslationSpace(value.trimmed()); query->setQuery(result->nameSpace()+"./tt:DefaultRelativeZoomTranslationSpace/string()"); query->evaluateTo(&value); configurations->setDefaultRelativeZoomTranslationSpace(value.trimmed()); query->setQuery(result->nameSpace()+"./tt:DefaultContinuousPanTiltVelocitySpace/string()"); query->evaluateTo(&value); configurations->setDefaultContinuousPanTiltVelocitySpace(value.trimmed()); query->setQuery(result->nameSpace()+"./tt:DefaultContinuousZoomVelocitySpace/string()"); query->evaluateTo(&value); configurations->setDefaultContinuousZoomVelocitySpace(value.trimmed()); query->setQuery(result->nameSpace()+"./tt:DefaultPTZSpeed/tt:PanTilt"); query->evaluateTo(&xml); doc.setContent(xml); itemNodeList = doc.elementsByTagName("tt:PanTilt"); for(int i=0; i<itemNodeList.size();i++) { node = itemNodeList.at(i); value = node.toElement().attribute("space"); configurations->setPanTiltSpace(value.trimmed()); value = node.toElement().attribute("y"); configurations->setPanTiltY(value.trimmed().toFloat()); value = node.toElement().attribute("x"); configurations->setPanTiltX(value.trimmed().toFloat()); } query->setQuery(result->nameSpace()+"./tt:DefaultPTZSpeed/tt:Zoom"); query->evaluateTo(&xml); doc.setContent(xml); itemNodeList = doc.elementsByTagName("tt:Zoom"); for(int i=0; i<itemNodeList.size(); i++) { node = itemNodeList.at(i); value = node.toElement().attribute("space"); configurations->setZoomSpace(value.trimmed()); value = node.toElement().attribute("x"); configurations->setZoomX(value.trimmed().toFloat()); } query->setQuery(result->nameSpace()+"./tt:DefaultPTZTimeout/string()"); query->evaluateTo(&value); configurations->setDefaultPTZTimeout(value.trimmed()); query->setQuery(result->nameSpace()+"./tt:PanTiltLimits/tt:Range/tt:URI/string()"); query->evaluateTo(&value); configurations->setPanTiltRangeUri(value.trimmed()); query->setQuery(result->nameSpace()+"./tt:PanTiltLimits/tt:Range/tt:XRange/tt:Min/string()"); query->evaluateTo(&value); configurations->setPanTiltXRangeMin(value.trimmed().toFloat()); query->setQuery(result->nameSpace()+"./tt:PanTiltLimits/tt:Range/tt:XRange/tt:Max/string()"); query->evaluateTo(&value); configurations->setPanTiltXRangeMax(value.trimmed().toFloat()); query->setQuery(result->nameSpace()+"./tt:PanTiltLimits/tt:Range/tt:YRange/tt:Min/string()"); query->evaluateTo(&value); configurations->setPanTiltYRangeMin(value.trimmed().toFloat()); query->setQuery(result->nameSpace()+"./tt:PanTiltLimits/tt:Range/tt:YRange/tt:Max/string()"); query->evaluateTo(&value); configurations->setPanTiltYRangeMax(value.trimmed().toFloat()); query->setQuery(result->nameSpace()+"./tt:ZoomLimits/tt:Range/tt:URI/string()"); query->evaluateTo(&value); configurations->setZoomRangeUri(value.trimmed()); query->setQuery(result->nameSpace()+"./tt:ZoomLimits/tt:Range/tt:XRange/tt:Min/string()"); query->evaluateTo(&value); configurations->setZoomXRangeMin(value.trimmed().toFloat()); query->setQuery(result->nameSpace()+"./tt:ZoomLimits/tt:Range/tt:XRange/tt:Max/string()"); query->evaluateTo(&value); configurations->setZoomXRangeMax(value.trimmed().toFloat()); item = items.next(); } } delete msg; delete result; return configurations; }
void Configuration::load() { put_flog(LOG_INFO, "loading %s", filename_.toLatin1().constData()); QXmlQuery query; if(!query.setFocus(QUrl(filename_))) { put_flog(LOG_FATAL, "failed to load %s", filename_.toLatin1().constData()); exit(-1); } QString queryResult; // get screen / mullion dimensions query.setQuery("string(/configuration/dimensions/@numTilesWidth)"); if(query.evaluateTo(&queryResult)) totalScreenCountX_ = queryResult.toInt(); query.setQuery("string(/configuration/dimensions/@numTilesHeight)"); if(query.evaluateTo(&queryResult)) totalScreenCountY_ = queryResult.toInt(); query.setQuery("string(/configuration/dimensions/@screenWidth)"); if(query.evaluateTo(&queryResult)) screenWidth_ = queryResult.toInt(); query.setQuery("string(/configuration/dimensions/@screenHeight)"); if(query.evaluateTo(&queryResult)) screenHeight_ = queryResult.toInt(); query.setQuery("string(/configuration/dimensions/@mullionWidth)"); if(query.evaluateTo(&queryResult)) mullionWidth_ = queryResult.toInt(); query.setQuery("string(/configuration/dimensions/@mullionHeight)"); if(query.evaluateTo(&queryResult)) mullionHeight_ = queryResult.toInt(); // check for fullscreen mode flag query.setQuery("string(/configuration/dimensions/@fullscreen)"); if(query.evaluateTo(&queryResult)) fullscreen_ = queryResult.toInt() != 0; put_flog(LOG_INFO, "dimensions: numTilesWidth = %i, numTilesHeight = %i, screenWidth = %i, screenHeight = %i, mullionWidth = %i, mullionHeight = %i. fullscreen = %i", totalScreenCountX_, totalScreenCountY_, screenWidth_, screenHeight_, mullionWidth_, mullionHeight_, fullscreen_); // Background content URI query.setQuery("string(/configuration/background/@uri)"); if(query.evaluateTo(&queryResult)) backgroundUri_ = queryResult.remove(QRegExp("[\\n\\t\\r]")); // Background color query.setQuery("string(/configuration/background/@color)"); if (query.evaluateTo(&queryResult)) { queryResult.remove(QRegExp("[\\n\\t\\r]")); QColor newColor( queryResult ); if( newColor.isValid( )) backgroundColor_ = newColor; } }
InvoiceData XmlDataLayer::invoiceSelectData(QString name, int type) { qDebug() << __FILE__ << __LINE__ << __FUNCTION__; InvoiceData o_invData; QDomDocument doc(sett().getInoiveDocName()); QDomElement root; QDomElement nabywca; QDomElement product; QString fName = name; QFile file(sett().getInvoicesDir() + fName); if (!file.open(QIODevice::ReadOnly)) { qDebug("file doesn't exist"); return o_invData; } else { QTextStream stream(&file); if (!doc.setContent(stream.readAll())) { file.close(); return o_invData; } } root = doc.documentElement(); o_invData.frNr = root.attribute("no"); o_invData.sellingDate = QDate::fromString(root.attribute("sellingDate"), sett().getDateFormat()); o_invData.productDate = QDate::fromString(root.attribute("issueDate"), sett().getDateFormat()); QDomNode tmp; tmp = root.firstChild(); tmp = tmp.toElement().nextSibling(); // nabywca nabywca = tmp.toElement(); o_invData.customer = nabywca.attribute("name") + "," + nabywca.attribute( "city") + "," + nabywca.attribute("street") + "," + QObject::trUtf8("NIP: ") + nabywca.attribute("tic"); /* not required + ", " + nabywca.attribute("account") + ", " + nabywca.attribute("phone") + ", " + nabywca.attribute( "email") + ", " + nabywca.attribute("www")) */ // kontrName->setCursorPosition(1); tmp = tmp.toElement().nextSibling(); // product product = tmp.toElement(); o_invData.discount = product.attribute("discount").toInt(); tmp = tmp.toElement().nextSibling(); QDomElement additional = tmp.toElement(); o_invData.additText = additional.attribute("text"); int curPayment = sett().value("payments").toString().split("|").indexOf(additional.attribute("paymentType")); if (curPayment == sett().value("payments").toString().split("|").count() - 1) { // disconnect(platCombo, SIGNAL(currentIndexChanged (QString)), this, SLOT(payTextChanged(QString))); // platCombo->setCurrentIndex(curPayment); // ; // = new CustomPaymData(); o_invData.custPaym.payment1 = additional.attribute("payment1"); o_invData.custPaym.amount1 = additional.attribute("amount1").toDouble(); o_invData.custPaym.date1 = QDate::fromString(additional.attribute("liabDate1"), sett().getDateFormat()); o_invData.custPaym.payment2 = additional.attribute("payment2"); o_invData.custPaym.amount2 = additional.attribute("amount2").toDouble(); o_invData.custPaym.date2 = QDate::fromString(additional.attribute("liabDate2"), sett().getDateFormat()); // connect(platCombo, SIGNAL(currentIndexChanged (QString)), this, SLOT(payTextChanged(QString))); } else { // platCombo->setCurrentIndex(curPayment); } o_invData.liabDate = QDate::fromString(additional.attribute("liabDate"), sett().getDateFormat()); int curCurrency = sett().value("waluty").toString().split("|").indexOf(additional.attribute("currency")); o_invData.currencyTypeId = curCurrency; QFile db(sett().getInvoicesDir() + name); if (!db.open(QIODevice::ReadOnly | QIODevice::Text)) { qDebug("file doesn't exist"); return o_invData; } QXmlQuery query; QString res; query.setFocus(&db); query.setQuery("//product"); if ( ! query.isValid()) return o_invData; query.evaluateTo(&res); db.close(); QDomDocument productsDOMDocument; productsDOMDocument.setContent("" + res + ""); QDomNodeList products = productsDOMDocument.elementsByTagName("product"); for (int i = 0; i < products.count(); i++) { QDomElement product = products.at(i).toElement(); o_invData.products[i] = ProductData(product.attribute("id").toInt(), product.attribute("name"), product.attribute("code"), product.attribute("PKWiU"), product.attribute("quantity").toDouble(), product.attribute("quantityType"), product.attribute("discount").toDouble(), product.attribute("price").toDouble(), product.attribute("nett").toDouble(), product.attribute("vatBucket").toInt(), product.attribute("gross").toDouble(), additional.attribute("currency")); } return o_invData; }
QString F520xmlserializer::avarageQuery(F520Status *f520, QString month, SysError &sysErr) { QXmlQuery query; QString res; QString defaultRes; QFile xml(f520->getXmlPath()); if ( ! xml.exists()) { xml.setFileName(f520->getXmlPath()); if ( ! xml.exists()) { sysErr = SysError(SysError::F520_CAN_NOT_OPEN_FILE, "F520 Rasource file not exist"); return ""; } } if (!xml.open(QIODevice::ReadOnly | QIODevice::Text)) { sysErr = SysError(SysError::F520_RESOUCES_NOT_EXIST, "F520 can not open xml resource file"); return ""; } QString queryStr = CARICO + "/" + DAYS + "/" + DAY + "[@" + MONTH_VALUE + "='" + month + "']"; qDebug() << "F520xmlserializer::query: " << queryStr; query.setFocus(&xml); query.setQuery(queryStr); if ( ! query.isValid()) { qDebug() << "F520xmlserializer::query query not valid"; sysErr = SysError(SysError::F520_QUERY_ERROR, "F520 Query is invalid: " + queryStr); return ""; } query.evaluateTo(&res); queryStr = CARICO + "/" + DAYS + "/" + DAY + "[@" + NAME + "='" + DEFAULT_DAY + "']"; qDebug() << "F520xmlserializer::query: " << queryStr; query.setQuery(queryStr); if (!query.isValid()) { qDebug() << "F520xmlserializer::query query not valid"; sysErr = SysError(SysError::F520_QUERY_ERROR, "F520 Query is invalid: " + queryStr); return ""; } query.evaluateTo(&defaultRes); qDebug() << "F520xmlserializer::query " << res; xml.close(); QDomDocument avarageWatt; res.prepend("<" +DAYS +">\n"); res.append("<\\" + DAYS + ">"); avarageWatt.setContent("" + res + ""); QDomNodeList entryNodes = avarageWatt.elementsByTagName(DAY); QDomDocument defaultWatt; defaultWatt.setContent("" + defaultRes + ""); QDomNodeList entryDefaultNodes = defaultWatt.elementsByTagName(DAY); QList<float> avarage; qDebug() << "F520xmlserializer::query avarageWatt: " << defaultWatt.toString(); int i; for (i = 0; i < getDayOfMonth(month.toInt()); i++) { QDomElement node; if(i < entryNodes.count()) node = entryNodes.at(i).toElement(); else node = entryDefaultNodes.at(0).toElement(); QStringList tmpList = node.attribute(WATT).split('.'); if (tmpList.length() != 24) { sysErr = SysError(SysError::F520_RESOURCE_ERROR, "F520 Resouce Error"); return ""; } for (int index = 0; index < tmpList.length(); index++) { if (avarage.length() <= index) { avarage.append(tmpList.at(index).toFloat() / getDayOfMonth(month.toInt())); } else { avarage[index] += (tmpList.at(index).toFloat() / getDayOfMonth(month.toInt())); } } } QString rtn; foreach (int element, avarage) { rtn += QString::number(element) + '.'; }
void atlasMap::sHandleAtlas() { _map->clear(); if (_atlas->text().isEmpty()) return; if (DEBUG) qDebug("atlasMap::sHandleAtlas() entered with %s and %s", qPrintable(_atlas->text()), qPrintable(_defaultDir)); if (! _defaultDir.isEmpty() && _atlas->text().startsWith(_defaultDir)) _atlas->setText(_atlas->text().remove(0, _defaultDir.length() + 1)); QFile atlasfile; if (QFile::exists(_atlas->text())) atlasfile.setFileName(_atlas->text()); else if (QFile::exists(_defaultDir + QDir::separator() + _atlas->text())) atlasfile.setFileName(_defaultDir + QDir::separator() + _atlas->text()); else { QMessageBox::warning(this, tr("Could not find Atlas"), tr("<p>Could not find the Atlas file to open to look " "for CSV import Maps.")); return; } if (! atlasfile.open(QIODevice::ReadOnly)) { QMessageBox::critical(this, tr("Could not open Atlas"), tr("<p>Could not open the Atlas file %1 (error %2).") .arg(atlasfile.fileName(), atlasfile.errorString())); return; } QXmlQuery mapq; mapq.setMessageHandler(_msghandler); if (! mapq.setFocus(&atlasfile)) { QMessageBox::critical(this, tr("No Focus"), tr("<p>Could not set focus on the Atlas %1") .arg(atlasfile.fileName())); return; } // string() at the end tells the query to generate a sequence of values mapq.setQuery("/CSVAtlas/CSVMap/Name/text()/string()"); if (! mapq.isValid()) { QMessageBox::critical(this, tr("Invalid Query"), tr("<p>The query is not valid for some reason")); return; } QStringList maplist; if (! mapq.evaluateTo(&maplist)) { QMessageBox::warning(this, tr("No Maps"), tr("<p>Could not find any Maps in the Atlas %1") .arg(atlasfile.fileName())); return; } else for (int i = 0; i < maplist.size(); i++) _map->append(i, maplist.at(i)); }
void WallConfiguration::loadWallSettings(const int processIndex) { assert(processIndex > 0 && "WallConfiguration::loadWallSettings is only valid for processes of rank > 0"); QXmlQuery query; if(!query.setFocus(QUrl(filename_))) { put_flog(LOG_FATAL, "failed to load %s", filename_.toLatin1().constData()); exit(-1); } QString queryResult; // get host query.setQuery( QString("string(//process[%1]/@host)").arg(processIndex) ); if (query.evaluateTo(&queryResult)) host_ = queryResult.remove(QRegExp("[\\n\\t\\r]")); // get display (optional attribute) query.setQuery( QString("string(//process[%1]/@display)").arg(processIndex) ); if(query.evaluateTo(&queryResult)) { display_ = queryResult.remove(QRegExp("[\\n\\t\\r]")); } else { display_ = QString("default (:0)"); // the default } // get number of tiles for my process query.setQuery( QString("string(count(//process[%1]/screen))").arg(processIndex) ); if (query.evaluateTo(&queryResult)) screenCountForCurrentProcess_ = queryResult.toInt(); put_flog(LOG_INFO, "rank %i: %i screens", processIndex, screenCountForCurrentProcess_); // populate parameters for each screen for(int i=1; i<=screenCountForCurrentProcess_; i++) { QPoint screenPosition; query.setQuery( QString("string(//process[%1]/screen[%2]/@x)").arg(processIndex).arg(i) ); if(query.evaluateTo(&queryResult)) screenPosition.setX(queryResult.toInt()); query.setQuery( QString("string(//process[%1]/screen[%2]/@y)").arg(processIndex).arg(i) ); if(query.evaluateTo(&queryResult)) screenPosition.setY(queryResult.toInt()); screenPosition_.push_back(screenPosition); QPoint screenIndex; query.setQuery( QString("string(//process[%1]/screen[%2]/@i)").arg(processIndex).arg(i) ); if(query.evaluateTo(&queryResult)) screenIndex.setX(queryResult.toInt()); query.setQuery( QString("string(//process[%1]/screen[%2]/@j)").arg(processIndex).arg(i) ); if(query.evaluateTo(&queryResult)) screenIndex.setY(queryResult.toInt()); screenGlobalIndex_.push_back(screenIndex); put_flog(LOG_INFO, " screen parameters: posX = %i, posY = %i, indexX = %i, indexY = %i", screenPosition.x(), screenPosition.y(), screenIndex.x(), screenIndex.y()); } }
Nodes *PtzManagement::getNodes() { Nodes *nodes = NULL; Message *msg = newMessage(); QDomElement getNodes = newElement("wsdl:GetNodes"); msg->appendToBody(getNodes); MessageParser *result = sendMessage(msg); if(result != NULL){ nodes = new Nodes(); QXmlQuery *query = result->query(); QXmlResultItems items; QXmlItem item; QDomDocument doc; QDomNodeList itemNodeList; QDomNode node; QString value,xml; query->setQuery(result->nameSpace()+"doc($inputDocument)//tptz:PTZNode"); query->evaluateTo(&items); item = items.next(); while(!item.isNull()){ query->setFocus(item); query->setQuery(result->nameSpace()+"."); query->evaluateTo(&xml); doc.setContent(xml); itemNodeList = doc.elementsByTagName("tptz:PTZNode"); for(int i=0; i<itemNodeList.size();i++) { node = itemNodeList.at(i); value = node.toElement().attribute("token"); nodes->setPtzNodeToken(value.trimmed()); } query->setQuery(result->nameSpace()+"./tt:Name/string()"); query->evaluateTo(&value); nodes->setName(value.trimmed()); query->setQuery(result->nameSpace()+"./tt:SupportedPTZSpaces/tt:AbsolutePanTiltPositionSpace/tt:URI/string()"); query->evaluateTo(&value); nodes->setAppsUri(value.trimmed()); query->setQuery(result->nameSpace()+"./tt:SupportedPTZSpaces/tt:AbsolutePanTiltPositionSpace/tt:XRange/tt:Min/string()"); query->evaluateTo(&value); nodes->setAppsXRangeMin(value.trimmed().toFloat()); query->setQuery(result->nameSpace()+"./tt:SupportedPTZSpaces/tt:AbsolutePanTiltPositionSpace/tt:XRange/tt:Max/string()"); query->evaluateTo(&value); nodes->setAppsXRangeMax(value.trimmed().toFloat()); query->setQuery(result->nameSpace()+"./tt:SupportedPTZSpaces/tt:AbsolutePanTiltPositionSpace/tt:YRange/tt:Min/string()"); query->evaluateTo(&value); nodes->setAppsYRangeMin(value.trimmed().toFloat()); query->setQuery(result->nameSpace()+"./tt:SupportedPTZSpaces/tt:AbsolutePanTiltPositionSpace/tt:YRange/tt:Max/string()"); query->evaluateTo(&value); nodes->setAppsYRangeMax(value.trimmed().toFloat()); query->setQuery(result->nameSpace()+"./tt:SupportedPTZSpaces/tt:AbsoluteZoomPositionSpace/tt:URI/string()"); query->evaluateTo(&value); nodes->setAzpsUri(value.trimmed()); query->setQuery(result->nameSpace()+"./tt:SupportedPTZSpaces/tt:AbsoluteZoomPositionSpace/tt:XRange/tt:Min/string()"); query->evaluateTo(&value); nodes->setAzpsXRangeMin(value.trimmed().toFloat()); query->setQuery(result->nameSpace()+"./tt:SupportedPTZSpaces/tt:AbsoluteZoomPositionSpace/tt:XRange/tt:Max/string()"); query->evaluateTo(&value); nodes->setAzpsXRangeMax(value.trimmed().toFloat()); query->setQuery(result->nameSpace()+"./tt:SupportedPTZSpaces/tt:RelativePanTiltTranslationSpace/tt:URI/string()"); query->evaluateTo(&value); nodes->setRptsUri(value.trimmed()); query->setQuery(result->nameSpace()+"./tt:SupportedPTZSpaces/tt:RelativePanTiltTranslationSpace/tt:XRange/tt:Min/string()"); query->evaluateTo(&value); nodes->setRptsXRangeMin(value.trimmed().toFloat()); query->setQuery(result->nameSpace()+"./tt:SupportedPTZSpaces/tt:RelativePanTiltTranslationSpace/tt:XRange/tt:Max/string()"); query->evaluateTo(&value); nodes->setRptsXRangeMax(value.trimmed().toFloat()); query->setQuery(result->nameSpace()+"./tt:SupportedPTZSpaces/tt:RelativePanTiltTranslationSpace/tt:YRange/tt:Min/string()"); query->evaluateTo(&value); nodes->setRptsYRangeMin(value.trimmed().toFloat()); query->setQuery(result->nameSpace()+"./tt:SupportedPTZSpaces/tt:RelativePanTiltTranslationSpace/tt:YRange/tt:Max/string()"); query->evaluateTo(&value); nodes->setRptsYRangeMax(value.trimmed().toFloat()); query->setQuery(result->nameSpace()+"./tt:SupportedPTZSpaces/tt:RelativeZoomTranslationSpace/tt:URI/string()"); query->evaluateTo(&value); nodes->setRztsUri(value.trimmed()); query->setQuery(result->nameSpace()+"./tt:SupportedPTZSpaces/tt:RelativeZoomTranslationSpace/tt:XRange/tt:Min/string()"); query->evaluateTo(&value); nodes->setRztsXRangeMin(value.trimmed().toFloat()); query->setQuery(result->nameSpace()+"./tt:SupportedPTZSpaces/tt:RelativeZoomTranslationSpace/tt:XRange/tt:Max/string()"); query->evaluateTo(&value); nodes->setRztsXRangeMax(value.trimmed().toFloat()); query->setQuery(result->nameSpace()+"./tt:SupportedPTZSpaces/tt:ContinuousPanTiltVelocitySpace/tt:URI/string()"); query->evaluateTo(&value); nodes->setCpvsUri(value.trimmed()); query->setQuery(result->nameSpace()+"./tt:SupportedPTZSpaces/tt:ContinuousPanTiltVelocitySpace/tt:XRange/tt:Min/string()"); query->evaluateTo(&value); nodes->setCpvsXRangeMin(value.trimmed().toFloat()); query->setQuery(result->nameSpace()+"./tt:SupportedPTZSpaces/tt:ContinuousPanTiltVelocitySpace/tt:XRange/tt:Max/string()"); query->evaluateTo(&value); nodes->setCpvsXRangeMax(value.trimmed().toFloat()); query->setQuery(result->nameSpace()+"./tt:SupportedPTZSpaces/tt:ContinuousPanTiltVelocitySpace/tt:YRange/tt:Min/string()"); query->evaluateTo(&value); nodes->setCpvsYRangeMin(value.trimmed().toFloat()); query->setQuery(result->nameSpace()+"./tt:SupportedPTZSpaces/tt:ContinuousPanTiltVelocitySpace/tt:YRange/tt:Max/string()"); query->evaluateTo(&value); nodes->setCpvsYRangeMax(value.trimmed().toFloat()); query->setQuery(result->nameSpace()+"./tt:SupportedPTZSpaces/tt:ContinuousZoomVelocitySpace/tt:URI/string()"); query->evaluateTo(&value); nodes->setCzvsUri(value.trimmed()); query->setQuery(result->nameSpace()+"./tt:SupportedPTZSpaces/tt:ContinuousZoomVelocitySpace/tt:XRange/tt:Min/string()"); query->evaluateTo(&value); nodes->setCzvsXRangeMin(value.trimmed().toFloat()); query->setQuery(result->nameSpace()+"./tt:SupportedPTZSpaces/tt:ContinuousZoomVelocitySpace/tt:XRange/tt:Max/string()"); query->evaluateTo(&value); nodes->setCzvsXRangeMax(value.trimmed().toFloat()); query->setQuery(result->nameSpace()+"./tt:SupportedPTZSpaces/tt:PanTiltSpeedSpace/tt:URI/string()"); query->evaluateTo(&value); nodes->setPssUri(value.trimmed()); query->setQuery(result->nameSpace()+"./tt:SupportedPTZSpaces/tt:PanTiltSpeedSpace/tt:XRange/tt:Min/string()"); query->evaluateTo(&value); nodes->setPssXRangeMin(value.trimmed().toFloat()); query->setQuery(result->nameSpace()+"./tt:SupportedPTZSpaces/tt:PanTiltSpeedSpace/tt:XRange/tt:Max/string()"); query->evaluateTo(&value); nodes->setPssXRangeMax(value.trimmed().toFloat()); query->setQuery(result->nameSpace()+"./tt:SupportedPTZSpaces/tt:ZoomSpeedSpace/tt:URI/string()"); query->evaluateTo(&value); nodes->setZssUri(value.trimmed()); query->setQuery(result->nameSpace()+"./tt:SupportedPTZSpaces/tt:ZoomSpeedSpace/tt:XRange/tt:Min/string()"); query->evaluateTo(&value); nodes->setZssXRangeMin(value.trimmed().toFloat()); query->setQuery(result->nameSpace()+"./tt:SupportedPTZSpaces/tt:ZoomSpeedSpace/tt:XRange/tt:Max/string()"); query->evaluateTo(&value); nodes->setZssXRangeMax(value.trimmed().toFloat()); query->setQuery(result->nameSpace()+"./tt:MaximumNumberOfPresets/string()"); query->evaluateTo(&value); nodes->setMaximumNumberOfPresets(value.trimmed().toInt()); query->setQuery(result->nameSpace()+"./tt:HomeSupported/string()"); query->evaluateTo(&value); nodes->setHomeSupported(value.trimmed() == "true"?true:false); item = items.next(); } } delete msg; delete result; return nodes; }