void UpgradeDir(const char* path, bool force, bool subdir, int& upgraded, int& ok, int& failed) { WIN32_FIND_DATA find; printf("Upgrade checking dir '%s'\n", path); HANDLE f = FindFirstFile(Formats("%s/*", path), &find); if(f == INVALID_HANDLE_VALUE) { printf("FIND failed...\n"); ++failed; return; } do { if(find.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { if(subdir && strcmp(find.cFileName, ".") != 0 && strcmp(find.cFileName, "..") != 0) { string new_path = Formats("%s/%s", path, find.cFileName); UpgradeDir(new_path.c_str(), force, subdir, upgraded, ok, failed); } } else { if(EndsWith(find.cFileName, ".qmsh") || EndsWith(find.cFileName, ".phy")) { string file_path = Formats("%s/%s", path, find.cFileName); int result = Upgrade(file_path.c_str(), force); if(result == -1) failed++; else if(result == 0) ok++; else upgraded++; } } } while(FindNextFile(f, &find)); FindClose(f); }
///******************************************************************************************* void WantlistModel::addResult (const QJsonObject &o) { int i; QJsonObject basicInformation = o["basic_information"].toObject(); qDebug() << "basic_information " << basicInformation; BasicInfo i_basicInformation; QJsonArray labels = basicInformation["labels"].toArray(); qDebug() << "Labels " << labels; QList<Companies> i_labels; //может быть список for (QJsonArray::const_iterator iter = labels.begin();iter!= labels.end(); ++iter) { const QJsonObject b = (*iter).toObject(); i_labels << Companies(b["catno"].toString(), b["entity_type"].toString(), b["entity_type_name"].toString(), b["id"].toInt(), b["name"].toString(), b["resource_url"].toString()); } QJsonArray formats = basicInformation["formats"].toArray(); qDebug() << "Formats " << formats; Formats i_formats; for (QJsonArray::const_iterator iter = formats.begin();iter!= formats.end(); ++iter) { const QJsonObject c = (*iter).toObject(); QJsonArray descriptions = c["descriptions"].toArray(); qDebug() << "Descriptions " << descriptions ; QList<QString> i_descriptions; for (i=0; i<descriptions.size();i++) { i_descriptions << descriptions.at(i).toString(); } i_formats = Formats(i_descriptions, c["name"].toString(), c["qty"].toString()); } QJsonArray artists = basicInformation["artists"].toArray(); qDebug() << "artists " << artists; Artists i_artists; for (QJsonArray::const_iterator iter = artists.begin();iter!= artists.end(); ++iter) { const QJsonObject d = (*iter).toObject(); i_artists = Artists(d["anv"].toString(), d["id"].toInt(), d["join"].toString(), d["name"].toString(), d["resource_url"].toString(), d["role"].toString(), d["tracks"].toString()); } QJsonArray notes = o["notes"].toArray(); qDebug() << "notes " << notes; QList<Notes> i_notes; for (QJsonArray::const_iterator iter = notes.begin();iter!= notes.end(); ++iter) { const QJsonObject e = (*iter).toObject(); i_notes << Notes(e["field_id"].toInt(), e["value"].toString()); } i_basicInformation = BasicInfo(basicInformation["id"].toInt(), basicInformation["title"].toString(), basicInformation["year"].toInt(), basicInformation["resource_url"].toString(), basicInformation["thumb"].toString(), i_formats, i_labels, i_artists, i_notes); m_WantsResult << Wants(o["rating"].toInt(), i_basicInformation, o["resource_url"].toString(), o["id"].toInt()); }