FLRelationMetaData *FLTableMetaData::relation(const QString &fN, const QString &fFN, const QString &fTN) const { if (fN.isEmpty()) return 0; FLFieldMetaData *field = d->fieldList_->find(fN.lower()); if (field) { if (field->d->relationM1_ && field->d->relationM1_->foreignField() == fFN.lower() && field->d->relationM1_->foreignTable() == fTN.lower()) return field->d->relationM1_; FLFieldMetaData::FLRelationMetaDataList *relationList = field->d->relationList_; if (!relationList) return 0; if (relationList->isEmpty()) return 0; FLRelationMetaData *r; QPtrListIterator<FLRelationMetaData> itR(*relationList); while ((r = itR.current()) != 0) { ++itR; if (r->foreignField() == fFN.lower() && r->foreignTable() == fTN.lower()) return r; } } return 0; }
void FFT::tri() { int n(_n); for(int i = 0 ; i < _p - 1 ; i++) { // processus à répéter _p - 1 fois std::vector<double> XR; XR.reserve(_n); std::vector<double> XI; XI.reserve(_n); _vectRp.resize(n/2); _vectIp.resize(n/2); _vectRi.resize(n/2); _vectIi.resize(n/2); std::vector<double>::iterator itR(XR.begin()); std::vector<double>::iterator itI(XI.begin()); for(int j = 0 ; j < _n/n ; j++) { // réorganiser -n/n sous parties for(int k = 0 ; k < n/2 ; k++) { // réorganisation _index1 = 2*k+j*n; _vectRp[k] = _xR[_index1]; _vectIp[k] = _xI[_index1]; _vectRi[k] = _xR[_index1+1]; _vectIi[k] = _xI[_index1+1]; } XR.insert(itR, _vectRp.begin(), _vectRp.end()); XR.insert(XR.end(), _vectRi.begin(), _vectRi.end()); XI.insert(itI, _vectIp.begin(), _vectIp.end()); XI.insert(XI.end(), _vectIi.begin(), _vectIi.end()); itR = XR.end(); itI = XI.end(); } swap(XR, _xR); swap(XI, _xI); n /= 2; } }
void IMDB::parseAndAssignInfos(QString json, Movie *movie, QList<int> infos) { QScriptValue sc; QScriptEngine engine; sc = engine.evaluate("(" + QString(json) + ")"); if (infos.contains(MovieScraperInfos::Title) && sc.property("title").isValid()) movie->setName(Helper::urlDecode(sc.property("title").toString())); if (infos.contains(MovieScraperInfos::Overview) && sc.property("plot").isValid() && !sc.property("plot").isNull()) { movie->setOverview(sc.property("plot").toString()); if (sc.property("plot_simple").isValid() && !sc.property("plot_simple").isNull() && !sc.property("plot_simple").toString().isEmpty()) movie->setOutline(sc.property("plot_simple").toString()); else if (Settings::instance()->usePlotForOutline()) movie->setOutline(sc.property("plot").toString()); } if (infos.contains(MovieScraperInfos::Rating) && sc.property("rating").isValid()) movie->setRating(sc.property("rating").toNumber()); if (infos.contains(MovieScraperInfos::Rating) && sc.property("rating_count").isValid()) movie->setVotes(sc.property("rating_count").toInteger()); if (infos.contains(MovieScraperInfos::Certification) && sc.property("rated").isValid()) movie->setCertification(Helper::mapCertification(sc.property("rated").toString())); if (infos.contains(MovieScraperInfos::Released) && sc.property("release_date").isValid()) movie->setReleased(QDate::fromString(sc.property("release_date").toString(), "yyyyMMdd")); if (infos.contains(MovieScraperInfos::Runtime) && sc.property("runtime").isArray()) { QScriptValueIterator itR(sc.property("runtime")); if (itR.hasNext()) { itR.next(); QRegExp rx("(\\d+).*"); if (rx.indexIn(itR.value().toString(), 0) != -1) movie->setRuntime(rx.cap(1).toInt()); } } /* if (itC.hasNext()) within the loop might look wrong but * this way the last item is filtered out (contains the number of entries) */ if (infos.contains(MovieScraperInfos::Genres) && sc.property("genres").isArray()) { QScriptValueIterator itC(sc.property("genres")); while (itC.hasNext()) { itC.next(); if (itC.hasNext()) movie->addGenre(Helper::mapGenre(Helper::urlDecode(itC.value().toString()))); } } if (infos.contains(MovieScraperInfos::Director) && sc.property("directors").isArray()) { QStringList directors; QScriptValueIterator itC(sc.property("directors")); while (itC.hasNext()) { itC.next(); if (itC.hasNext()) directors << Helper::urlDecode(itC.value().toString()); } movie->setDirector(directors.join(", ")); } if (infos.contains(MovieScraperInfos::Writer) && sc.property("writers").isArray()) { QStringList writers; QScriptValueIterator itC(sc.property("writers")); while (itC.hasNext()) { itC.next(); if (itC.hasNext()) writers << Helper::urlDecode(itC.value().toString()); } movie->setWriter(writers.join(", ")); } if (infos.contains(MovieScraperInfos::Countries) && sc.property("country").isArray()) { QScriptValueIterator itC(sc.property("country")); while (itC.hasNext()) { itC.next(); if (itC.hasNext()) movie->addCountry(Helper::mapCountry(Helper::urlDecode(itC.value().toString()))); } } if (infos.contains(MovieScraperInfos::Actors) && sc.property("actors").isArray()) { QScriptValueIterator itC(sc.property("actors")); while (itC.hasNext()) { itC.next(); Actor a; a.name = Helper::urlDecode(itC.value().toString()); if (itC.hasNext()) movie->addActor(a); } } if (infos.contains(MovieScraperInfos::Poster) && sc.property("poster").isValid()) { Poster p; p.originalUrl = sc.property("poster").toString(); p.thumbUrl = sc.property("poster").toString(); movie->addPoster(p); } }