Make requested changes

Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
This commit is contained in:
TheKodeToad 2024-10-29 17:14:59 +00:00
parent c1c198b84b
commit d49e6187cd
No known key found for this signature in database
GPG Key ID: 5E39D70B4C93C38E
7 changed files with 12 additions and 22 deletions

View File

@ -166,7 +166,7 @@ bool ResourceFolderModel::installResource(QString original_path)
return false; return false;
} }
bool ResourceFolderModel::installResource(QString path, ModPlatform::IndexedVersion& vers) bool ResourceFolderModel::installResourceWithFlameMetadata(QString path, ModPlatform::IndexedVersion& vers)
{ {
if (vers.addonId.isValid()) { if (vers.addonId.isValid()) {
ModPlatform::IndexedPack pack{ ModPlatform::IndexedPack pack{

View File

@ -113,7 +113,7 @@ class ResourceFolderModel : public QAbstractListModel {
*/ */
virtual bool installResource(QString path); virtual bool installResource(QString path);
virtual bool installResource(QString path, ModPlatform::IndexedVersion& vers); virtual bool installResourceWithFlameMetadata(QString path, ModPlatform::IndexedVersion& vers);
/** Uninstall (i.e. remove all data about it) a resource, given its file name. /** Uninstall (i.e. remove all data about it) a resource, given its file name.
* *

View File

@ -17,7 +17,7 @@ class CheckUpdateTask : public Task {
std::list<Version>& mcVersions, std::list<Version>& mcVersions,
QList<ModPlatform::ModLoaderType> loadersList, QList<ModPlatform::ModLoaderType> loadersList,
std::shared_ptr<ResourceFolderModel> resourceModel) std::shared_ptr<ResourceFolderModel> resourceModel)
: Task(nullptr) : Task()
, m_resources(resources) , m_resources(resources)
, m_game_versions(mcVersions) , m_game_versions(mcVersions)
, m_loaders_list(std::move(loadersList)) , m_loaders_list(std::move(loadersList))

View File

@ -25,7 +25,6 @@
#include <QVariant> #include <QVariant>
#include <QVector> #include <QVector>
#include <memory> #include <memory>
#include <optional>
class QIODevice; class QIODevice;

View File

@ -148,7 +148,7 @@ void ModrinthCheckUpdate::checkVersionsResponse(std::shared_ptr<QByteArray> resp
} }
m_updates.emplace_back(pack->name, hash, old_version, project_ver.version_number, project_ver.version_type, m_updates.emplace_back(pack->name, hash, old_version, project_ver.version_number, project_ver.version_type,
project_ver.changelog, ModPlatform::ResourceProvider::MODRINTH, download_task); project_ver.changelog, ModPlatform::ResourceProvider::MODRINTH, download_task, resource->enabled());
} }
m_deps.append(std::make_shared<GetModDependenciesTask::PackDependency>(pack, project_ver)); m_deps.append(std::make_shared<GetModDependenciesTask::PackDependency>(pack, project_ver));
@ -177,7 +177,7 @@ void ModrinthCheckUpdate::checkNextLoader()
if (m_loader_idx < m_loaders_list.size()) { if (m_loader_idx < m_loaders_list.size()) {
getUpdateModsForLoader(m_loaders_list.at(m_loader_idx)); getUpdateModsForLoader(m_loaders_list.at(m_loader_idx));
m_loader_idx++; m_loader_idx++;
return; return;
} }
for (auto resource : m_mappings) { for (auto resource : m_mappings) {

View File

@ -1048,7 +1048,7 @@ void MainWindow::processURLs(QList<QUrl> urls)
qWarning() << "Importing of Data Packs not supported at this time. Ignoring" << localFileName; qWarning() << "Importing of Data Packs not supported at this time. Ignoring" << localFileName;
break; break;
case PackedResourceType::Mod: case PackedResourceType::Mod:
minecraftInst->loaderModList()->installResource(localFileName, version); minecraftInst->loaderModList()->installResourceWithFlameMetadata(localFileName, version);
break; break;
case PackedResourceType::ShaderPack: case PackedResourceType::ShaderPack:
minecraftInst->shaderPackList()->installResource(localFileName); minecraftInst->shaderPackList()->installResource(localFileName);

View File

@ -305,21 +305,10 @@ void ExternalResourcesPage::disableItem()
void ExternalResourcesPage::viewHomepage() void ExternalResourcesPage::viewHomepage()
{ {
auto selection = m_filterModel->mapSelectionToSource(ui->treeView->selectionModel()->selection()).indexes(); auto selection = m_filterModel->mapSelectionToSource(ui->treeView->selectionModel()->selection()).indexes();
bool openedAny = false;
for (auto resource : m_model->selectedResources(selection)) { for (auto resource : m_model->selectedResources(selection)) {
auto url = resource->homepage(); auto url = resource->homepage();
if (!url.isEmpty()) { if (!url.isEmpty())
DesktopServices::openUrl(url); DesktopServices::openUrl(url);
openedAny = true;
}
}
// TODO: just disable button
// just doing this for now to prevent race conditions which may be worse with implementation changes
if (!openedAny) {
CustomMessageBox::selectable(this, tr("No homepages found"), tr("None of the selected resources had an available homepage."),
QMessageBox::Warning, QMessageBox::Ok, QMessageBox::Ok)
->exec();
} }
} }
@ -336,18 +325,20 @@ void ExternalResourcesPage::viewFolder()
void ExternalResourcesPage::updateActions() void ExternalResourcesPage::updateActions()
{ {
const bool hasSelection = ui->treeView->selectionModel()->hasSelection(); const bool hasSelection = ui->treeView->selectionModel()->hasSelection();
const QModelIndexList rows = ui->treeView->selectionModel()->selectedRows(); const QModelIndexList selection = m_filterModel->mapSelectionToSource(ui->treeView->selectionModel()->selection()).indexes();
const QList<Resource*> selectedResources = m_model->selectedResources(selection);
ui->actionUpdateItem->setEnabled(!m_model->empty()); ui->actionUpdateItem->setEnabled(!m_model->empty());
ui->actionResetItemMetadata->setEnabled(hasSelection); ui->actionResetItemMetadata->setEnabled(hasSelection);
ui->actionChangeVersion->setEnabled(rows.count() == 1 && m_model->at(m_filterModel->mapToSource(rows[0]).row()).metadata() != nullptr); ui->actionChangeVersion->setEnabled(selectedResources.size() == 1 && selectedResources[0]->metadata() != nullptr);
ui->actionRemoveItem->setEnabled(hasSelection); ui->actionRemoveItem->setEnabled(hasSelection);
ui->actionEnableItem->setEnabled(hasSelection); ui->actionEnableItem->setEnabled(hasSelection);
ui->actionDisableItem->setEnabled(hasSelection); ui->actionDisableItem->setEnabled(hasSelection);
ui->actionViewHomepage->setEnabled(hasSelection); ui->actionViewHomepage->setEnabled(hasSelection && std::any_of(selectedResources.begin(), selectedResources.end(),
[](Resource* resource) { return !resource->homepage().isEmpty() }));
ui->actionExportMetadata->setEnabled(!m_model->empty()); ui->actionExportMetadata->setEnabled(!m_model->empty());
} }