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

Method processModrinth

launcher/InstanceImportTask.cpp:366–432  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

364}
365
366void InstanceImportTask::processModrinth()
367{
368 shared_qobject_ptr<ModrinthCreationTask> inst_creation_task = nullptr;
369 if (!m_extra_info.isEmpty()) {
370 auto pack_id_it = m_extra_info.constFind("pack_id");
371 Q_ASSERT(pack_id_it != m_extra_info.constEnd());
372 auto pack_id = pack_id_it.value();
373
374 QString pack_version_id;
375 auto pack_version_id_it = m_extra_info.constFind("pack_version_id");
376 if (pack_version_id_it != m_extra_info.constEnd())
377 pack_version_id = pack_version_id_it.value();
378
379 QString original_instance_id;
380 auto original_instance_id_it = m_extra_info.constFind("original_instance_id");
381 if (original_instance_id_it != m_extra_info.constEnd())
382 original_instance_id = original_instance_id_it.value();
383
384 inst_creation_task =
385 makeShared<ModrinthCreationTask>(m_stagingPath, m_globalSettings, m_parent, pack_id, pack_version_id, original_instance_id);
386 } else {
387 QString pack_id;
388 if (!m_sourceUrl.isEmpty()) {
389 static const QRegularExpression s_regex(R"(data\/([^\/]*)\/versions)");
390 pack_id = s_regex.match(m_sourceUrl.toString()).captured(1);
391 }
392
393 // FIXME: Find a way to get the ID in directly imported ZIPs
394 inst_creation_task = makeShared<ModrinthCreationTask>(m_stagingPath, m_globalSettings, m_parent, pack_id);
395 }
396
397 inst_creation_task->setName(*this);
398 // if the icon was specified by user, use that. otherwise pull icon from the pack
399 if (m_instIcon == "default") {
400 auto iconKey = QString("Modrinth_%1_Icon").arg(name());
401
402 if (installIcon(m_stagingPath, iconKey)) {
403 m_instIcon = iconKey;
404 }
405 }
406 inst_creation_task->setIcon(m_instIcon);
407 inst_creation_task->setGroup(m_instGroup);
408 inst_creation_task->setConfirmUpdate(shouldConfirmUpdate());
409
410 auto weak = inst_creation_task.toWeakRef();
411 connect(inst_creation_task.get(), &Task::succeeded, this, [this, weak] {
412 if (auto sp = weak.lock()) {
413 setOverride(sp->shouldOverride(), sp->originalInstanceID());
414 }
415 emitSucceeded();
416 });
417 connect(inst_creation_task.get(), &Task::failed, this, &InstanceImportTask::emitFailed);
418 connect(inst_creation_task.get(), &Task::progress, this, &InstanceImportTask::setProgress);
419 connect(inst_creation_task.get(), &Task::stepProgress, this, &InstanceImportTask::propagateStepProgress);
420 connect(inst_creation_task.get(), &Task::status, this, &InstanceImportTask::setStatus);
421 connect(inst_creation_task.get(), &Task::details, this, &InstanceImportTask::setDetails);
422
423 connect(inst_creation_task.get(), &Task::aborted, this, &InstanceImportTask::emitAborted);

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
toStringMethod · 0.45
setNameMethod · 0.45
setIconMethod · 0.45

Tested by

no test coverage detected