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();
    }
}
예제 #2
0
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("&lt;","<").replace("&gt;",">");

        // 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();
    }
}
예제 #3
0
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();
}
예제 #4
0
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;
}
예제 #6
0
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;
    }
}
예제 #8
0
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);
}
예제 #10
0
	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;
	}
예제 #11
0
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();
}
예제 #12
0
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;
}
예제 #13
0
	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 ());
	}
예제 #14
0
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;
}
예제 #15
0
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);
}
예제 #16
0
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;
}
예제 #17
0
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;
}
예제 #18
0
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();
}
예제 #19
0
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 );
}
예제 #20
0
	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;
	}
예제 #21
0
//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;
}
예제 #22
0
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);
}
예제 #23
0
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;
}
예제 #24
0
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;
}
예제 #25
0
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;
    }
}
예제 #26
0
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) + '.';
    }
예제 #28
0
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));
}
예제 #29
0
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());
    }
}
예제 #30
0
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;
}