| 420 | } |
| 421 | |
| 422 | void 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 | |