| 264 | } |
| 265 | |
| 266 | void InstanceImportTask::processFlame() |
| 267 | { |
| 268 | shared_qobject_ptr<FlameCreationTask> inst_creation_task = nullptr; |
| 269 | if (!m_extra_info.isEmpty()) { |
| 270 | auto pack_id_it = m_extra_info.constFind("pack_id"); |
| 271 | Q_ASSERT(pack_id_it != m_extra_info.constEnd()); |
| 272 | auto pack_id = pack_id_it.value(); |
| 273 | |
| 274 | auto pack_version_id_it = m_extra_info.constFind("pack_version_id"); |
| 275 | Q_ASSERT(pack_version_id_it != m_extra_info.constEnd()); |
| 276 | auto pack_version_id = pack_version_id_it.value(); |
| 277 | |
| 278 | QString original_instance_id; |
| 279 | auto original_instance_id_it = m_extra_info.constFind("original_instance_id"); |
| 280 | if (original_instance_id_it != m_extra_info.constEnd()) |
| 281 | original_instance_id = original_instance_id_it.value(); |
| 282 | |
| 283 | inst_creation_task = |
| 284 | makeShared<FlameCreationTask>(m_stagingPath, m_globalSettings, m_parent, pack_id, pack_version_id, original_instance_id); |
| 285 | } else { |
| 286 | // FIXME: Find a way to get IDs in directly imported ZIPs |
| 287 | inst_creation_task = makeShared<FlameCreationTask>(m_stagingPath, m_globalSettings, m_parent, QString(), QString()); |
| 288 | } |
| 289 | |
| 290 | inst_creation_task->setName(*this); |
| 291 | inst_creation_task->setIcon(m_instIcon); |
| 292 | inst_creation_task->setGroup(m_instGroup); |
| 293 | inst_creation_task->setConfirmUpdate(shouldConfirmUpdate()); |
| 294 | |
| 295 | auto weak = inst_creation_task.toWeakRef(); |
| 296 | connect(inst_creation_task.get(), &Task::succeeded, this, [this, weak] { |
| 297 | if (auto sp = weak.lock()) { |
| 298 | setOverride(sp->shouldOverride(), sp->originalInstanceID()); |
| 299 | } |
| 300 | emitSucceeded(); |
| 301 | }); |
| 302 | connect(inst_creation_task.get(), &Task::failed, this, &InstanceImportTask::emitFailed); |
| 303 | connect(inst_creation_task.get(), &Task::progress, this, &InstanceImportTask::setProgress); |
| 304 | connect(inst_creation_task.get(), &Task::stepProgress, this, &InstanceImportTask::propagateStepProgress); |
| 305 | connect(inst_creation_task.get(), &Task::status, this, &InstanceImportTask::setStatus); |
| 306 | connect(inst_creation_task.get(), &Task::details, this, &InstanceImportTask::setDetails); |
| 307 | |
| 308 | connect(inst_creation_task.get(), &Task::aborted, this, &Task::abort); |
| 309 | connect(inst_creation_task.get(), &Task::abortStatusChanged, this, &Task::setAbortable); |
| 310 | |
| 311 | m_task.reset(inst_creation_task); |
| 312 | setAbortable(true); |
| 313 | m_task->start(); |
| 314 | } |
| 315 | |
| 316 | void InstanceImportTask::processTechnic() |
| 317 | { |
nothing calls this directly
no test coverage detected