NOISSUE Import page is now a MultiMC pack page

This commit is contained in:
Petr Mrázek 2019-06-29 01:13:39 +02:00
parent fde43c993e
commit f74e3db804
10 changed files with 59 additions and 64 deletions

View File

@ -119,8 +119,8 @@ SET(MULTIMC_SOURCES
pages/global/LanguagePage.h pages/global/LanguagePage.h
pages/global/MinecraftPage.cpp pages/global/MinecraftPage.cpp
pages/global/MinecraftPage.h pages/global/MinecraftPage.h
pages/global/MultiMCPage.cpp pages/global/MultiMCSettingsPage.cpp
pages/global/MultiMCPage.h pages/global/MultiMCSettingsPage.h
pages/global/ProxyPage.cpp pages/global/ProxyPage.cpp
pages/global/ProxyPage.h pages/global/ProxyPage.h
pages/global/PasteEEPage.cpp pages/global/PasteEEPage.cpp
@ -139,8 +139,8 @@ SET(MULTIMC_SOURCES
pages/modplatform/TwitchPage.h pages/modplatform/TwitchPage.h
pages/modplatform/TechnicPage.cpp pages/modplatform/TechnicPage.cpp
pages/modplatform/TechnicPage.h pages/modplatform/TechnicPage.h
pages/modplatform/ImportPage.cpp pages/modplatform/MultiMCPage.cpp
pages/modplatform/ImportPage.h pages/modplatform/MultiMCPage.h
# GUI - dialogs # GUI - dialogs
dialogs/AboutDialog.cpp dialogs/AboutDialog.cpp
@ -245,7 +245,7 @@ SET(MULTIMC_UIS
pages/global/ExternalToolsPage.ui pages/global/ExternalToolsPage.ui
pages/global/JavaPage.ui pages/global/JavaPage.ui
pages/global/MinecraftPage.ui pages/global/MinecraftPage.ui
pages/global/MultiMCPage.ui pages/global/MultiMCSettingsPage.ui
pages/global/ProxyPage.ui pages/global/ProxyPage.ui
pages/global/PasteEEPage.ui pages/global/PasteEEPage.ui
pages/global/PackagesPage.ui pages/global/PackagesPage.ui
@ -255,7 +255,7 @@ SET(MULTIMC_UIS
pages/modplatform/FTBPage.ui pages/modplatform/FTBPage.ui
pages/modplatform/TwitchPage.ui pages/modplatform/TwitchPage.ui
pages/modplatform/TechnicPage.ui pages/modplatform/TechnicPage.ui
pages/modplatform/ImportPage.ui pages/modplatform/MultiMCPage.ui
# Dialogs # Dialogs
dialogs/CopyInstanceDialog.ui dialogs/CopyInstanceDialog.ui

View File

@ -3,7 +3,7 @@
#include "MainWindow.h" #include "MainWindow.h"
#include "InstanceWindow.h" #include "InstanceWindow.h"
#include "pages/BasePageProvider.h" #include "pages/BasePageProvider.h"
#include "pages/global/MultiMCPage.h" #include "pages/global/MultiMCSettingsPage.h"
#include "pages/global/MinecraftPage.h" #include "pages/global/MinecraftPage.h"
#include "pages/global/JavaPage.h" #include "pages/global/JavaPage.h"
#include "pages/global/LanguagePage.h" #include "pages/global/LanguagePage.h"
@ -517,7 +517,7 @@ MultiMC::MultiMC(int &argc, char **argv) : QApplication(argc, argv)
// Init page provider // Init page provider
{ {
m_globalSettingsProvider = std::make_shared<GenericPageProvider>(tr("Settings")); m_globalSettingsProvider = std::make_shared<GenericPageProvider>(tr("Settings"));
m_globalSettingsProvider->addPage<MultiMCPage>(); m_globalSettingsProvider->addPage<MultiMCSettingsPage>();
m_globalSettingsProvider->addPage<MinecraftPage>(); m_globalSettingsProvider->addPage<MinecraftPage>();
m_globalSettingsProvider->addPage<JavaPage>(); m_globalSettingsProvider->addPage<JavaPage>();
m_globalSettingsProvider->addPage<LanguagePage>(); m_globalSettingsProvider->addPage<LanguagePage>();

View File

@ -36,7 +36,7 @@
#include <pages/modplatform/VanillaPage.h> #include <pages/modplatform/VanillaPage.h>
#include <pages/modplatform/FTBPage.h> #include <pages/modplatform/FTBPage.h>
#include <pages/modplatform/TwitchPage.h> #include <pages/modplatform/TwitchPage.h>
#include <pages/modplatform/ImportPage.h> #include <pages/modplatform/MultiMCPage.h>
#include <pages/modplatform/TechnicPage.h> #include <pages/modplatform/TechnicPage.h>
NewInstanceDialog::NewInstanceDialog(const QString & initialGroup, const QString & url, QWidget *parent) NewInstanceDialog::NewInstanceDialog(const QString & initialGroup, const QString & url, QWidget *parent)
@ -118,13 +118,13 @@ void NewInstanceDialog::accept()
QList<BasePage *> NewInstanceDialog::getPages() QList<BasePage *> NewInstanceDialog::getPages()
{ {
importPage = new ImportPage(this); importPage = new MultiMCPage(this);
return return
{ {
new VanillaPage(this), new VanillaPage(this),
new FTBPage(this),
importPage, importPage,
new TwitchPage(this), new TwitchPage(this),
new FTBPage(this),
new TechnicPage(this) new TechnicPage(this)
}; };
} }

View File

@ -28,7 +28,7 @@ class NewInstanceDialog;
class PageContainer; class PageContainer;
class QDialogButtonBox; class QDialogButtonBox;
class ImportPage; class MultiMCPage;
class NewInstanceDialog : public QDialog, public BasePageProvider class NewInstanceDialog : public QDialog, public BasePageProvider
{ {
@ -66,7 +66,7 @@ private:
QDialogButtonBox * m_buttons = nullptr; QDialogButtonBox * m_buttons = nullptr;
QString InstIconKey; QString InstIconKey;
ImportPage *importPage = nullptr; MultiMCPage *importPage = nullptr;
std::unique_ptr<InstanceTask> creationTask; std::unique_ptr<InstanceTask> creationTask;
bool importIcon = false; bool importIcon = false;

View File

@ -13,8 +13,8 @@
* limitations under the License. * limitations under the License.
*/ */
#include "MultiMCPage.h" #include "MultiMCSettingsPage.h"
#include "ui_MultiMCPage.h" #include "ui_MultiMCSettingsPage.h"
#include <QFileDialog> #include <QFileDialog>
#include <QMessageBox> #include <QMessageBox>
@ -38,7 +38,7 @@ enum InstSortMode
Sort_LastLaunch Sort_LastLaunch
}; };
MultiMCPage::MultiMCPage(QWidget *parent) : QWidget(parent), ui(new Ui::MultiMCPage) MultiMCSettingsPage::MultiMCSettingsPage(QWidget *parent) : QWidget(parent), ui(new Ui::MultiMCSettingsPage)
{ {
ui->setupUi(this); ui->setupUi(this);
auto origForeground = ui->fontPreview->palette().color(ui->fontPreview->foregroundRole()); auto origForeground = ui->fontPreview->palette().color(ui->fontPreview->foregroundRole());
@ -56,7 +56,7 @@ MultiMCPage::MultiMCPage(QWidget *parent) : QWidget(parent), ui(new Ui::MultiMCP
if(BuildConfig.UPDATER_ENABLED) if(BuildConfig.UPDATER_ENABLED)
{ {
QObject::connect(MMC->updateChecker().get(), &UpdateChecker::channelListLoaded, this, QObject::connect(MMC->updateChecker().get(), &UpdateChecker::channelListLoaded, this,
&MultiMCPage::refreshUpdateChannelList); &MultiMCSettingsPage::refreshUpdateChannelList);
if (MMC->updateChecker()->hasChannels()) if (MMC->updateChecker()->hasChannels())
{ {
@ -81,18 +81,18 @@ MultiMCPage::MultiMCPage(QWidget *parent) : QWidget(parent), ui(new Ui::MultiMCP
connect(ui->languageBox, SIGNAL(currentIndexChanged(int)), SLOT(languageIndexChanged(int))); connect(ui->languageBox, SIGNAL(currentIndexChanged(int)), SLOT(languageIndexChanged(int)));
} }
MultiMCPage::~MultiMCPage() MultiMCSettingsPage::~MultiMCSettingsPage()
{ {
delete ui; delete ui;
} }
bool MultiMCPage::apply() bool MultiMCSettingsPage::apply()
{ {
applySettings(); applySettings();
return true; return true;
} }
void MultiMCPage::on_instDirBrowseBtn_clicked() void MultiMCSettingsPage::on_instDirBrowseBtn_clicked()
{ {
QString raw_dir = QFileDialog::getExistingDirectory(this, tr("Instance Folder"), ui->instDirTextBox->text()); QString raw_dir = QFileDialog::getExistingDirectory(this, tr("Instance Folder"), ui->instDirTextBox->text());
@ -124,7 +124,7 @@ void MultiMCPage::on_instDirBrowseBtn_clicked()
} }
} }
void MultiMCPage::on_iconsDirBrowseBtn_clicked() void MultiMCSettingsPage::on_iconsDirBrowseBtn_clicked()
{ {
QString raw_dir = QFileDialog::getExistingDirectory(this, tr("Icons Folder"), ui->iconsDirTextBox->text()); QString raw_dir = QFileDialog::getExistingDirectory(this, tr("Icons Folder"), ui->iconsDirTextBox->text());
@ -135,7 +135,7 @@ void MultiMCPage::on_iconsDirBrowseBtn_clicked()
ui->iconsDirTextBox->setText(cooked_dir); ui->iconsDirTextBox->setText(cooked_dir);
} }
} }
void MultiMCPage::on_modsDirBrowseBtn_clicked() void MultiMCSettingsPage::on_modsDirBrowseBtn_clicked()
{ {
QString raw_dir = QFileDialog::getExistingDirectory(this, tr("Mods Folder"), ui->modsDirTextBox->text()); QString raw_dir = QFileDialog::getExistingDirectory(this, tr("Mods Folder"), ui->modsDirTextBox->text());
@ -147,7 +147,7 @@ void MultiMCPage::on_modsDirBrowseBtn_clicked()
} }
} }
void MultiMCPage::languageIndexChanged(int index) void MultiMCSettingsPage::languageIndexChanged(int index)
{ {
auto languageCode = ui->languageBox->itemData(ui->languageBox->currentIndex()).toString(); auto languageCode = ui->languageBox->itemData(ui->languageBox->currentIndex()).toString();
if(languageCode.isEmpty()) if(languageCode.isEmpty())
@ -160,7 +160,7 @@ void MultiMCPage::languageIndexChanged(int index)
translations->updateLanguage(languageCode); translations->updateLanguage(languageCode);
} }
void MultiMCPage::refreshUpdateChannelList() void MultiMCSettingsPage::refreshUpdateChannelList()
{ {
// Stop listening for selection changes. It's going to change a lot while we update it and // Stop listening for selection changes. It's going to change a lot while we update it and
// we don't need to update the // we don't need to update the
@ -205,12 +205,12 @@ void MultiMCPage::refreshUpdateChannelList()
ui->updateChannelComboBox->setEnabled(true); ui->updateChannelComboBox->setEnabled(true);
} }
void MultiMCPage::updateChannelSelectionChanged(int index) void MultiMCSettingsPage::updateChannelSelectionChanged(int index)
{ {
refreshUpdateChannelDesc(); refreshUpdateChannelDesc();
} }
void MultiMCPage::refreshUpdateChannelDesc() void MultiMCSettingsPage::refreshUpdateChannelDesc()
{ {
// Get the channel list. // Get the channel list.
QList<UpdateChecker::ChannelListEntry> channelList = MMC->updateChecker()->getChannelList(); QList<UpdateChecker::ChannelListEntry> channelList = MMC->updateChecker()->getChannelList();
@ -232,7 +232,7 @@ void MultiMCPage::refreshUpdateChannelDesc()
} }
} }
void MultiMCPage::applySettings() void MultiMCSettingsPage::applySettings()
{ {
auto s = MMC->settings(); auto s = MMC->settings();
@ -329,7 +329,7 @@ void MultiMCPage::applySettings()
s->set("Analytics", ui->analyticsCheck->isChecked()); s->set("Analytics", ui->analyticsCheck->isChecked());
} }
} }
void MultiMCPage::loadSettings() void MultiMCSettingsPage::loadSettings()
{ {
auto s = MMC->settings(); auto s = MMC->settings();
// Language // Language
@ -437,7 +437,7 @@ void MultiMCPage::loadSettings()
} }
} }
void MultiMCPage::refreshFontPreview() void MultiMCSettingsPage::refreshFontPreview()
{ {
int fontSize = ui->fontSizeBox->value(); int fontSize = ui->fontSizeBox->value();
QString fontFamily = ui->consoleFont->currentFont().family(); QString fontFamily = ui->consoleFont->currentFont().family();

View File

@ -29,16 +29,16 @@ class SettingsObject;
namespace Ui namespace Ui
{ {
class MultiMCPage; class MultiMCSettingsPage;
} }
class MultiMCPage : public QWidget, public BasePage class MultiMCSettingsPage : public QWidget, public BasePage
{ {
Q_OBJECT Q_OBJECT
public: public:
explicit MultiMCPage(QWidget *parent = 0); explicit MultiMCSettingsPage(QWidget *parent = 0);
~MultiMCPage(); ~MultiMCSettingsPage();
QString displayName() const override QString displayName() const override
{ {
@ -88,7 +88,7 @@ slots:
void updateChannelSelectionChanged(int index); void updateChannelSelectionChanged(int index);
private: private:
Ui::MultiMCPage *ui; Ui::MultiMCSettingsPage *ui;
/*! /*!
* Stores the currently selected update channel. * Stores the currently selected update channel.

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0"> <ui version="4.0">
<class>MultiMCPage</class> <class>MultiMCSettingsPage</class>
<widget class="QWidget" name="MultiMCPage"> <widget class="QWidget" name="MultiMCSettingsPage">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>0</x> <x>0</x>

View File

@ -1,5 +1,5 @@
#include "ImportPage.h" #include "MultiMCPage.h"
#include "ui_ImportPage.h" #include "ui_MultiMCPage.h"
#include "MultiMC.h" #include "MultiMC.h"
#include "dialogs/NewInstanceDialog.h" #include "dialogs/NewInstanceDialog.h"
@ -30,30 +30,30 @@ public:
} }
}; };
ImportPage::ImportPage(NewInstanceDialog* dialog, QWidget *parent) MultiMCPage::MultiMCPage(NewInstanceDialog* dialog, QWidget *parent)
: QWidget(parent), ui(new Ui::ImportPage), dialog(dialog) : QWidget(parent), ui(new Ui::MultiMCPage), dialog(dialog)
{ {
ui->setupUi(this); ui->setupUi(this);
ui->modpackEdit->setValidator(new UrlValidator(ui->modpackEdit)); ui->modpackEdit->setValidator(new UrlValidator(ui->modpackEdit));
connect(ui->modpackEdit, &QLineEdit::textChanged, this, &ImportPage::updateState); connect(ui->modpackEdit, &QLineEdit::textChanged, this, &MultiMCPage::updateState);
} }
ImportPage::~ImportPage() MultiMCPage::~MultiMCPage()
{ {
delete ui; delete ui;
} }
bool ImportPage::shouldDisplay() const bool MultiMCPage::shouldDisplay() const
{ {
return true; return true;
} }
void ImportPage::openedImpl() void MultiMCPage::openedImpl()
{ {
updateState(); updateState();
} }
void ImportPage::updateState() void MultiMCPage::updateState()
{ {
if(!isOpened) if(!isOpened)
{ {
@ -75,11 +75,6 @@ void ImportPage::updateState()
} }
else else
{ {
if(input.endsWith("?client=y")) {
input.chop(9);
input.append("/file");
url = QUrl::fromUserInput(input);
}
// hook, line and sinker. // hook, line and sinker.
QFileInfo fi(url.fileName()); QFileInfo fi(url.fileName());
dialog->setSuggestedPack(fi.completeBaseName(), new InstanceImportTask(url)); dialog->setSuggestedPack(fi.completeBaseName(), new InstanceImportTask(url));
@ -91,13 +86,13 @@ void ImportPage::updateState()
} }
} }
void ImportPage::setUrl(const QString& url) void MultiMCPage::setUrl(const QString& url)
{ {
ui->modpackEdit->setText(url); ui->modpackEdit->setText(url);
updateState(); updateState();
} }
void ImportPage::on_modpackBtn_clicked() void MultiMCPage::on_modpackBtn_clicked()
{ {
const QUrl url = QFileDialog::getOpenFileUrl(this, tr("Choose modpack"), modpackUrl(), tr("Zip (*.zip)")); const QUrl url = QFileDialog::getOpenFileUrl(this, tr("Choose modpack"), modpackUrl(), tr("Zip (*.zip)"));
if (url.isValid()) if (url.isValid())
@ -114,7 +109,7 @@ void ImportPage::on_modpackBtn_clicked()
} }
QUrl ImportPage::modpackUrl() const QUrl MultiMCPage::modpackUrl() const
{ {
const QUrl url(ui->modpackEdit->text()); const QUrl url(ui->modpackEdit->text());
if (url.isValid() && !url.isRelative() && !url.host().isEmpty()) if (url.isValid() && !url.isRelative() && !url.host().isEmpty())

View File

@ -23,33 +23,33 @@
namespace Ui namespace Ui
{ {
class ImportPage; class MultiMCPage;
} }
class NewInstanceDialog; class NewInstanceDialog;
class ImportPage : public QWidget, public BasePage class MultiMCPage : public QWidget, public BasePage
{ {
Q_OBJECT Q_OBJECT
public: public:
explicit ImportPage(NewInstanceDialog* dialog, QWidget *parent = 0); explicit MultiMCPage(NewInstanceDialog* dialog, QWidget *parent = 0);
virtual ~ImportPage(); virtual ~MultiMCPage();
virtual QString displayName() const override virtual QString displayName() const override
{ {
return tr("Import from zip"); return tr("MultiMC");
} }
virtual QIcon icon() const override virtual QIcon icon() const override
{ {
return MMC->getThemedIcon("viewfolder"); return MMC->getThemedIcon("multimc");
} }
virtual QString id() const override virtual QString id() const override
{ {
return "import"; return "multimc";
} }
virtual QString helpPage() const override virtual QString helpPage() const override
{ {
return "Zip-import"; return "MultiMC-packs";
} }
virtual bool shouldDisplay() const override; virtual bool shouldDisplay() const override;
@ -64,7 +64,7 @@ private:
QUrl modpackUrl() const; QUrl modpackUrl() const;
private: private:
Ui::ImportPage *ui = nullptr; Ui::MultiMCPage *ui = nullptr;
NewInstanceDialog* dialog = nullptr; NewInstanceDialog* dialog = nullptr;
}; };

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0"> <ui version="4.0">
<class>ImportPage</class> <class>MultiMCPage</class>
<widget class="QWidget" name="ImportPage"> <widget class="QWidget" name="MultiMCPage">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>0</x> <x>0</x>