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

Method appendMod

launcher/ui/dialogs/ModUpdateDialog.cpp:422–488  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

420}
421
422void ModUpdateDialog::appendMod(CheckUpdateTask::UpdatableMod const& info, QStringList requiredBy)
423{
424 auto item_top = new QTreeWidgetItem(ui->modTreeWidget);
425 item_top->setCheckState(0, info.enabled ? Qt::CheckState::Checked : Qt::CheckState::Unchecked);
426 if (!info.enabled) {
427 item_top->setToolTip(0, tr("Mod was disabled as it may be already installed."));
428 }
429 item_top->setText(0, info.name);
430 item_top->setExpanded(true);
431
432 auto provider_item = new QTreeWidgetItem(item_top);
433 provider_item->setText(0, tr("Provider: %1").arg(ModPlatform::ProviderCapabilities::readableName(info.provider)));
434
435 auto old_version_item = new QTreeWidgetItem(item_top);
436 old_version_item->setText(0, tr("Old version: %1").arg(info.old_version.isEmpty() ? tr("Not installed") : info.old_version));
437
438 auto new_version_item = new QTreeWidgetItem(item_top);
439 new_version_item->setText(0, tr("New version: %1").arg(info.new_version));
440
441 if (info.new_version_type.has_value()) {
442 auto new_version_type_itme = new QTreeWidgetItem(item_top);
443 new_version_type_itme->setText(0, tr("New Version Type: %1").arg(info.new_version_type.value().toString()));
444 }
445
446 if (!requiredBy.isEmpty()) {
447 auto requiredByItem = new QTreeWidgetItem(item_top);
448 if (requiredBy.length() == 1) {
449 requiredByItem->setText(0, tr("Required by: %1").arg(requiredBy.back()));
450 } else {
451 requiredByItem->setText(0, tr("Required by:"));
452 auto i = 0;
453 for (auto req : requiredBy) {
454 auto reqItem = new QTreeWidgetItem(requiredByItem);
455 reqItem->setText(0, req);
456 reqItem->insertChildren(i++, { reqItem });
457 }
458 }
459
460 ui->toggleDepsButton->show();
461 m_deps << item_top;
462 }
463
464 auto changelog_item = new QTreeWidgetItem(item_top);
465 changelog_item->setText(0, tr("Changelog of the latest version"));
466
467 auto changelog = new QTreeWidgetItem(changelog_item);
468 auto changelog_area = new QTextBrowser();
469
470 QString text = info.changelog;
471 switch (info.provider) {
472 case ModPlatform::ResourceProvider::MODRINTH: {
473 text = markdownToHTML(info.changelog.toUtf8());
474 break;
475 }
476 default:
477 break;
478 }
479

Callers

nothing calls this directly

Calls 6

markdownToHTMLFunction · 0.85
valueMethod · 0.80
showMethod · 0.80
setTextMethod · 0.45
isEmptyMethod · 0.45
toStringMethod · 0.45

Tested by

no test coverage detected