void RBDtoWeatherDialog::doCalc() { QSqlQuery query; QProgressDialog dialog(tr("Calculando "), tr("Cancelar"), 0, ui->desdeDateEdit->date().daysTo(ui->hastaDateEdit->date()), this); dialog.setWindowModality(Qt::ApplicationModal); dialog.setMinimumDuration(500); query.exec(QString("SELECT * FROM estadotiempos WHERE fecha >= '%1 00:00:00' AND fecha <= '%2 00:00:00'").arg(ui->desdeDateEdit->date().toString("yyyy-MM-dd")).arg(ui->hastaDateEdit->date().toString("yyyy-MM-dd"))); while(query.next() && !dialog.wasCanceled()){ dialog.setValue(dialog.value() + 1); QDateTime date = QDateTime::fromString(query.record().field("fecha").value().toString(), "yyyy-MM-dd hh:mm:ss"); processDay(date); }; }
void WeatherData::processForecast() { if (!xmlReader.isStartElement() || xmlReader.name() != "forecast") return; while (xmlReader.readNextStartElement()) { if (xmlReader.name() == "fact") processFact(); else if (xmlReader.name() == "day") processDay(); else xmlReader.skipCurrentElement(); } }