MCPcopy Create free account
hub / github.com/ElyPrismLauncher/Launcher / processFlame

Method processFlame

launcher/InstanceImportTask.cpp:273–332  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

271}
272
273void InstanceImportTask::processFlame()
274{
275 shared_qobject_ptr<FlameCreationTask> inst_creation_task = nullptr;
276 if (!m_extra_info.isEmpty()) {
277 auto pack_id_it = m_extra_info.constFind("pack_id");
278 Q_ASSERT(pack_id_it != m_extra_info.constEnd());
279 auto pack_id = pack_id_it.value();
280
281 auto pack_version_id_it = m_extra_info.constFind("pack_version_id");
282 Q_ASSERT(pack_version_id_it != m_extra_info.constEnd());
283 auto pack_version_id = pack_version_id_it.value();
284
285 QString original_instance_id;
286 auto original_instance_id_it = m_extra_info.constFind("original_instance_id");
287 if (original_instance_id_it != m_extra_info.constEnd())
288 original_instance_id = original_instance_id_it.value();
289
290 inst_creation_task =
291 makeShared<FlameCreationTask>(m_stagingPath, m_globalSettings, m_parent, pack_id, pack_version_id, original_instance_id);
292 } else {
293 // FIXME: Find a way to get IDs in directly imported ZIPs
294 inst_creation_task = makeShared<FlameCreationTask>(m_stagingPath, m_globalSettings, m_parent, QString(), QString());
295 }
296
297 inst_creation_task->setName(*this);
298 // if the icon was specified by user, use that. otherwise pull icon from the pack
299 if (m_instIcon == "default") {
300 auto iconKey = QString("Flame_%1_Icon").arg(name());
301
302 if (installIcon(m_stagingPath, iconKey)) {
303 m_instIcon = iconKey;
304 }
305 }
306 inst_creation_task->setIcon(m_instIcon);
307 inst_creation_task->setGroup(m_instGroup);
308 inst_creation_task->setConfirmUpdate(shouldConfirmUpdate());
309
310 auto weak = inst_creation_task.toWeakRef();
311 connect(inst_creation_task.get(), &Task::succeeded, this, [this, weak] {
312 if (auto sp = weak.lock()) {
313 setOverride(sp->shouldOverride(), sp->originalInstanceID());
314 }
315 emitSucceeded();
316 });
317 connect(inst_creation_task.get(), &Task::failed, this, &InstanceImportTask::emitFailed);
318 connect(inst_creation_task.get(), &Task::progress, this, &InstanceImportTask::setProgress);
319 connect(inst_creation_task.get(), &Task::stepProgress, this, &InstanceImportTask::propagateStepProgress);
320 connect(inst_creation_task.get(), &Task::status, this, &InstanceImportTask::setStatus);
321 connect(inst_creation_task.get(), &Task::details, this, &InstanceImportTask::setDetails);
322
323 connect(inst_creation_task.get(), &Task::aborted, this, &InstanceImportTask::emitAborted);
324 connect(inst_creation_task.get(), &Task::abortStatusChanged, this, &Task::setAbortable);
325 connect(inst_creation_task.get(), &Task::abortButtonTextChanged, this, &Task::setAbortButtonText);
326
327 connect(inst_creation_task.get(), &Task::warningLogged, this, [this](const QString& line) { m_Warnings.append(line); });
328
329 m_task.reset(inst_creation_task);
330 setAbortable(true);

Callers

nothing calls this directly

Calls 15

installIconFunction · 0.85
valueMethod · 0.80
setGroupMethod · 0.80
setConfirmUpdateMethod · 0.80
shouldOverrideMethod · 0.80
originalInstanceIDMethod · 0.80
appendMethod · 0.80
QStringClass · 0.70
isEmptyMethod · 0.45
setNameMethod · 0.45
setIconMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected