diff --git a/application/CMakeLists.txt b/application/CMakeLists.txt index 10e1afc7..f8709cfd 100644 --- a/application/CMakeLists.txt +++ b/application/CMakeLists.txt @@ -119,8 +119,8 @@ SET(MULTIMC_SOURCES pages/global/LanguagePage.h pages/global/MinecraftPage.cpp pages/global/MinecraftPage.h - pages/global/MultiMCSettingsPage.cpp - pages/global/MultiMCSettingsPage.h + pages/global/MultiMCPage.cpp + pages/global/MultiMCPage.h pages/global/ProxyPage.cpp pages/global/ProxyPage.h pages/global/PasteEEPage.cpp @@ -139,8 +139,8 @@ SET(MULTIMC_SOURCES pages/modplatform/TwitchPage.h pages/modplatform/TechnicPage.cpp pages/modplatform/TechnicPage.h - pages/modplatform/MultiMCPage.cpp - pages/modplatform/MultiMCPage.h + pages/modplatform/ImportPage.cpp + pages/modplatform/ImportPage.h # GUI - dialogs dialogs/AboutDialog.cpp @@ -245,7 +245,7 @@ SET(MULTIMC_UIS pages/global/ExternalToolsPage.ui pages/global/JavaPage.ui pages/global/MinecraftPage.ui - pages/global/MultiMCSettingsPage.ui + pages/global/MultiMCPage.ui pages/global/ProxyPage.ui pages/global/PasteEEPage.ui pages/global/PackagesPage.ui @@ -255,7 +255,7 @@ SET(MULTIMC_UIS pages/modplatform/FTBPage.ui pages/modplatform/TwitchPage.ui pages/modplatform/TechnicPage.ui - pages/modplatform/MultiMCPage.ui + pages/modplatform/ImportPage.ui # Dialogs dialogs/CopyInstanceDialog.ui diff --git a/application/MultiMC.cpp b/application/MultiMC.cpp index d76bd0a7..179839fe 100644 --- a/application/MultiMC.cpp +++ b/application/MultiMC.cpp @@ -3,7 +3,7 @@ #include "MainWindow.h" #include "InstanceWindow.h" #include "pages/BasePageProvider.h" -#include "pages/global/MultiMCSettingsPage.h" +#include "pages/global/MultiMCPage.h" #include "pages/global/MinecraftPage.h" #include "pages/global/JavaPage.h" #include "pages/global/LanguagePage.h" @@ -517,7 +517,7 @@ MultiMC::MultiMC(int &argc, char **argv) : QApplication(argc, argv) // Init page provider { m_globalSettingsProvider = std::make_shared(tr("Settings")); - m_globalSettingsProvider->addPage(); + m_globalSettingsProvider->addPage(); m_globalSettingsProvider->addPage(); m_globalSettingsProvider->addPage(); m_globalSettingsProvider->addPage(); diff --git a/application/dialogs/NewInstanceDialog.cpp b/application/dialogs/NewInstanceDialog.cpp index e850d728..402a3417 100644 --- a/application/dialogs/NewInstanceDialog.cpp +++ b/application/dialogs/NewInstanceDialog.cpp @@ -36,7 +36,7 @@ #include #include #include -#include +#include #include NewInstanceDialog::NewInstanceDialog(const QString & initialGroup, const QString & url, QWidget *parent) @@ -118,13 +118,13 @@ void NewInstanceDialog::accept() QList NewInstanceDialog::getPages() { - importPage = new MultiMCPage(this); + importPage = new ImportPage(this); return { new VanillaPage(this), + new FTBPage(this), importPage, new TwitchPage(this), - new FTBPage(this), new TechnicPage(this) }; } diff --git a/application/dialogs/NewInstanceDialog.h b/application/dialogs/NewInstanceDialog.h index afeab4d1..c86ab73f 100644 --- a/application/dialogs/NewInstanceDialog.h +++ b/application/dialogs/NewInstanceDialog.h @@ -28,7 +28,7 @@ class NewInstanceDialog; class PageContainer; class QDialogButtonBox; -class MultiMCPage; +class ImportPage; class NewInstanceDialog : public QDialog, public BasePageProvider { @@ -66,7 +66,7 @@ private: QDialogButtonBox * m_buttons = nullptr; QString InstIconKey; - MultiMCPage *importPage = nullptr; + ImportPage *importPage = nullptr; std::unique_ptr creationTask; bool importIcon = false; diff --git a/application/pages/global/MultiMCSettingsPage.cpp b/application/pages/global/MultiMCPage.cpp similarity index 94% rename from application/pages/global/MultiMCSettingsPage.cpp rename to application/pages/global/MultiMCPage.cpp index b5505127..9baaa55b 100644 --- a/application/pages/global/MultiMCSettingsPage.cpp +++ b/application/pages/global/MultiMCPage.cpp @@ -13,8 +13,8 @@ * limitations under the License. */ -#include "MultiMCSettingsPage.h" -#include "ui_MultiMCSettingsPage.h" +#include "MultiMCPage.h" +#include "ui_MultiMCPage.h" #include #include @@ -38,7 +38,7 @@ enum InstSortMode Sort_LastLaunch }; -MultiMCSettingsPage::MultiMCSettingsPage(QWidget *parent) : QWidget(parent), ui(new Ui::MultiMCSettingsPage) +MultiMCPage::MultiMCPage(QWidget *parent) : QWidget(parent), ui(new Ui::MultiMCPage) { ui->setupUi(this); auto origForeground = ui->fontPreview->palette().color(ui->fontPreview->foregroundRole()); @@ -56,7 +56,7 @@ MultiMCSettingsPage::MultiMCSettingsPage(QWidget *parent) : QWidget(parent), ui( if(BuildConfig.UPDATER_ENABLED) { QObject::connect(MMC->updateChecker().get(), &UpdateChecker::channelListLoaded, this, - &MultiMCSettingsPage::refreshUpdateChannelList); + &MultiMCPage::refreshUpdateChannelList); if (MMC->updateChecker()->hasChannels()) { @@ -81,18 +81,18 @@ MultiMCSettingsPage::MultiMCSettingsPage(QWidget *parent) : QWidget(parent), ui( connect(ui->languageBox, SIGNAL(currentIndexChanged(int)), SLOT(languageIndexChanged(int))); } -MultiMCSettingsPage::~MultiMCSettingsPage() +MultiMCPage::~MultiMCPage() { delete ui; } -bool MultiMCSettingsPage::apply() +bool MultiMCPage::apply() { applySettings(); return true; } -void MultiMCSettingsPage::on_instDirBrowseBtn_clicked() +void MultiMCPage::on_instDirBrowseBtn_clicked() { QString raw_dir = QFileDialog::getExistingDirectory(this, tr("Instance Folder"), ui->instDirTextBox->text()); @@ -124,7 +124,7 @@ void MultiMCSettingsPage::on_instDirBrowseBtn_clicked() } } -void MultiMCSettingsPage::on_iconsDirBrowseBtn_clicked() +void MultiMCPage::on_iconsDirBrowseBtn_clicked() { QString raw_dir = QFileDialog::getExistingDirectory(this, tr("Icons Folder"), ui->iconsDirTextBox->text()); @@ -135,7 +135,7 @@ void MultiMCSettingsPage::on_iconsDirBrowseBtn_clicked() ui->iconsDirTextBox->setText(cooked_dir); } } -void MultiMCSettingsPage::on_modsDirBrowseBtn_clicked() +void MultiMCPage::on_modsDirBrowseBtn_clicked() { QString raw_dir = QFileDialog::getExistingDirectory(this, tr("Mods Folder"), ui->modsDirTextBox->text()); @@ -147,7 +147,7 @@ void MultiMCSettingsPage::on_modsDirBrowseBtn_clicked() } } -void MultiMCSettingsPage::languageIndexChanged(int index) +void MultiMCPage::languageIndexChanged(int index) { auto languageCode = ui->languageBox->itemData(ui->languageBox->currentIndex()).toString(); if(languageCode.isEmpty()) @@ -160,7 +160,7 @@ void MultiMCSettingsPage::languageIndexChanged(int index) translations->updateLanguage(languageCode); } -void MultiMCSettingsPage::refreshUpdateChannelList() +void MultiMCPage::refreshUpdateChannelList() { // Stop listening for selection changes. It's going to change a lot while we update it and // we don't need to update the @@ -205,12 +205,12 @@ void MultiMCSettingsPage::refreshUpdateChannelList() ui->updateChannelComboBox->setEnabled(true); } -void MultiMCSettingsPage::updateChannelSelectionChanged(int index) +void MultiMCPage::updateChannelSelectionChanged(int index) { refreshUpdateChannelDesc(); } -void MultiMCSettingsPage::refreshUpdateChannelDesc() +void MultiMCPage::refreshUpdateChannelDesc() { // Get the channel list. QList channelList = MMC->updateChecker()->getChannelList(); @@ -232,7 +232,7 @@ void MultiMCSettingsPage::refreshUpdateChannelDesc() } } -void MultiMCSettingsPage::applySettings() +void MultiMCPage::applySettings() { auto s = MMC->settings(); @@ -329,7 +329,7 @@ void MultiMCSettingsPage::applySettings() s->set("Analytics", ui->analyticsCheck->isChecked()); } } -void MultiMCSettingsPage::loadSettings() +void MultiMCPage::loadSettings() { auto s = MMC->settings(); // Language @@ -437,7 +437,7 @@ void MultiMCSettingsPage::loadSettings() } } -void MultiMCSettingsPage::refreshFontPreview() +void MultiMCPage::refreshFontPreview() { int fontSize = ui->fontSizeBox->value(); QString fontFamily = ui->consoleFont->currentFont().family(); diff --git a/application/pages/global/MultiMCSettingsPage.h b/application/pages/global/MultiMCPage.h similarity index 91% rename from application/pages/global/MultiMCSettingsPage.h rename to application/pages/global/MultiMCPage.h index 7b508ad9..7e7f655d 100644 --- a/application/pages/global/MultiMCSettingsPage.h +++ b/application/pages/global/MultiMCPage.h @@ -29,16 +29,16 @@ class SettingsObject; namespace Ui { -class MultiMCSettingsPage; +class MultiMCPage; } -class MultiMCSettingsPage : public QWidget, public BasePage +class MultiMCPage : public QWidget, public BasePage { Q_OBJECT public: - explicit MultiMCSettingsPage(QWidget *parent = 0); - ~MultiMCSettingsPage(); + explicit MultiMCPage(QWidget *parent = 0); + ~MultiMCPage(); QString displayName() const override { @@ -88,7 +88,7 @@ slots: void updateChannelSelectionChanged(int index); private: - Ui::MultiMCSettingsPage *ui; + Ui::MultiMCPage *ui; /*! * Stores the currently selected update channel. diff --git a/application/pages/global/MultiMCSettingsPage.ui b/application/pages/global/MultiMCPage.ui similarity index 99% rename from application/pages/global/MultiMCSettingsPage.ui rename to application/pages/global/MultiMCPage.ui index 5e02d0aa..124401c3 100644 --- a/application/pages/global/MultiMCSettingsPage.ui +++ b/application/pages/global/MultiMCPage.ui @@ -1,7 +1,7 @@ - MultiMCSettingsPage - + MultiMCPage + 0 diff --git a/application/pages/modplatform/MultiMCPage.cpp b/application/pages/modplatform/ImportPage.cpp similarity index 76% rename from application/pages/modplatform/MultiMCPage.cpp rename to application/pages/modplatform/ImportPage.cpp index c98596c2..3910dfda 100644 --- a/application/pages/modplatform/MultiMCPage.cpp +++ b/application/pages/modplatform/ImportPage.cpp @@ -1,5 +1,5 @@ -#include "MultiMCPage.h" -#include "ui_MultiMCPage.h" +#include "ImportPage.h" +#include "ui_ImportPage.h" #include "MultiMC.h" #include "dialogs/NewInstanceDialog.h" @@ -30,30 +30,30 @@ public: } }; -MultiMCPage::MultiMCPage(NewInstanceDialog* dialog, QWidget *parent) - : QWidget(parent), ui(new Ui::MultiMCPage), dialog(dialog) +ImportPage::ImportPage(NewInstanceDialog* dialog, QWidget *parent) + : QWidget(parent), ui(new Ui::ImportPage), dialog(dialog) { ui->setupUi(this); ui->modpackEdit->setValidator(new UrlValidator(ui->modpackEdit)); - connect(ui->modpackEdit, &QLineEdit::textChanged, this, &MultiMCPage::updateState); + connect(ui->modpackEdit, &QLineEdit::textChanged, this, &ImportPage::updateState); } -MultiMCPage::~MultiMCPage() +ImportPage::~ImportPage() { delete ui; } -bool MultiMCPage::shouldDisplay() const +bool ImportPage::shouldDisplay() const { return true; } -void MultiMCPage::openedImpl() +void ImportPage::openedImpl() { updateState(); } -void MultiMCPage::updateState() +void ImportPage::updateState() { if(!isOpened) { @@ -75,6 +75,11 @@ void MultiMCPage::updateState() } else { + if(input.endsWith("?client=y")) { + input.chop(9); + input.append("/file"); + url = QUrl::fromUserInput(input); + } // hook, line and sinker. QFileInfo fi(url.fileName()); dialog->setSuggestedPack(fi.completeBaseName(), new InstanceImportTask(url)); @@ -86,13 +91,13 @@ void MultiMCPage::updateState() } } -void MultiMCPage::setUrl(const QString& url) +void ImportPage::setUrl(const QString& url) { ui->modpackEdit->setText(url); updateState(); } -void MultiMCPage::on_modpackBtn_clicked() +void ImportPage::on_modpackBtn_clicked() { const QUrl url = QFileDialog::getOpenFileUrl(this, tr("Choose modpack"), modpackUrl(), tr("Zip (*.zip)")); if (url.isValid()) @@ -109,7 +114,7 @@ void MultiMCPage::on_modpackBtn_clicked() } -QUrl MultiMCPage::modpackUrl() const +QUrl ImportPage::modpackUrl() const { const QUrl url(ui->modpackEdit->text()); if (url.isValid() && !url.isRelative() && !url.host().isEmpty()) diff --git a/application/pages/modplatform/MultiMCPage.h b/application/pages/modplatform/ImportPage.h similarity index 78% rename from application/pages/modplatform/MultiMCPage.h rename to application/pages/modplatform/ImportPage.h index 1d9b7744..3afb0045 100644 --- a/application/pages/modplatform/MultiMCPage.h +++ b/application/pages/modplatform/ImportPage.h @@ -23,33 +23,33 @@ namespace Ui { -class MultiMCPage; +class ImportPage; } class NewInstanceDialog; -class MultiMCPage : public QWidget, public BasePage +class ImportPage : public QWidget, public BasePage { Q_OBJECT public: - explicit MultiMCPage(NewInstanceDialog* dialog, QWidget *parent = 0); - virtual ~MultiMCPage(); + explicit ImportPage(NewInstanceDialog* dialog, QWidget *parent = 0); + virtual ~ImportPage(); virtual QString displayName() const override { - return tr("MultiMC"); + return tr("Import from zip"); } virtual QIcon icon() const override { - return MMC->getThemedIcon("multimc"); + return MMC->getThemedIcon("viewfolder"); } virtual QString id() const override { - return "multimc"; + return "import"; } virtual QString helpPage() const override { - return "MultiMC-packs"; + return "Zip-import"; } virtual bool shouldDisplay() const override; @@ -64,7 +64,7 @@ private: QUrl modpackUrl() const; private: - Ui::MultiMCPage *ui = nullptr; + Ui::ImportPage *ui = nullptr; NewInstanceDialog* dialog = nullptr; }; diff --git a/application/pages/modplatform/MultiMCPage.ui b/application/pages/modplatform/ImportPage.ui similarity index 94% rename from application/pages/modplatform/MultiMCPage.ui rename to application/pages/modplatform/ImportPage.ui index dc329c4c..eb63cbe9 100644 --- a/application/pages/modplatform/MultiMCPage.ui +++ b/application/pages/modplatform/ImportPage.ui @@ -1,7 +1,7 @@ - MultiMCPage - + ImportPage + 0