GH-4699 Clean some things up

Add a menu to select between MMC/Modrinth format packs instead of the custom dialog
Treat 404s on requests to the Modrinth API as success, as the API returns a 404 if a hash was not found, and we don't want to retry the download in this case
Improve logging
This commit is contained in:
arthomnix
2023-02-05 10:13:13 +00:00
parent 16cf56b7a4
commit 74addfb78b
8 changed files with 46 additions and 182 deletions

View File

@@ -84,7 +84,8 @@
#include "ui/dialogs/EditAccountDialog.h"
#include "ui/dialogs/NotificationDialog.h"
#include "ui/dialogs/CreateShortcutDialog.h"
#include "ui/dialogs/SelectInstanceExportFormatDialog.h"
#include "ui/dialogs/ExportInstanceDialog.h"
#include "ui/dialogs/ModrinthExportDialog.h"
#include "UpdateController.h"
#include "KonamiCode.h"
@@ -974,6 +975,31 @@ void MainWindow::showInstanceContextMenu(const QPoint &pos)
void MainWindow::updateToolsMenu()
{
QToolButton *exportButton = dynamic_cast<QToolButton*>(ui->instanceToolBar->widgetForAction(ui->actionExportInstance));
exportButton->setPopupMode(QToolButton::MenuButtonPopup);
QMenu *exportMenu = ui->actionExportInstance->menu();
if (exportMenu) {
exportMenu->clear();
} else {
exportMenu = new QMenu();
}
QAction *mmcExport = exportMenu->addAction(BuildConfig.LAUNCHER_NAME);
QAction *modrinthExport = exportMenu->addAction(tr("Modrinth"));
connect(mmcExport, &QAction::triggered, this, &MainWindow::on_actionExportInstance_triggered);
connect(modrinthExport, &QAction::triggered, [this]()
{
if (m_selectedInstance) {
ModrinthExportDialog dlg(m_selectedInstance, this);
dlg.exec();
}
});
ui->actionExportInstance->setMenu(exportMenu);
QToolButton *launchButton = dynamic_cast<QToolButton*>(ui->instanceToolBar->widgetForAction(ui->actionLaunchInstance));
QToolButton *launchOfflineButton = dynamic_cast<QToolButton*>(ui->instanceToolBar->widgetForAction(ui->actionLaunchInstanceOffline));
@@ -1756,7 +1782,7 @@ void MainWindow::on_actionExportInstance_triggered()
{
if (m_selectedInstance)
{
SelectInstanceExportFormatDialog dlg(m_selectedInstance, this);
ExportInstanceDialog dlg(m_selectedInstance, this);
dlg.exec();
}
}