MCPcopy Create free account
hub / github.com/FreesmTeam/FreesmLauncher / processModrinth

Method processModrinth

launcher/InstanceImportTask.cpp:358–413  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

356}
357
358void InstanceImportTask::processModrinth()
359{
360 shared_qobject_ptr<ModrinthCreationTask> inst_creation_task = nullptr;
361 if (!m_extra_info.isEmpty()) {
362 auto pack_id_it = m_extra_info.constFind("pack_id");
363 Q_ASSERT(pack_id_it != m_extra_info.constEnd());
364 auto pack_id = pack_id_it.value();
365
366 QString pack_version_id;
367 auto pack_version_id_it = m_extra_info.constFind("pack_version_id");
368 if (pack_version_id_it != m_extra_info.constEnd())
369 pack_version_id = pack_version_id_it.value();
370
371 QString original_instance_id;
372 auto original_instance_id_it = m_extra_info.constFind("original_instance_id");
373 if (original_instance_id_it != m_extra_info.constEnd())
374 original_instance_id = original_instance_id_it.value();
375
376 inst_creation_task =
377 makeShared<ModrinthCreationTask>(m_stagingPath, m_globalSettings, m_parent, pack_id, pack_version_id, original_instance_id);
378 } else {
379 QString pack_id;
380 if (!m_sourceUrl.isEmpty()) {
381 QRegularExpression regex(R"(data\/([^\/]*)\/versions)");
382 pack_id = regex.match(m_sourceUrl.toString()).captured(1);
383 }
384
385 // FIXME: Find a way to get the ID in directly imported ZIPs
386 inst_creation_task = makeShared<ModrinthCreationTask>(m_stagingPath, m_globalSettings, m_parent, pack_id);
387 }
388
389 inst_creation_task->setName(*this);
390 inst_creation_task->setIcon(m_instIcon);
391 inst_creation_task->setGroup(m_instGroup);
392 inst_creation_task->setConfirmUpdate(shouldConfirmUpdate());
393
394 auto weak = inst_creation_task.toWeakRef();
395 connect(inst_creation_task.get(), &Task::succeeded, this, [this, weak] {
396 if (auto sp = weak.lock()) {
397 setOverride(sp->shouldOverride(), sp->originalInstanceID());
398 }
399 emitSucceeded();
400 });
401 connect(inst_creation_task.get(), &Task::failed, this, &InstanceImportTask::emitFailed);
402 connect(inst_creation_task.get(), &Task::progress, this, &InstanceImportTask::setProgress);
403 connect(inst_creation_task.get(), &Task::stepProgress, this, &InstanceImportTask::propagateStepProgress);
404 connect(inst_creation_task.get(), &Task::status, this, &InstanceImportTask::setStatus);
405 connect(inst_creation_task.get(), &Task::details, this, &InstanceImportTask::setDetails);
406
407 connect(inst_creation_task.get(), &Task::aborted, this, &Task::abort);
408 connect(inst_creation_task.get(), &Task::abortStatusChanged, this, &Task::setAbortable);
409
410 m_task.reset(inst_creation_task);
411 setAbortable(true);
412 m_task->start();
413}

Callers

nothing calls this directly

Calls 13

valueMethod · 0.80
setGroupMethod · 0.80
setConfirmUpdateMethod · 0.80
shouldOverrideMethod · 0.80
originalInstanceIDMethod · 0.80
isEmptyMethod · 0.45
toStringMethod · 0.45
setNameMethod · 0.45
setIconMethod · 0.45
getMethod · 0.45
lockMethod · 0.45
resetMethod · 0.45

Tested by

no test coverage detected