Merge pull request #919 from kumquat-ir/download-all-blocked
This commit is contained in:
commit
70a8f6743a
@ -851,6 +851,8 @@ SET(LAUNCHER_SOURCES
|
|||||||
ui/dialogs/ModDownloadDialog.h
|
ui/dialogs/ModDownloadDialog.h
|
||||||
ui/dialogs/ScrollMessageBox.cpp
|
ui/dialogs/ScrollMessageBox.cpp
|
||||||
ui/dialogs/ScrollMessageBox.h
|
ui/dialogs/ScrollMessageBox.h
|
||||||
|
ui/dialogs/BlockedModsDialog.cpp
|
||||||
|
ui/dialogs/BlockedModsDialog.h
|
||||||
ui/dialogs/ChooseProviderDialog.h
|
ui/dialogs/ChooseProviderDialog.h
|
||||||
ui/dialogs/ChooseProviderDialog.cpp
|
ui/dialogs/ChooseProviderDialog.cpp
|
||||||
ui/dialogs/ModUpdateDialog.cpp
|
ui/dialogs/ModUpdateDialog.cpp
|
||||||
@ -960,6 +962,7 @@ qt_wrap_ui(LAUNCHER_UI
|
|||||||
ui/dialogs/EditAccountDialog.ui
|
ui/dialogs/EditAccountDialog.ui
|
||||||
ui/dialogs/ReviewMessageBox.ui
|
ui/dialogs/ReviewMessageBox.ui
|
||||||
ui/dialogs/ScrollMessageBox.ui
|
ui/dialogs/ScrollMessageBox.ui
|
||||||
|
ui/dialogs/BlockedModsDialog.ui
|
||||||
ui/dialogs/ChooseProviderDialog.ui
|
ui/dialogs/ChooseProviderDialog.ui
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -60,7 +60,7 @@
|
|||||||
#include "net/ChecksumValidator.h"
|
#include "net/ChecksumValidator.h"
|
||||||
|
|
||||||
#include "ui/dialogs/CustomMessageBox.h"
|
#include "ui/dialogs/CustomMessageBox.h"
|
||||||
#include "ui/dialogs/ScrollMessageBox.h"
|
#include "ui/dialogs/BlockedModsDialog.h"
|
||||||
|
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
|
|
||||||
@ -396,21 +396,24 @@ void InstanceImportTask::processFlame()
|
|||||||
auto results = m_modIdResolver->getResults();
|
auto results = m_modIdResolver->getResults();
|
||||||
//first check for blocked mods
|
//first check for blocked mods
|
||||||
QString text;
|
QString text;
|
||||||
|
QList<QUrl> urls;
|
||||||
auto anyBlocked = false;
|
auto anyBlocked = false;
|
||||||
for(const auto& result: results.files.values()) {
|
for(const auto& result: results.files.values()) {
|
||||||
if (!result.resolved || result.url.isEmpty()) {
|
if (!result.resolved || result.url.isEmpty()) {
|
||||||
text += QString("%1: <a href='%2'>%2</a><br/>").arg(result.fileName, result.websiteUrl);
|
text += QString("%1: <a href='%2'>%2</a><br/>").arg(result.fileName, result.websiteUrl);
|
||||||
|
urls.append(QUrl(result.websiteUrl));
|
||||||
anyBlocked = true;
|
anyBlocked = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(anyBlocked) {
|
if(anyBlocked) {
|
||||||
qWarning() << "Blocked mods found, displaying mod list";
|
qWarning() << "Blocked mods found, displaying mod list";
|
||||||
|
|
||||||
auto message_dialog = new ScrollMessageBox(m_parent,
|
auto message_dialog = new BlockedModsDialog(m_parent,
|
||||||
tr("Blocked mods found"),
|
tr("Blocked mods found"),
|
||||||
tr("The following mods were blocked on third party launchers.<br/>"
|
tr("The following mods were blocked on third party launchers.<br/>"
|
||||||
"You will need to manually download them and add them to the modpack"),
|
"You will need to manually download them and add them to the modpack"),
|
||||||
text);
|
text,
|
||||||
|
urls);
|
||||||
message_dialog->setModal(true);
|
message_dialog->setModal(true);
|
||||||
|
|
||||||
if (message_dialog->exec()) {
|
if (message_dialog->exec()) {
|
||||||
|
@ -48,7 +48,7 @@
|
|||||||
|
|
||||||
#include "Application.h"
|
#include "Application.h"
|
||||||
#include "BuildConfig.h"
|
#include "BuildConfig.h"
|
||||||
#include "ui/dialogs/ScrollMessageBox.h"
|
#include "ui/dialogs/BlockedModsDialog.h"
|
||||||
|
|
||||||
namespace ModpacksCH {
|
namespace ModpacksCH {
|
||||||
|
|
||||||
@ -173,6 +173,7 @@ void PackInstallTask::onResolveModsSucceeded()
|
|||||||
m_abortable = false;
|
m_abortable = false;
|
||||||
|
|
||||||
QString text;
|
QString text;
|
||||||
|
QList<QUrl> urls;
|
||||||
auto anyBlocked = false;
|
auto anyBlocked = false;
|
||||||
|
|
||||||
Flame::Manifest results = m_mod_id_resolver_task->getResults();
|
Flame::Manifest results = m_mod_id_resolver_task->getResults();
|
||||||
@ -190,6 +191,7 @@ void PackInstallTask::onResolveModsSucceeded()
|
|||||||
|
|
||||||
type[0] = type[0].toUpper();
|
type[0] = type[0].toUpper();
|
||||||
text += QString("%1: %2 - <a href='%3'>%3</a><br/>").arg(type, local_file.name, results_file.websiteUrl);
|
text += QString("%1: %2 - <a href='%3'>%3</a><br/>").arg(type, local_file.name, results_file.websiteUrl);
|
||||||
|
urls.append(QUrl(results_file.websiteUrl));
|
||||||
anyBlocked = true;
|
anyBlocked = true;
|
||||||
} else {
|
} else {
|
||||||
local_file.url = results_file.url.toString();
|
local_file.url = results_file.url.toString();
|
||||||
@ -201,10 +203,11 @@ void PackInstallTask::onResolveModsSucceeded()
|
|||||||
if (anyBlocked) {
|
if (anyBlocked) {
|
||||||
qDebug() << "Blocked files found, displaying file list";
|
qDebug() << "Blocked files found, displaying file list";
|
||||||
|
|
||||||
auto message_dialog = new ScrollMessageBox(m_parent, tr("Blocked files found"),
|
auto message_dialog = new BlockedModsDialog(m_parent, tr("Blocked files found"),
|
||||||
tr("The following files are not available for download in third party launchers.<br/>"
|
tr("The following files are not available for download in third party launchers.<br/>"
|
||||||
"You will need to manually download them and add them to the instance."),
|
"You will need to manually download them and add them to the instance."),
|
||||||
text);
|
text,
|
||||||
|
urls);
|
||||||
|
|
||||||
if (message_dialog->exec() == QDialog::Accepted)
|
if (message_dialog->exec() == QDialog::Accepted)
|
||||||
downloadPack();
|
downloadPack();
|
||||||
|
28
launcher/ui/dialogs/BlockedModsDialog.cpp
Normal file
28
launcher/ui/dialogs/BlockedModsDialog.cpp
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
#include "BlockedModsDialog.h"
|
||||||
|
#include "ui_BlockedModsDialog.h"
|
||||||
|
#include <QPushButton>
|
||||||
|
#include <QDialogButtonBox>
|
||||||
|
#include <QDesktopServices>
|
||||||
|
|
||||||
|
|
||||||
|
BlockedModsDialog::BlockedModsDialog(QWidget *parent, const QString &title, const QString &text, const QString &body, const QList<QUrl> &urls) :
|
||||||
|
QDialog(parent), ui(new Ui::BlockedModsDialog), urls(urls) {
|
||||||
|
ui->setupUi(this);
|
||||||
|
|
||||||
|
auto openAllButton = ui->buttonBox->addButton(tr("Open All"), QDialogButtonBox::ActionRole);
|
||||||
|
connect(openAllButton, &QPushButton::clicked, this, &BlockedModsDialog::openAll);
|
||||||
|
|
||||||
|
this->setWindowTitle(title);
|
||||||
|
ui->label->setText(text);
|
||||||
|
ui->textBrowser->setText(body);
|
||||||
|
}
|
||||||
|
|
||||||
|
BlockedModsDialog::~BlockedModsDialog() {
|
||||||
|
delete ui;
|
||||||
|
}
|
||||||
|
|
||||||
|
void BlockedModsDialog::openAll() {
|
||||||
|
for(auto &url : urls) {
|
||||||
|
QDesktopServices::openUrl(url);
|
||||||
|
}
|
||||||
|
}
|
22
launcher/ui/dialogs/BlockedModsDialog.h
Normal file
22
launcher/ui/dialogs/BlockedModsDialog.h
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <QDialog>
|
||||||
|
|
||||||
|
|
||||||
|
QT_BEGIN_NAMESPACE
|
||||||
|
namespace Ui { class BlockedModsDialog; }
|
||||||
|
QT_END_NAMESPACE
|
||||||
|
|
||||||
|
class BlockedModsDialog : public QDialog {
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
BlockedModsDialog(QWidget *parent, const QString &title, const QString &text, const QString &body, const QList<QUrl> &urls);
|
||||||
|
|
||||||
|
~BlockedModsDialog() override;
|
||||||
|
|
||||||
|
private:
|
||||||
|
Ui::BlockedModsDialog *ui;
|
||||||
|
const QList<QUrl> &urls;
|
||||||
|
void openAll();
|
||||||
|
};
|
84
launcher/ui/dialogs/BlockedModsDialog.ui
Normal file
84
launcher/ui/dialogs/BlockedModsDialog.ui
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ui version="4.0">
|
||||||
|
<class>BlockedModsDialog</class>
|
||||||
|
<widget class="QDialog" name="BlockedModsDialog">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>400</width>
|
||||||
|
<height>455</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="windowTitle">
|
||||||
|
<string notr="true">BlockedModsDialog</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QGridLayout" name="gridLayout">
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QLabel" name="label">
|
||||||
|
<property name="text">
|
||||||
|
<string notr="true"/>
|
||||||
|
</property>
|
||||||
|
<property name="textFormat">
|
||||||
|
<enum>Qt::RichText</enum>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="0">
|
||||||
|
<widget class="QDialogButtonBox" name="buttonBox">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="standardButtons">
|
||||||
|
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0">
|
||||||
|
<widget class="QTextBrowser" name="textBrowser">
|
||||||
|
<property name="acceptRichText">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="openExternalLinks">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
<resources/>
|
||||||
|
<connections>
|
||||||
|
<connection>
|
||||||
|
<sender>buttonBox</sender>
|
||||||
|
<signal>accepted()</signal>
|
||||||
|
<receiver>BlockedModsDialog</receiver>
|
||||||
|
<slot>accept()</slot>
|
||||||
|
<hints>
|
||||||
|
<hint type="sourcelabel">
|
||||||
|
<x>199</x>
|
||||||
|
<y>425</y>
|
||||||
|
</hint>
|
||||||
|
<hint type="destinationlabel">
|
||||||
|
<x>199</x>
|
||||||
|
<y>227</y>
|
||||||
|
</hint>
|
||||||
|
</hints>
|
||||||
|
</connection>
|
||||||
|
<connection>
|
||||||
|
<sender>buttonBox</sender>
|
||||||
|
<signal>rejected()</signal>
|
||||||
|
<receiver>BlockedModsDialog</receiver>
|
||||||
|
<slot>reject()</slot>
|
||||||
|
<hints>
|
||||||
|
<hint type="sourcelabel">
|
||||||
|
<x>199</x>
|
||||||
|
<y>425</y>
|
||||||
|
</hint>
|
||||||
|
<hint type="destinationlabel">
|
||||||
|
<x>199</x>
|
||||||
|
<y>227</y>
|
||||||
|
</hint>
|
||||||
|
</hints>
|
||||||
|
</connection>
|
||||||
|
</connections>
|
||||||
|
</ui>
|
Loading…
Reference in New Issue
Block a user