bool MtpStoragesModel::update(const mtp::SessionPtr &session) { beginResetModel(); _storages.clear(); mtp::msg::StorageIDs storages = session->GetStorageIDs(); for(auto id : storages.StorageIDs) { mtp::msg::StorageInfo info = session->GetStorageInfo(id); _storages.append(qMakePair(id, info)); } mtp::msg::StorageInfo anyStorage; anyStorage.StorageDescription = toUtf8(tr("All storages (BUGS, BEWARE)")); _storages.append(qMakePair((mtp::u32)mtp::Session::AllStorages, anyStorage)); endResetModel(); return !storages.StorageIDs.empty(); }
bool MtpStoragesModel::update(const mtp::SessionPtr &session) { beginResetModel(); _storages.clear(); mtp::msg::StorageIDs storages = session->GetStorageIDs(); for(auto id : storages.StorageIDs) { mtp::msg::StorageInfo info; try { info = session->GetStorageInfo(id); } catch (const mtp::InvalidResponseException &ex) { if (ex.Type == mtp::ResponseType::InvalidStorageID) return false; else throw; } _storages.append(qMakePair(id, info)); } mtp::msg::StorageInfo anyStorage; anyStorage.StorageDescription = toUtf8(tr("All storages (BUGS, BEWARE)")); _storages.append(qMakePair((mtp::u32)mtp::Session::AllStorages, anyStorage)); endResetModel(); return !storages.StorageIDs.empty(); }
mtp::msg::ObjectInfoPtr MtpObjectsModel::Row::GetInfo(mtp::SessionPtr session) { if (!_info) { _info = std::make_shared<mtp::msg::ObjectInfo>(); try { *_info = session->GetObjectInfo(ObjectId); //qDebug() << fromUtf8(row.Info->Filename); } catch(const std::exception &ex) { qDebug() << "failed to get object info " << fromUtf8(ex.what()); } } return _info; }