| 31 | #include "ui/widgets/VersionSelectWidget.h" |
| 32 | |
| 33 | class InstallLoaderPage : public VersionSelectWidget, public BasePage { |
| 34 | Q_OBJECT |
| 35 | public: |
| 36 | InstallLoaderPage(const QString& id, |
| 37 | const QString& iconName, |
| 38 | const QString& name, |
| 39 | const Version& oldestVersion, |
| 40 | const std::shared_ptr<PackProfile> profile) |
| 41 | : VersionSelectWidget(nullptr), uid(id), iconName(iconName), name(name) |
| 42 | { |
| 43 | const QString minecraftVersion = profile->getComponentVersion("net.minecraft"); |
| 44 | setEmptyString(tr("No versions are currently available for Minecraft %1").arg(minecraftVersion)); |
| 45 | setExactIfPresentFilter(BaseVersionList::ParentVersionRole, minecraftVersion); |
| 46 | |
| 47 | if (oldestVersion != Version() && Version(minecraftVersion) < oldestVersion) |
| 48 | setExactFilter(BaseVersionList::ParentVersionRole, "AAA"); |
| 49 | |
| 50 | if (const QString currentVersion = profile->getComponentVersion(id); !currentVersion.isNull()) |
| 51 | setCurrentVersion(currentVersion); |
| 52 | } |
| 53 | |
| 54 | QString id() const override { return uid; } |
| 55 | QString displayName() const override { return name; } |
| 56 | QIcon icon() const override { return APPLICATION->getThemedIcon(iconName); } |
| 57 | |