| 254 | } |
| 255 | |
| 256 | void ResourceFolderModel::resolveResource(Resource* res) |
| 257 | { |
| 258 | if (!res->shouldResolve()) { |
| 259 | return; |
| 260 | } |
| 261 | |
| 262 | auto task = createParseTask(*res); |
| 263 | if (!task) |
| 264 | return; |
| 265 | |
| 266 | int ticket = m_next_resolution_ticket.fetch_add(1); |
| 267 | |
| 268 | res->setResolving(true, ticket); |
| 269 | m_active_parse_tasks.insert(ticket, task); |
| 270 | |
| 271 | connect( |
| 272 | task, &Task::succeeded, this, [=] { onParseSucceeded(ticket, res->internal_id()); }, Qt::ConnectionType::QueuedConnection); |
| 273 | connect( |
| 274 | task, &Task::failed, this, [=] { onParseFailed(ticket, res->internal_id()); }, Qt::ConnectionType::QueuedConnection); |
| 275 | connect( |
| 276 | task, &Task::finished, this, [=] { m_active_parse_tasks.remove(ticket); }, Qt::ConnectionType::QueuedConnection); |
| 277 | |
| 278 | QThreadPool::globalInstance()->start(task); |
| 279 | } |
| 280 | |
| 281 | void ResourceFolderModel::onUpdateSucceeded() |
| 282 | { |
nothing calls this directly
no test coverage detected