From d4b522b6cb5281df02da54cd9e0f6445770e7ec7 Mon Sep 17 00:00:00 2001
From: bexnoss <82064510+bexnoss@users.noreply.github.com>
Date: Wed, 12 Jan 2022 10:36:26 +0100
Subject: Add offline mode UI
---
launcher/ui/pages/global/AccountListPage.cpp | 17 +++++++++++++++++
launcher/ui/pages/global/AccountListPage.h | 1 +
launcher/ui/pages/global/AccountListPage.ui | 6 ++++++
3 files changed, 24 insertions(+)
(limited to 'launcher/ui/pages')
diff --git a/launcher/ui/pages/global/AccountListPage.cpp b/launcher/ui/pages/global/AccountListPage.cpp
index b8da6c75..b9aa7628 100644
--- a/launcher/ui/pages/global/AccountListPage.cpp
+++ b/launcher/ui/pages/global/AccountListPage.cpp
@@ -24,6 +24,7 @@
#include "net/NetJob.h"
#include "ui/dialogs/ProgressDialog.h"
+#include "ui/dialogs/OfflineLoginDialog.h"
#include "ui/dialogs/LoginDialog.h"
#include "ui/dialogs/MSALoginDialog.h"
#include "ui/dialogs/CustomMessageBox.h"
@@ -153,6 +154,22 @@ void AccountListPage::on_actionAddMicrosoft_triggered()
}
}
+void AccountListPage::on_actionAddOffline_triggered()
+{
+ MinecraftAccountPtr account = OfflineLoginDialog::newAccount(
+ this,
+ tr("Please enter your desired username to add your offline account.")
+ );
+
+ if (account)
+ {
+ m_accounts->addAccount(account);
+ if (m_accounts->count() == 1) {
+ m_accounts->setDefaultAccount(account);
+ }
+ }
+}
+
void AccountListPage::on_actionRemove_triggered()
{
QModelIndexList selection = ui->listView->selectionModel()->selectedIndexes();
diff --git a/launcher/ui/pages/global/AccountListPage.h b/launcher/ui/pages/global/AccountListPage.h
index 1c65e708..841c3fd2 100644
--- a/launcher/ui/pages/global/AccountListPage.h
+++ b/launcher/ui/pages/global/AccountListPage.h
@@ -62,6 +62,7 @@ public:
public slots:
void on_actionAddMojang_triggered();
void on_actionAddMicrosoft_triggered();
+ void on_actionAddOffline_triggered();
void on_actionRemove_triggered();
void on_actionRefresh_triggered();
void on_actionSetDefault_triggered();
diff --git a/launcher/ui/pages/global/AccountListPage.ui b/launcher/ui/pages/global/AccountListPage.ui
index 29738c02..d21a92e2 100644
--- a/launcher/ui/pages/global/AccountListPage.ui
+++ b/launcher/ui/pages/global/AccountListPage.ui
@@ -54,6 +54,7 @@
+
@@ -103,6 +104,11 @@
Add Microsoft
+
+
+ Add Offline
+
+
Refresh
--
cgit
From 395e2655648dbb80d089077e6a6b2530f4876c63 Mon Sep 17 00:00:00 2001
From: bexnoss <82064510+bexnoss@users.noreply.github.com>
Date: Fri, 14 Jan 2022 00:01:05 +0100
Subject: Add offline mode disclaimer
---
launcher/ui/dialogs/OfflineLoginDialog.ui | 4 ++--
launcher/ui/pages/global/AccountListPage.cpp | 8 +++++++-
2 files changed, 9 insertions(+), 3 deletions(-)
(limited to 'launcher/ui/pages')
diff --git a/launcher/ui/dialogs/OfflineLoginDialog.ui b/launcher/ui/dialogs/OfflineLoginDialog.ui
index d8964a2e..4577d361 100644
--- a/launcher/ui/dialogs/OfflineLoginDialog.ui
+++ b/launcher/ui/dialogs/OfflineLoginDialog.ui
@@ -6,8 +6,8 @@
0
0
- 400
- 150
+ 500
+ 250
diff --git a/launcher/ui/pages/global/AccountListPage.cpp b/launcher/ui/pages/global/AccountListPage.cpp
index b9aa7628..1c27d5b7 100644
--- a/launcher/ui/pages/global/AccountListPage.cpp
+++ b/launcher/ui/pages/global/AccountListPage.cpp
@@ -158,7 +158,13 @@ void AccountListPage::on_actionAddOffline_triggered()
{
MinecraftAccountPtr account = OfflineLoginDialog::newAccount(
this,
- tr("Please enter your desired username to add your offline account.")
+ tr("Please enter your desired username to add your offline account.
"
+ "
"
+ "It is required by Mojang that you own Minecraft BEFORE you may use offline mode.
"
+ "The PolyMC organization denounces piracy and takes NO LIABILITY WHATSOEVER
"
+ "for any illegal activity that may occur in usage of the offline mode feature.
"
+ "
"
+ "By continuing you promise that you own a Minecraft account.")
);
if (account)
--
cgit
From cdaa397dcffb92ae6a9c659047a87d49286dee4f Mon Sep 17 00:00:00 2001
From: bexnoss <82064510+bexnoss@users.noreply.github.com>
Date: Fri, 14 Jan 2022 14:19:31 +0100
Subject: Reword offline mode disclaimer
---
launcher/ui/pages/global/AccountListPage.cpp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
(limited to 'launcher/ui/pages')
diff --git a/launcher/ui/pages/global/AccountListPage.cpp b/launcher/ui/pages/global/AccountListPage.cpp
index 1c27d5b7..ad88812a 100644
--- a/launcher/ui/pages/global/AccountListPage.cpp
+++ b/launcher/ui/pages/global/AccountListPage.cpp
@@ -161,8 +161,8 @@ void AccountListPage::on_actionAddOffline_triggered()
tr("Please enter your desired username to add your offline account.
"
"
"
"It is required by Mojang that you own Minecraft BEFORE you may use offline mode.
"
- "The PolyMC organization denounces piracy and takes NO LIABILITY WHATSOEVER
"
- "for any illegal activity that may occur in usage of the offline mode feature.
"
+ "The PolyMC developers denounce piracy and take NO LIABILITY WHATSOEVER for
"
+ "any illegal activity that may occur in usage of the offline mode feature.
"
"
"
"By continuing you promise that you own a Minecraft account.")
);
--
cgit
From a62155c1c9e561327cc589fe3da7b6d5a107d58d Mon Sep 17 00:00:00 2001
From: swirl
Date: Fri, 14 Jan 2022 18:20:06 -0500
Subject: preliminary stuff for paste.ee removal
---
CMakeLists.txt | 3 -
buildconfig/BuildConfig.cpp.in | 1 -
buildconfig/BuildConfig.h | 5 --
launcher/Application.cpp | 4 +-
launcher/CMakeLists.txt | 6 +-
launcher/ui/pages/global/PasteEEPage.cpp | 81 -------------------
launcher/ui/pages/global/PasteEEPage.h | 62 ---------------
launcher/ui/pages/global/PasteEEPage.ui | 128 -------------------------------
launcher/ui/pages/global/PastePage.cpp | 81 +++++++++++++++++++
launcher/ui/pages/global/PastePage.h | 63 +++++++++++++++
launcher/ui/pages/global/PastePage.ui | 109 ++++++++++++++++++++++++++
11 files changed, 258 insertions(+), 285 deletions(-)
delete mode 100644 launcher/ui/pages/global/PasteEEPage.cpp
delete mode 100644 launcher/ui/pages/global/PasteEEPage.h
delete mode 100644 launcher/ui/pages/global/PasteEEPage.ui
create mode 100644 launcher/ui/pages/global/PastePage.cpp
create mode 100644 launcher/ui/pages/global/PastePage.h
create mode 100644 launcher/ui/pages/global/PastePage.ui
(limited to 'launcher/ui/pages')
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2af0aa71..91119b2f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -68,9 +68,6 @@ set(Launcher_NOTIFICATION_URL "" CACHE STRING "URL for checking for notification
# The metadata server
set(Launcher_META_URL "https://meta.multimc.org/v1/" CACHE STRING "URL to fetch Launcher's meta files from.")
-# paste.ee API key
-set(Launcher_PASTE_EE_API_KEY "utLvciUouSURFzfjPxLBf5W4ISsUX4pwBDF7N1AfZ" CACHE STRING "API key you can get from paste.ee when you register an account")
-
# Imgur API Client ID
set(Launcher_IMGUR_CLIENT_ID "5b97b0713fba4a3" CACHE STRING "Client ID you can get from Imgur when you register an application")
diff --git a/buildconfig/BuildConfig.cpp.in b/buildconfig/BuildConfig.cpp.in
index af8845dc..2595f78b 100644
--- a/buildconfig/BuildConfig.cpp.in
+++ b/buildconfig/BuildConfig.cpp.in
@@ -42,7 +42,6 @@ Config::Config()
VERSION_STR = "@Launcher_VERSION_STRING@";
NEWS_RSS_URL = "@Launcher_NEWS_RSS_URL@";
- PASTE_EE_KEY = "@Launcher_PASTE_EE_API_KEY@";
IMGUR_CLIENT_ID = "@Launcher_IMGUR_CLIENT_ID@";
MSA_CLIENT_ID = "@Launcher_MSA_CLIENT_ID@";
META_URL = "@Launcher_META_URL@";
diff --git a/buildconfig/BuildConfig.h b/buildconfig/BuildConfig.h
index 009fb2bc..d09d5288 100644
--- a/buildconfig/BuildConfig.h
+++ b/buildconfig/BuildConfig.h
@@ -67,11 +67,6 @@ public:
*/
QString NEWS_RSS_URL;
- /**
- * API key you can get from paste.ee when you register an account
- */
- QString PASTE_EE_KEY;
-
/**
* Client ID you can get from Imgur when you register an application
*/
diff --git a/launcher/Application.cpp b/launcher/Application.cpp
index 47c9c20e..98e3e0fc 100644
--- a/launcher/Application.cpp
+++ b/launcher/Application.cpp
@@ -14,7 +14,7 @@
#include "ui/pages/global/ProxyPage.h"
#include "ui/pages/global/ExternalToolsPage.h"
#include "ui/pages/global/AccountListPage.h"
-#include "ui/pages/global/PasteEEPage.h"
+#include "ui/pages/global/PastePage.h"
#include "ui/pages/global/CustomCommandsPage.h"
#include "ui/themes/ITheme.h"
@@ -728,7 +728,7 @@ Application::Application(int &argc, char **argv) : QApplication(argc, argv)
m_globalSettingsProvider->addPage();
m_globalSettingsProvider->addPage();
m_globalSettingsProvider->addPage();
- m_globalSettingsProvider->addPage();
+ m_globalSettingsProvider->addPage();
}
qDebug() << "<> Settings loaded.";
}
diff --git a/launcher/CMakeLists.txt b/launcher/CMakeLists.txt
index df361447..21859cad 100644
--- a/launcher/CMakeLists.txt
+++ b/launcher/CMakeLists.txt
@@ -711,8 +711,8 @@ SET(LAUNCHER_SOURCES
ui/pages/global/LauncherPage.h
ui/pages/global/ProxyPage.cpp
ui/pages/global/ProxyPage.h
- ui/pages/global/PasteEEPage.cpp
- ui/pages/global/PasteEEPage.h
+ ui/pages/global/PastePage.cpp
+ ui/pages/global/PastePage.h
# GUI - platform pages
ui/pages/modplatform/VanillaPage.cpp
@@ -848,7 +848,7 @@ qt5_wrap_ui(LAUNCHER_UI
ui/pages/global/AccountListPage.ui
ui/pages/global/JavaPage.ui
ui/pages/global/LauncherPage.ui
- ui/pages/global/PasteEEPage.ui
+ ui/pages/global/PastePage.ui
ui/pages/global/ProxyPage.ui
ui/pages/global/MinecraftPage.ui
ui/pages/global/ExternalToolsPage.ui
diff --git a/launcher/ui/pages/global/PasteEEPage.cpp b/launcher/ui/pages/global/PasteEEPage.cpp
deleted file mode 100644
index 4b375d9a..00000000
--- a/launcher/ui/pages/global/PasteEEPage.cpp
+++ /dev/null
@@ -1,81 +0,0 @@
-/* Copyright 2013-2021 MultiMC Contributors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "PasteEEPage.h"
-#include "ui_PasteEEPage.h"
-
-#include
-#include
-#include
-#include
-
-#include "settings/SettingsObject.h"
-#include "tools/BaseProfiler.h"
-#include "Application.h"
-
-PasteEEPage::PasteEEPage(QWidget *parent) :
- QWidget(parent),
- ui(new Ui::PasteEEPage)
-{
- ui->setupUi(this);
- ui->tabWidget->tabBar()->hide();\
- connect(ui->customAPIkeyEdit, &QLineEdit::textEdited, this, &PasteEEPage::textEdited);
- loadSettings();
-}
-
-PasteEEPage::~PasteEEPage()
-{
- delete ui;
-}
-
-void PasteEEPage::loadSettings()
-{
- auto s = APPLICATION->settings();
- QString keyToUse = s->get("PasteEEAPIKey").toString();
- if(keyToUse == "multimc")
- {
- ui->multimcButton->setChecked(true);
- }
- else
- {
- ui->customButton->setChecked(true);
- ui->customAPIkeyEdit->setText(keyToUse);
- }
-}
-
-void PasteEEPage::applySettings()
-{
- auto s = APPLICATION->settings();
-
- QString pasteKeyToUse;
- if (ui->customButton->isChecked())
- pasteKeyToUse = ui->customAPIkeyEdit->text();
- else
- {
- pasteKeyToUse = "multimc";
- }
- s->set("PasteEEAPIKey", pasteKeyToUse);
-}
-
-bool PasteEEPage::apply()
-{
- applySettings();
- return true;
-}
-
-void PasteEEPage::textEdited(const QString& text)
-{
- ui->customButton->setChecked(true);
-}
diff --git a/launcher/ui/pages/global/PasteEEPage.h b/launcher/ui/pages/global/PasteEEPage.h
deleted file mode 100644
index a1c7d434..00000000
--- a/launcher/ui/pages/global/PasteEEPage.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/* Copyright 2013-2021 MultiMC Contributors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#pragma once
-
-#include
-
-#include "ui/pages/BasePage.h"
-#include
-
-namespace Ui {
-class PasteEEPage;
-}
-
-class PasteEEPage : public QWidget, public BasePage
-{
- Q_OBJECT
-
-public:
- explicit PasteEEPage(QWidget *parent = 0);
- ~PasteEEPage();
-
- QString displayName() const override
- {
- return tr("Log Upload");
- }
- QIcon icon() const override
- {
- return APPLICATION->getThemedIcon("log");
- }
- QString id() const override
- {
- return "log-upload";
- }
- QString helpPage() const override
- {
- return "Log-Upload";
- }
- virtual bool apply() override;
-
-private:
- void loadSettings();
- void applySettings();
-
-private slots:
- void textEdited(const QString &text);
-
-private:
- Ui::PasteEEPage *ui;
-};
diff --git a/launcher/ui/pages/global/PasteEEPage.ui b/launcher/ui/pages/global/PasteEEPage.ui
deleted file mode 100644
index 10883781..00000000
--- a/launcher/ui/pages/global/PasteEEPage.ui
+++ /dev/null
@@ -1,128 +0,0 @@
-
-
- PasteEEPage
-
-
-
- 0
- 0
- 491
- 474
-
-
-
-
- 0
-
-
- 0
-
-
- 0
-
-
- 0
-
- -
-
-
- 0
-
-
-
- Tab 1
-
-
-
-
-
-
- paste.ee API key
-
-
-
-
-
-
- MultiMC key - 12MB &upload limit
-
-
- pasteButtonGroup
-
-
-
- -
-
-
- &Your own key - 12MB upload limit:
-
-
- pasteButtonGroup
-
-
-
- -
-
-
- QLineEdit::Password
-
-
- Paste your API key here!
-
-
-
- -
-
-
- Qt::Horizontal
-
-
-
- -
-
-
- <html><head/><body><p><a href="https://paste.ee">paste.ee</a> is used by MultiMC for log uploads. If you have a <a href="https://paste.ee">paste.ee</a> account, you can add your API key here and have your uploaded logs paired with your account.</p></body></html>
-
-
- Qt::RichText
-
-
- true
-
-
- true
-
-
-
-
-
-
- -
-
-
- Qt::Vertical
-
-
-
- 20
- 216
-
-
-
-
-
-
-
-
-
-
-
- tabWidget
- multimcButton
- customButton
- customAPIkeyEdit
-
-
-
-
-
-
-
diff --git a/launcher/ui/pages/global/PastePage.cpp b/launcher/ui/pages/global/PastePage.cpp
new file mode 100644
index 00000000..3378a6ef
--- /dev/null
+++ b/launcher/ui/pages/global/PastePage.cpp
@@ -0,0 +1,81 @@
+/* Copyright 2013-2021 MultiMC & PolyMC Contributors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "PastePage.h"
+#include "ui_PastePage.h"
+
+#include
+#include
+#include
+#include
+
+#include "settings/SettingsObject.h"
+#include "tools/BaseProfiler.h"
+#include "Application.h"
+
+PastePage::PastePage(QWidget *parent) :
+ QWidget(parent),
+ ui(new Ui::PastePage)
+{
+ ui->setupUi(this);
+ ui->tabWidget->tabBar()->hide();\
+ connect(ui->customAPIkeyEdit, &QLineEdit::textEdited, this, &PastePage::textEdited);
+ loadSettings();
+}
+
+PastePage::~PastePage()
+{
+ delete ui;
+}
+
+void PastePage::loadSettings()
+{
+ auto s = APPLICATION->settings();
+ QString keyToUse = s->get("PasteEEAPIKey").toString();
+ if(keyToUse == "multimc")
+ {
+ ui->multimcButton->setChecked(true);
+ }
+ else
+ {
+ ui->customButton->setChecked(true);
+ ui->customAPIkeyEdit->setText(keyToUse);
+ }
+}
+
+void PastePage::applySettings()
+{
+ auto s = APPLICATION->settings();
+
+ QString pasteKeyToUse;
+ if (ui->customButton->isChecked())
+ pasteKeyToUse = ui->customAPIkeyEdit->text();
+ else
+ {
+ pasteKeyToUse = "multimc";
+ }
+ s->set("PasteEEAPIKey", pasteKeyToUse);
+}
+
+bool PastePage::apply()
+{
+ applySettings();
+ return true;
+}
+
+void PastePage::textEdited(const QString& text)
+{
+ ui->customButton->setChecked(true);
+}
diff --git a/launcher/ui/pages/global/PastePage.h b/launcher/ui/pages/global/PastePage.h
new file mode 100644
index 00000000..3930d4ec
--- /dev/null
+++ b/launcher/ui/pages/global/PastePage.h
@@ -0,0 +1,63 @@
+/* Copyright 2013-2021 MultiMC Contributors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#pragma once
+
+#include
+
+#include "ui/pages/BasePage.h"
+#include
+
+namespace Ui {
+class PastePage;
+}
+
+class PastePage : public QWidget, public BasePage
+{
+ Q_OBJECT
+
+public:
+ explicit PastePage(QWidget *parent = 0);
+ ~PastePage();
+
+ QString displayName() const override
+ {
+ return tr("Log Upload");
+ }
+ QIcon icon() const override
+ {
+ return APPLICATION->getThemedIcon("log");
+ }
+ QString id() const override
+ {
+ return "log-upload";
+ }
+ QString helpPage() const override
+ {
+ return "Log-Upload";
+ }
+ virtual bool apply() override;
+
+private:
+ void loadSettings();
+ void applySettings();
+
+private slots:
+ void textEdited(const QString &text);
+
+private:
+ Ui::PastePage *ui;
+};
+
diff --git a/launcher/ui/pages/global/PastePage.ui b/launcher/ui/pages/global/PastePage.ui
new file mode 100644
index 00000000..0bef5a22
--- /dev/null
+++ b/launcher/ui/pages/global/PastePage.ui
@@ -0,0 +1,109 @@
+
+
+ PastePage
+
+
+
+ 0
+ 0
+ 491
+ 474
+
+
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+ -
+
+
+ 0
+
+
+
+ Tab 1
+
+
+
-
+
+
+ Pastebin Site
+
+
+
-
+
+
+ Qt::Horizontal
+
+
+
+ -
+
+
-
+
+ 0x0.st
+
+
+ -
+
+ paste.polymc.org
+
+
+
+
+ -
+
+
+ <html><head/><body><p>paste.polymc.org is a pastebin managed by PolyMC's lead maintainer. Something something trust</p></body></html>
+
+
+ Qt::RichText
+
+
+ true
+
+
+ true
+
+
+
+
+
+
+ -
+
+
+ Qt::Vertical
+
+
+
+ 20
+ 216
+
+
+
+
+
+
+
+
+
+
+
+ tabWidget
+
+
+
+
+
+
+
--
cgit
From a606b47a22443cefc52d865df24c45ff50908f6f Mon Sep 17 00:00:00 2001
From: swirl
Date: Fri, 14 Jan 2022 18:30:02 -0500
Subject: pastebin URL app setting
---
launcher/Application.cpp | 4 ++--
launcher/ui/pages/global/PastePage.cpp | 13 +++----------
launcher/ui/pages/global/PastePage.ui | 2 +-
3 files changed, 6 insertions(+), 13 deletions(-)
(limited to 'launcher/ui/pages')
diff --git a/launcher/Application.cpp b/launcher/Application.cpp
index 98e3e0fc..110b2e6b 100644
--- a/launcher/Application.cpp
+++ b/launcher/Application.cpp
@@ -714,8 +714,8 @@ Application::Application(int &argc, char **argv) : QApplication(argc, argv)
m_settings->registerSetting("UpdateDialogGeometry", "");
- // paste.ee API key
- m_settings->registerSetting("PasteEEAPIKey", "multimc");
+ // pastebin URL
+ m_settings->registerSetting("PastebinURL", "0x0.st");
// Init page provider
{
diff --git a/launcher/ui/pages/global/PastePage.cpp b/launcher/ui/pages/global/PastePage.cpp
index 3378a6ef..495e9937 100644
--- a/launcher/ui/pages/global/PastePage.cpp
+++ b/launcher/ui/pages/global/PastePage.cpp
@@ -43,16 +43,9 @@ PastePage::~PastePage()
void PastePage::loadSettings()
{
auto s = APPLICATION->settings();
- QString keyToUse = s->get("PasteEEAPIKey").toString();
- if(keyToUse == "multimc")
- {
- ui->multimcButton->setChecked(true);
- }
- else
- {
- ui->customButton->setChecked(true);
- ui->customAPIkeyEdit->setText(keyToUse);
- }
+ QString pastebin = s->get("PastebinURL");
+ int index = ui->urlChoices->findText(pastebin);
+ ui->urlChoices->setCurrentIndex(index);
}
void PastePage::applySettings()
diff --git a/launcher/ui/pages/global/PastePage.ui b/launcher/ui/pages/global/PastePage.ui
index 0bef5a22..784ea3f4 100644
--- a/launcher/ui/pages/global/PastePage.ui
+++ b/launcher/ui/pages/global/PastePage.ui
@@ -47,7 +47,7 @@
-
-
+
-
0x0.st
--
cgit
From 81fe41a038ee12ff2ee0200525b39e4ad650bec2 Mon Sep 17 00:00:00 2001
From: swirl
Date: Sun, 16 Jan 2022 12:02:53 -0500
Subject: Default to colored icons, update copyright
Closes: #74
---
COPYING.md | 4 ++--
launcher/Application.cpp | 2 +-
launcher/ui/dialogs/AboutDialog.cpp | 2 +-
launcher/ui/pages/global/LauncherPage.cpp | 4 ++--
4 files changed, 6 insertions(+), 6 deletions(-)
(limited to 'launcher/ui/pages')
diff --git a/COPYING.md b/COPYING.md
index 4205d441..1ac6d5cb 100644
--- a/COPYING.md
+++ b/COPYING.md
@@ -1,7 +1,7 @@
# PolyMC
Copyright (C) 2012-2021 MultiMC Contributors
- Copyright (C) 2021 PolyMC Contributors
+ Copyright (C) 2021-2022 PolyMC Contributors
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -15,7 +15,7 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see .
-
+
# Launcher (https://github.com/MultiMC/Launcher)
Copyright 2012-2021 MultiMC Contributors
Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/launcher/Application.cpp b/launcher/Application.cpp
index 47c9c20e..8d1c4d62 100644
--- a/launcher/Application.cpp
+++ b/launcher/Application.cpp
@@ -595,7 +595,7 @@ Application::Application(int &argc, char **argv) : QApplication(argc, argv)
m_settings->registerSetting("AutoUpdate", true);
// Theming
- m_settings->registerSetting("IconTheme", QString("multimc"));
+ m_settings->registerSetting("IconTheme", QString("pe_colored"));
m_settings->registerSetting("ApplicationTheme", QString("system"));
// Notifications
diff --git a/launcher/ui/dialogs/AboutDialog.cpp b/launcher/ui/dialogs/AboutDialog.cpp
index 2ba34f1a..46d2f429 100644
--- a/launcher/ui/dialogs/AboutDialog.cpp
+++ b/launcher/ui/dialogs/AboutDialog.cpp
@@ -99,7 +99,7 @@ AboutDialog::AboutDialog(QWidget *parent) : QDialog(parent), ui(new Ui::AboutDia
QString urlText("
%1
");
ui->urlLabel->setText(urlText.arg(BuildConfig.LAUNCHER_GIT));
- QString copyText("© 2012-2021 %1");
+ QString copyText("© 2021-2022 %1");
ui->copyLabel->setText(copyText.arg(BuildConfig.LAUNCHER_COPYRIGHT));
connect(ui->closeButton, SIGNAL(clicked()), SLOT(close()));
diff --git a/launcher/ui/pages/global/LauncherPage.cpp b/launcher/ui/pages/global/LauncherPage.cpp
index 4d4d4e89..81ecd58f 100644
--- a/launcher/ui/pages/global/LauncherPage.cpp
+++ b/launcher/ui/pages/global/LauncherPage.cpp
@@ -256,7 +256,7 @@ void LauncherPage::applySettings()
s->set("IconTheme", "pe_blue");
break;
case 4:
- s->set("IconTheme", "pe_colored");
+ s->set("IconTheme", "multimc");
break;
case 5:
s->set("IconTheme", "OSX");
@@ -272,7 +272,7 @@ void LauncherPage::applySettings()
break;
case 0:
default:
- s->set("IconTheme", "multimc");
+ s->set("IconTheme", "pe_colored");
break;
}
--
cgit
From 55597b458ced4d7ad8082ab226617ba48e177ee6 Mon Sep 17 00:00:00 2001
From: Lenny McLennington
Date: Mon, 17 Jan 2022 03:45:47 +0000
Subject: Revert "Merge pull request #50 from bexnoss/offline-mode"
This reverts commit b4f750e7db40352111417ea89a9f375ae8c746ab, reversing
changes made to b19e3156154ba0dd232a3d165b1759c57e2858f2.
---
launcher/CMakeLists.txt | 7 --
launcher/LaunchController.cpp | 6 --
launcher/minecraft/auth/AccountData.cpp | 10 +--
launcher/minecraft/auth/AccountData.h | 3 +-
launcher/minecraft/auth/AccountList.cpp | 2 +-
launcher/minecraft/auth/MinecraftAccount.cpp | 31 ---------
launcher/minecraft/auth/MinecraftAccount.h | 12 ----
launcher/minecraft/auth/flows/Offline.cpp | 17 -----
launcher/minecraft/auth/flows/Offline.h | 22 ------
launcher/minecraft/auth/steps/OfflineStep.cpp | 18 -----
launcher/minecraft/auth/steps/OfflineStep.h | 20 ------
launcher/ui/dialogs/OfflineLoginDialog.cpp | 98 ---------------------------
launcher/ui/dialogs/OfflineLoginDialog.h | 43 ------------
launcher/ui/dialogs/OfflineLoginDialog.ui | 67 ------------------
launcher/ui/pages/global/AccountListPage.cpp | 23 -------
launcher/ui/pages/global/AccountListPage.h | 1 -
launcher/ui/pages/global/AccountListPage.ui | 6 --
17 files changed, 3 insertions(+), 383 deletions(-)
delete mode 100644 launcher/minecraft/auth/flows/Offline.cpp
delete mode 100644 launcher/minecraft/auth/flows/Offline.h
delete mode 100644 launcher/minecraft/auth/steps/OfflineStep.cpp
delete mode 100644 launcher/minecraft/auth/steps/OfflineStep.h
delete mode 100644 launcher/ui/dialogs/OfflineLoginDialog.cpp
delete mode 100644 launcher/ui/dialogs/OfflineLoginDialog.h
delete mode 100644 launcher/ui/dialogs/OfflineLoginDialog.ui
(limited to 'launcher/ui/pages')
diff --git a/launcher/CMakeLists.txt b/launcher/CMakeLists.txt
index df361447..b5c52afa 100644
--- a/launcher/CMakeLists.txt
+++ b/launcher/CMakeLists.txt
@@ -221,11 +221,7 @@ set(MINECRAFT_SOURCES
minecraft/auth/flows/Mojang.h
minecraft/auth/flows/MSA.cpp
minecraft/auth/flows/MSA.h
- minecraft/auth/flows/Offline.cpp
- minecraft/auth/flows/Offline.h
- minecraft/auth/steps/OfflineStep.cpp
- minecraft/auth/steps/OfflineStep.h
minecraft/auth/steps/EntitlementsStep.cpp
minecraft/auth/steps/EntitlementsStep.h
minecraft/auth/steps/GetSkinStep.cpp
@@ -773,8 +769,6 @@ SET(LAUNCHER_SOURCES
ui/dialogs/LoginDialog.h
ui/dialogs/MSALoginDialog.cpp
ui/dialogs/MSALoginDialog.h
- ui/dialogs/OfflineLoginDialog.cpp
- ui/dialogs/OfflineLoginDialog.h
ui/dialogs/NewComponentDialog.cpp
ui/dialogs/NewComponentDialog.h
ui/dialogs/NewInstanceDialog.cpp
@@ -886,7 +880,6 @@ qt5_wrap_ui(LAUNCHER_UI
ui/dialogs/ExportInstanceDialog.ui
ui/dialogs/IconPickerDialog.ui
ui/dialogs/MSALoginDialog.ui
- ui/dialogs/OfflineLoginDialog.ui
ui/dialogs/AboutDialog.ui
ui/dialogs/LoginDialog.ui
ui/dialogs/EditAccountDialog.ui
diff --git a/launcher/LaunchController.cpp b/launcher/LaunchController.cpp
index 32fc99cb..7750be1a 100644
--- a/launcher/LaunchController.cpp
+++ b/launcher/LaunchController.cpp
@@ -116,12 +116,6 @@ void LaunchController::login() {
m_session->wants_online = m_online;
m_accountToUse->fillSession(m_session);
- // Launch immediately in true offline mode
- if(m_accountToUse->isOffline()) {
- launchInstance();
- return;
- }
-
switch(m_accountToUse->accountState()) {
case AccountState::Offline: {
m_session->wants_online = false;
diff --git a/launcher/minecraft/auth/AccountData.cpp b/launcher/minecraft/auth/AccountData.cpp
index 9b84fe1a..7526c951 100644
--- a/launcher/minecraft/auth/AccountData.cpp
+++ b/launcher/minecraft/auth/AccountData.cpp
@@ -314,8 +314,6 @@ bool AccountData::resumeStateFromV3(QJsonObject data) {
type = AccountType::MSA;
} else if (typeS == "Mojang") {
type = AccountType::Mojang;
- } else if (typeS == "Offline") {
- type = AccountType::Offline;
} else {
qWarning() << "Failed to parse account data: type is not recognized.";
return false;
@@ -365,9 +363,6 @@ QJsonObject AccountData::saveState() const {
tokenToJSONV3(output, xboxApiToken, "xrp-main");
tokenToJSONV3(output, mojangservicesToken, "xrp-mc");
}
- else if (type == AccountType::Offline) {
- output["type"] = "Offline";
- }
tokenToJSONV3(output, yggdrasilToken, "ygg");
profileToJSONV3(output, minecraftProfile, "profile");
@@ -376,7 +371,7 @@ QJsonObject AccountData::saveState() const {
}
QString AccountData::userName() const {
- if(type == AccountType::MSA) {
+ if(type != AccountType::Mojang) {
return QString();
}
return yggdrasilToken.extra["userName"].toString();
@@ -432,9 +427,6 @@ QString AccountData::accountDisplayString() const {
case AccountType::Mojang: {
return userName();
}
- case AccountType::Offline: {
- return userName();
- }
case AccountType::MSA: {
if(xboxApiToken.extra.contains("gtg")) {
return xboxApiToken.extra["gtg"].toString();
diff --git a/launcher/minecraft/auth/AccountData.h b/launcher/minecraft/auth/AccountData.h
index 606c1ad1..abf84e43 100644
--- a/launcher/minecraft/auth/AccountData.h
+++ b/launcher/minecraft/auth/AccountData.h
@@ -38,8 +38,7 @@ struct MinecraftProfile {
enum class AccountType {
MSA,
- Mojang,
- Offline
+ Mojang
};
enum class AccountState {
diff --git a/launcher/minecraft/auth/AccountList.cpp b/launcher/minecraft/auth/AccountList.cpp
index 04470e1c..ef8b435d 100644
--- a/launcher/minecraft/auth/AccountList.cpp
+++ b/launcher/minecraft/auth/AccountList.cpp
@@ -302,7 +302,7 @@ QVariant AccountList::data(const QModelIndex &index, int role) const
}
case MigrationColumn: {
- if(account->isMSA() || account->isOffline()) {
+ if(account->isMSA()) {
return tr("N/A", "Can Migrate?");
}
if (account->canMigrate()) {
diff --git a/launcher/minecraft/auth/MinecraftAccount.cpp b/launcher/minecraft/auth/MinecraftAccount.cpp
index 6592be0f..ed9e945e 100644
--- a/launcher/minecraft/auth/MinecraftAccount.cpp
+++ b/launcher/minecraft/auth/MinecraftAccount.cpp
@@ -30,7 +30,6 @@
#include "flows/MSA.h"
#include "flows/Mojang.h"
-#include "flows/Offline.h"
MinecraftAccount::MinecraftAccount(QObject* parent) : QObject(parent) {
data.internalId = QUuid::createUuid().toString().remove(QRegExp("[{}-]"));
@@ -69,23 +68,6 @@ MinecraftAccountPtr MinecraftAccount::createBlankMSA()
return account;
}
-MinecraftAccountPtr MinecraftAccount::createOffline(const QString &username)
-{
- MinecraftAccountPtr account = new MinecraftAccount();
- account->data.type = AccountType::Offline;
- account->data.yggdrasilToken.token = "offline";
- account->data.yggdrasilToken.validity = Katabasis::Validity::Certain;
- account->data.yggdrasilToken.issueInstant = QDateTime::currentDateTimeUtc();
- account->data.yggdrasilToken.extra["userName"] = username;
- account->data.yggdrasilToken.extra["clientToken"] = QUuid::createUuid().toString().remove(QRegExp("[{}-]"));
- account->data.minecraftEntitlement.ownsMinecraft = true;
- account->data.minecraftEntitlement.canPlayMinecraft = true;
- account->data.minecraftProfile.id = QUuid::createUuid().toString().remove(QRegExp("[{}-]"));
- account->data.minecraftProfile.name = username;
- account->data.minecraftProfile.validity = Katabasis::Validity::Certain;
- return account;
-}
-
QJsonObject MinecraftAccount::saveToJson() const
{
@@ -129,16 +111,6 @@ shared_qobject_ptr MinecraftAccount::loginMSA() {
return m_currentTask;
}
-shared_qobject_ptr MinecraftAccount::loginOffline() {
- Q_ASSERT(m_currentTask.get() == nullptr);
-
- m_currentTask.reset(new OfflineLogin(&data));
- connect(m_currentTask.get(), SIGNAL(succeeded()), SLOT(authSucceeded()));
- connect(m_currentTask.get(), SIGNAL(failed(QString)), SLOT(authFailed(QString)));
- emit activityChanged(true);
- return m_currentTask;
-}
-
shared_qobject_ptr MinecraftAccount::refresh() {
if(m_currentTask) {
return m_currentTask;
@@ -147,9 +119,6 @@ shared_qobject_ptr MinecraftAccount::refresh() {
if(data.type == AccountType::MSA) {
m_currentTask.reset(new MSASilent(&data));
}
- if(data.type == AccountType::Offline) {
- m_currentTask.reset(new OfflineRefresh(&data));
- }
else {
m_currentTask.reset(new MojangRefresh(&data));
}
diff --git a/launcher/minecraft/auth/MinecraftAccount.h b/launcher/minecraft/auth/MinecraftAccount.h
index 6592f9c0..7ab3c746 100644
--- a/launcher/minecraft/auth/MinecraftAccount.h
+++ b/launcher/minecraft/auth/MinecraftAccount.h
@@ -73,8 +73,6 @@ public: /* construction */
static MinecraftAccountPtr createBlankMSA();
- static MinecraftAccountPtr createOffline(const QString &username);
-
static MinecraftAccountPtr loadFromJsonV2(const QJsonObject &json);
static MinecraftAccountPtr loadFromJsonV3(const QJsonObject &json);
@@ -91,8 +89,6 @@ public: /* manipulation */
shared_qobject_ptr loginMSA();
- shared_qobject_ptr loginOffline();
-
shared_qobject_ptr refresh();
shared_qobject_ptr currentTask();
@@ -132,10 +128,6 @@ public: /* queries */
return data.type == AccountType::MSA;
}
- bool isOffline() const {
- return data.type == AccountType::Offline;
- }
-
bool ownsMinecraft() const {
return data.minecraftEntitlement.ownsMinecraft;
}
@@ -157,10 +149,6 @@ public: /* queries */
return "msa";
}
break;
- case AccountType::Offline: {
- return "offline";
- }
- break;
default: {
return "unknown";
}
diff --git a/launcher/minecraft/auth/flows/Offline.cpp b/launcher/minecraft/auth/flows/Offline.cpp
deleted file mode 100644
index fc614a8c..00000000
--- a/launcher/minecraft/auth/flows/Offline.cpp
+++ /dev/null
@@ -1,17 +0,0 @@
-#include "Offline.h"
-
-#include "minecraft/auth/steps/OfflineStep.h"
-
-OfflineRefresh::OfflineRefresh(
- AccountData *data,
- QObject *parent
-) : AuthFlow(data, parent) {
- m_steps.append(new OfflineStep(m_data));
-}
-
-OfflineLogin::OfflineLogin(
- AccountData *data,
- QObject *parent
-) : AuthFlow(data, parent) {
- m_steps.append(new OfflineStep(m_data));
-}
diff --git a/launcher/minecraft/auth/flows/Offline.h b/launcher/minecraft/auth/flows/Offline.h
deleted file mode 100644
index 5d1f83a4..00000000
--- a/launcher/minecraft/auth/flows/Offline.h
+++ /dev/null
@@ -1,22 +0,0 @@
-#pragma once
-#include "AuthFlow.h"
-
-class OfflineRefresh : public AuthFlow
-{
- Q_OBJECT
-public:
- explicit OfflineRefresh(
- AccountData *data,
- QObject *parent = 0
- );
-};
-
-class OfflineLogin : public AuthFlow
-{
- Q_OBJECT
-public:
- explicit OfflineLogin(
- AccountData *data,
- QObject *parent = 0
- );
-};
diff --git a/launcher/minecraft/auth/steps/OfflineStep.cpp b/launcher/minecraft/auth/steps/OfflineStep.cpp
deleted file mode 100644
index dc092bfd..00000000
--- a/launcher/minecraft/auth/steps/OfflineStep.cpp
+++ /dev/null
@@ -1,18 +0,0 @@
-#include "OfflineStep.h"
-
-#include "Application.h"
-
-OfflineStep::OfflineStep(AccountData* data) : AuthStep(data) {}
-OfflineStep::~OfflineStep() noexcept = default;
-
-QString OfflineStep::describe() {
- return tr("Creating offline account.");
-}
-
-void OfflineStep::rehydrate() {
- // NOOP
-}
-
-void OfflineStep::perform() {
- emit finished(AccountTaskState::STATE_WORKING, tr("Created offline account."));
-}
diff --git a/launcher/minecraft/auth/steps/OfflineStep.h b/launcher/minecraft/auth/steps/OfflineStep.h
deleted file mode 100644
index 62addb1f..00000000
--- a/launcher/minecraft/auth/steps/OfflineStep.h
+++ /dev/null
@@ -1,20 +0,0 @@
-
-#pragma once
-#include
-
-#include "QObjectPtr.h"
-#include "minecraft/auth/AuthStep.h"
-
-#include
-
-class OfflineStep : public AuthStep {
- Q_OBJECT
-public:
- explicit OfflineStep(AccountData *data);
- virtual ~OfflineStep() noexcept;
-
- void perform() override;
- void rehydrate() override;
-
- QString describe() override;
-};
diff --git a/launcher/ui/dialogs/OfflineLoginDialog.cpp b/launcher/ui/dialogs/OfflineLoginDialog.cpp
deleted file mode 100644
index 345ed40a..00000000
--- a/launcher/ui/dialogs/OfflineLoginDialog.cpp
+++ /dev/null
@@ -1,98 +0,0 @@
-#include "OfflineLoginDialog.h"
-#include "ui_OfflineLoginDialog.h"
-
-#include "minecraft/auth/AccountTask.h"
-
-#include
-
-OfflineLoginDialog::OfflineLoginDialog(QWidget *parent) : QDialog(parent), ui(new Ui::OfflineLoginDialog)
-{
- ui->setupUi(this);
- ui->progressBar->setVisible(false);
- ui->buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false);
-
- connect(ui->buttonBox, &QDialogButtonBox::accepted, this, &QDialog::accept);
- connect(ui->buttonBox, &QDialogButtonBox::rejected, this, &QDialog::reject);
-}
-
-OfflineLoginDialog::~OfflineLoginDialog()
-{
- delete ui;
-}
-
-// Stage 1: User interaction
-void OfflineLoginDialog::accept()
-{
- setUserInputsEnabled(false);
- ui->progressBar->setVisible(true);
-
- // Setup the login task and start it
- m_account = MinecraftAccount::createOffline(ui->userTextBox->text());
- m_loginTask = m_account->loginOffline();
- connect(m_loginTask.get(), &Task::failed, this, &OfflineLoginDialog::onTaskFailed);
- connect(m_loginTask.get(), &Task::succeeded, this, &OfflineLoginDialog::onTaskSucceeded);
- connect(m_loginTask.get(), &Task::status, this, &OfflineLoginDialog::onTaskStatus);
- connect(m_loginTask.get(), &Task::progress, this, &OfflineLoginDialog::onTaskProgress);
- m_loginTask->start();
-}
-
-void OfflineLoginDialog::setUserInputsEnabled(bool enable)
-{
- ui->userTextBox->setEnabled(enable);
- ui->buttonBox->setEnabled(enable);
-}
-
-// Enable the OK button only when the textbox contains something.
-void OfflineLoginDialog::on_userTextBox_textEdited(const QString &newText)
-{
- ui->buttonBox->button(QDialogButtonBox::Ok)
- ->setEnabled(!newText.isEmpty());
-}
-
-void OfflineLoginDialog::onTaskFailed(const QString &reason)
-{
- // Set message
- auto lines = reason.split('\n');
- QString processed;
- for(auto line: lines) {
- if(line.size()) {
- processed += "" + line + "
";
- }
- else {
- processed += "
";
- }
- }
- ui->label->setText(processed);
-
- // Re-enable user-interaction
- setUserInputsEnabled(true);
- ui->progressBar->setVisible(false);
-}
-
-void OfflineLoginDialog::onTaskSucceeded()
-{
- QDialog::accept();
-}
-
-void OfflineLoginDialog::onTaskStatus(const QString &status)
-{
- ui->label->setText(status);
-}
-
-void OfflineLoginDialog::onTaskProgress(qint64 current, qint64 total)
-{
- ui->progressBar->setMaximum(total);
- ui->progressBar->setValue(current);
-}
-
-// Public interface
-MinecraftAccountPtr OfflineLoginDialog::newAccount(QWidget *parent, QString msg)
-{
- OfflineLoginDialog dlg(parent);
- dlg.ui->label->setText(msg);
- if (dlg.exec() == QDialog::Accepted)
- {
- return dlg.m_account;
- }
- return 0;
-}
diff --git a/launcher/ui/dialogs/OfflineLoginDialog.h b/launcher/ui/dialogs/OfflineLoginDialog.h
deleted file mode 100644
index 5e608379..00000000
--- a/launcher/ui/dialogs/OfflineLoginDialog.h
+++ /dev/null
@@ -1,43 +0,0 @@
-#pragma once
-
-#include
-#include
-
-#include "minecraft/auth/MinecraftAccount.h"
-#include "tasks/Task.h"
-
-namespace Ui
-{
-class OfflineLoginDialog;
-}
-
-class OfflineLoginDialog : public QDialog
-{
- Q_OBJECT
-
-public:
- ~OfflineLoginDialog();
-
- static MinecraftAccountPtr newAccount(QWidget *parent, QString message);
-
-private:
- explicit OfflineLoginDialog(QWidget *parent = 0);
-
- void setUserInputsEnabled(bool enable);
-
-protected
-slots:
- void accept();
-
- void onTaskFailed(const QString &reason);
- void onTaskSucceeded();
- void onTaskStatus(const QString &status);
- void onTaskProgress(qint64 current, qint64 total);
-
- void on_userTextBox_textEdited(const QString &newText);
-
-private:
- Ui::OfflineLoginDialog *ui;
- MinecraftAccountPtr m_account;
- Task::Ptr m_loginTask;
-};
diff --git a/launcher/ui/dialogs/OfflineLoginDialog.ui b/launcher/ui/dialogs/OfflineLoginDialog.ui
deleted file mode 100644
index 4577d361..00000000
--- a/launcher/ui/dialogs/OfflineLoginDialog.ui
+++ /dev/null
@@ -1,67 +0,0 @@
-
-
- OfflineLoginDialog
-
-
-
- 0
- 0
- 500
- 250
-
-
-
-
- 0
- 0
-
-
-
- Add Account
-
-
- -
-
-
- Message label placeholder.
-
-
- Qt::RichText
-
-
- Qt::LinksAccessibleByKeyboard|Qt::LinksAccessibleByMouse|Qt::TextBrowserInteraction|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse
-
-
-
- -
-
-
- Username
-
-
-
- -
-
-
- 69
-
-
- false
-
-
-
- -
-
-
- Qt::Horizontal
-
-
- QDialogButtonBox::Cancel|QDialogButtonBox::Ok
-
-
-
-
-
-
-
-
diff --git a/launcher/ui/pages/global/AccountListPage.cpp b/launcher/ui/pages/global/AccountListPage.cpp
index ad88812a..b8da6c75 100644
--- a/launcher/ui/pages/global/AccountListPage.cpp
+++ b/launcher/ui/pages/global/AccountListPage.cpp
@@ -24,7 +24,6 @@
#include "net/NetJob.h"
#include "ui/dialogs/ProgressDialog.h"
-#include "ui/dialogs/OfflineLoginDialog.h"
#include "ui/dialogs/LoginDialog.h"
#include "ui/dialogs/MSALoginDialog.h"
#include "ui/dialogs/CustomMessageBox.h"
@@ -154,28 +153,6 @@ void AccountListPage::on_actionAddMicrosoft_triggered()
}
}
-void AccountListPage::on_actionAddOffline_triggered()
-{
- MinecraftAccountPtr account = OfflineLoginDialog::newAccount(
- this,
- tr("Please enter your desired username to add your offline account.
"
- "
"
- "It is required by Mojang that you own Minecraft BEFORE you may use offline mode.
"
- "The PolyMC developers denounce piracy and take NO LIABILITY WHATSOEVER for
"
- "any illegal activity that may occur in usage of the offline mode feature.
"
- "
"
- "By continuing you promise that you own a Minecraft account.")
- );
-
- if (account)
- {
- m_accounts->addAccount(account);
- if (m_accounts->count() == 1) {
- m_accounts->setDefaultAccount(account);
- }
- }
-}
-
void AccountListPage::on_actionRemove_triggered()
{
QModelIndexList selection = ui->listView->selectionModel()->selectedIndexes();
diff --git a/launcher/ui/pages/global/AccountListPage.h b/launcher/ui/pages/global/AccountListPage.h
index 841c3fd2..1c65e708 100644
--- a/launcher/ui/pages/global/AccountListPage.h
+++ b/launcher/ui/pages/global/AccountListPage.h
@@ -62,7 +62,6 @@ public:
public slots:
void on_actionAddMojang_triggered();
void on_actionAddMicrosoft_triggered();
- void on_actionAddOffline_triggered();
void on_actionRemove_triggered();
void on_actionRefresh_triggered();
void on_actionSetDefault_triggered();
diff --git a/launcher/ui/pages/global/AccountListPage.ui b/launcher/ui/pages/global/AccountListPage.ui
index d21a92e2..29738c02 100644
--- a/launcher/ui/pages/global/AccountListPage.ui
+++ b/launcher/ui/pages/global/AccountListPage.ui
@@ -54,7 +54,6 @@
-
@@ -104,11 +103,6 @@
Add Microsoft
-
-
- Add Offline
-
-
Refresh
--
cgit
From b50e58436975761fcb7b8886eb137330e5b6e29a Mon Sep 17 00:00:00 2001
From: Lenny McLennington
Date: Wed, 19 Jan 2022 07:44:29 +0000
Subject: PasteUpload task changed to use 0x0.st's protocol
- Modified PasteUpload task to upload the log file to 0x0.st and other
services with the same protocol.
- Modified Paste settings UI to allow the user to select a custom paste
URL, simplified the settings page code.
---
launcher/Application.cpp | 2 +-
launcher/net/PasteUpload.cpp | 82 +++++++++--------------------
launcher/net/PasteUpload.h | 22 ++------
launcher/ui/GuiUtil.cpp | 17 +-----
launcher/ui/pages/global/PastePage.cpp | 23 ++------
launcher/ui/pages/global/PastePage.h | 3 --
launcher/ui/pages/global/PastePage.ui | 17 +++---
launcher/ui/pages/instance/LogPage.ui | 2 +-
launcher/ui/pages/instance/OtherLogsPage.ui | 2 +-
9 files changed, 48 insertions(+), 122 deletions(-)
(limited to 'launcher/ui/pages')
diff --git a/launcher/Application.cpp b/launcher/Application.cpp
index 110b2e6b..a5b861d0 100644
--- a/launcher/Application.cpp
+++ b/launcher/Application.cpp
@@ -715,7 +715,7 @@ Application::Application(int &argc, char **argv) : QApplication(argc, argv)
m_settings->registerSetting("UpdateDialogGeometry", "");
// pastebin URL
- m_settings->registerSetting("PastebinURL", "0x0.st");
+ m_settings->registerSetting("PastebinURL", "https://0x0.st");
// Init page provider
{
diff --git a/launcher/net/PasteUpload.cpp b/launcher/net/PasteUpload.cpp
index 4b69b68a..6c5aa221 100644
--- a/launcher/net/PasteUpload.cpp
+++ b/launcher/net/PasteUpload.cpp
@@ -8,44 +8,34 @@
#include
#include
-PasteUpload::PasteUpload(QWidget *window, QString text, QString key) : m_window(window)
+PasteUpload::PasteUpload(QWidget *window, QString text, QString url) : m_window(window), m_uploadUrl(url), m_text(text.toUtf8())
{
- m_key = key;
- QByteArray temp;
- QJsonObject topLevelObj;
- QJsonObject sectionObject;
- sectionObject.insert("contents", text);
- QJsonArray sectionArray;
- sectionArray.append(sectionObject);
- topLevelObj.insert("description", "Log Upload");
- topLevelObj.insert("sections", sectionArray);
- QJsonDocument docOut;
- docOut.setObject(topLevelObj);
- m_jsonContent = docOut.toJson();
}
PasteUpload::~PasteUpload()
{
}
-bool PasteUpload::validateText()
-{
- return m_jsonContent.size() <= maxSize();
-}
-
void PasteUpload::executeTask()
{
- QNetworkRequest request(QUrl("https://api.paste.ee/v1/pastes"));
+ QNetworkRequest request{QUrl(m_uploadUrl)};
request.setHeader(QNetworkRequest::UserAgentHeader, BuildConfig.USER_AGENT_UNCACHED);
- request.setRawHeader("Content-Type", "application/json");
- request.setRawHeader("Content-Length", QByteArray::number(m_jsonContent.size()));
- request.setRawHeader("X-Auth-Token", m_key.toStdString().c_str());
+ QHttpMultiPart *multiPart = new QHttpMultiPart{QHttpMultiPart::FormDataType};
+
+ QHttpPart filePart;
+ filePart.setBody(m_text);
+ filePart.setHeader(QNetworkRequest::ContentTypeHeader, "text/plain");
+ filePart.setHeader(QNetworkRequest::ContentDispositionHeader, "form-data; name=\"file\"; filename=\"log.txt\"");
- QNetworkReply *rep = APPLICATION->network()->post(request, m_jsonContent);
+ multiPart->append(filePart);
+
+ QNetworkReply *rep = APPLICATION->network()->post(request, multiPart);
+ multiPart->setParent(rep);
m_reply = std::shared_ptr(rep);
- setStatus(tr("Uploading to paste.ee"));
+ setStatus(tr("Uploading to %1").arg(m_uploadUrl));
+
connect(rep, &QNetworkReply::uploadProgress, this, &Task::setProgress);
connect(rep, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(downloadError(QNetworkReply::NetworkError)));
connect(rep, SIGNAL(finished()), this, SLOT(downloadFinished()));
@@ -61,45 +51,23 @@ void PasteUpload::downloadError(QNetworkReply::NetworkError error)
void PasteUpload::downloadFinished()
{
QByteArray data = m_reply->readAll();
- // if the download succeeded
- if (m_reply->error() == QNetworkReply::NetworkError::NoError)
+ int statusCode = m_reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
+
+ if (m_reply->error() != QNetworkReply::NetworkError::NoError)
{
+ emitFailed(tr("Network error: %1").arg(m_reply->errorString()));
m_reply.reset();
- QJsonParseError jsonError;
- QJsonDocument doc = QJsonDocument::fromJson(data, &jsonError);
- if (jsonError.error != QJsonParseError::NoError)
- {
- emitFailed(jsonError.errorString());
- return;
- }
- if (!parseResult(doc))
- {
- emitFailed(tr("paste.ee returned an error. Please consult the logs for more information"));
- return;
- }
+ return;
}
- // else the download failed
- else
+ else if (statusCode != 200)
{
- emitFailed(QString("Network error: %1").arg(m_reply->errorString()));
+ QString reasonPhrase = m_reply->attribute(QNetworkRequest::HttpReasonPhraseAttribute).toString();
+ emitFailed(tr("Error: %1 returned unexpected status code %2 %3").arg(m_uploadUrl).arg(statusCode).arg(reasonPhrase));
+ qCritical() << m_uploadUrl << " returned unexpected status code " << statusCode << " with body: " << data;
m_reply.reset();
return;
}
- emitSucceeded();
-}
-bool PasteUpload::parseResult(QJsonDocument doc)
-{
- auto object = doc.object();
- auto status = object.value("success").toBool();
- if (!status)
- {
- qCritical() << "paste.ee reported error:" << QString(object.value("error").toString());
- return false;
- }
- m_pasteLink = object.value("link").toString();
- m_pasteID = object.value("id").toString();
- qDebug() << m_pasteLink;
- return true;
+ m_pasteLink = QString::fromUtf8(data);
+ emitSucceeded();
}
-
diff --git a/launcher/net/PasteUpload.h b/launcher/net/PasteUpload.h
index 5514e058..62b2dc36 100644
--- a/launcher/net/PasteUpload.h
+++ b/launcher/net/PasteUpload.h
@@ -8,37 +8,21 @@ class PasteUpload : public Task
{
Q_OBJECT
public:
- PasteUpload(QWidget *window, QString text, QString key = "public");
+ PasteUpload(QWidget *window, QString text, QString url);
virtual ~PasteUpload();
QString pasteLink()
{
return m_pasteLink;
}
- QString pasteID()
- {
- return m_pasteID;
- }
- int maxSize()
- {
- // 2MB for paste.ee - public
- if(m_key == "public")
- return 1024*1024*2;
- // 12MB for paste.ee - with actual key
- return 1024*1024*12;
- }
- bool validateText();
protected:
virtual void executeTask();
private:
- bool parseResult(QJsonDocument doc);
- QString m_error;
QWidget *m_window;
- QString m_pasteID;
QString m_pasteLink;
- QString m_key;
- QByteArray m_jsonContent;
+ QString m_uploadUrl;
+ QByteArray m_text;
std::shared_ptr m_reply;
public
slots:
diff --git a/launcher/ui/GuiUtil.cpp b/launcher/ui/GuiUtil.cpp
index efb1a4df..9eb658e2 100644
--- a/launcher/ui/GuiUtil.cpp
+++ b/launcher/ui/GuiUtil.cpp
@@ -16,21 +16,8 @@
QString GuiUtil::uploadPaste(const QString &text, QWidget *parentWidget)
{
ProgressDialog dialog(parentWidget);
- auto APIKeySetting = APPLICATION->settings()->get("PasteEEAPIKey").toString();
- if(APIKeySetting == "multimc")
- {
- APIKeySetting = BuildConfig.PASTE_EE_KEY;
- }
- std::unique_ptr paste(new PasteUpload(parentWidget, text, APIKeySetting));
-
- if (!paste->validateText())
- {
- CustomMessageBox::selectable(
- parentWidget, QObject::tr("Upload failed"),
- QObject::tr("The log file is too big. You'll have to upload it manually."),
- QMessageBox::Warning)->exec();
- return QString();
- }
+ auto pasteUrlSetting = APPLICATION->settings()->get("PastebinURL").toString();
+ std::unique_ptr paste(new PasteUpload(parentWidget, text, pasteUrlSetting));
dialog.execWithTask(paste.get());
if (!paste->wasSuccessful())
diff --git a/launcher/ui/pages/global/PastePage.cpp b/launcher/ui/pages/global/PastePage.cpp
index 495e9937..0965da77 100644
--- a/launcher/ui/pages/global/PastePage.cpp
+++ b/launcher/ui/pages/global/PastePage.cpp
@@ -20,6 +20,7 @@
#include
#include
#include
+#include
#include "settings/SettingsObject.h"
#include "tools/BaseProfiler.h"
@@ -31,7 +32,6 @@ PastePage::PastePage(QWidget *parent) :
{
ui->setupUi(this);
ui->tabWidget->tabBar()->hide();\
- connect(ui->customAPIkeyEdit, &QLineEdit::textEdited, this, &PastePage::textEdited);
loadSettings();
}
@@ -43,23 +43,15 @@ PastePage::~PastePage()
void PastePage::loadSettings()
{
auto s = APPLICATION->settings();
- QString pastebin = s->get("PastebinURL");
- int index = ui->urlChoices->findText(pastebin);
- ui->urlChoices->setCurrentIndex(index);
+ QString pastebinURL = s->get("PastebinURL").toString();
+ ui->urlChoices->setCurrentText(pastebinURL);
}
void PastePage::applySettings()
{
auto s = APPLICATION->settings();
-
- QString pasteKeyToUse;
- if (ui->customButton->isChecked())
- pasteKeyToUse = ui->customAPIkeyEdit->text();
- else
- {
- pasteKeyToUse = "multimc";
- }
- s->set("PasteEEAPIKey", pasteKeyToUse);
+ QString pastebinURL = ui->urlChoices->currentText();
+ s->set("PastebinURL", pastebinURL);
}
bool PastePage::apply()
@@ -67,8 +59,3 @@ bool PastePage::apply()
applySettings();
return true;
}
-
-void PastePage::textEdited(const QString& text)
-{
- ui->customButton->setChecked(true);
-}
diff --git a/launcher/ui/pages/global/PastePage.h b/launcher/ui/pages/global/PastePage.h
index 3930d4ec..d475dfd9 100644
--- a/launcher/ui/pages/global/PastePage.h
+++ b/launcher/ui/pages/global/PastePage.h
@@ -54,9 +54,6 @@ private:
void loadSettings();
void applySettings();
-private slots:
- void textEdited(const QString &text);
-
private:
Ui::PastePage *ui;
};
diff --git a/launcher/ui/pages/global/PastePage.ui b/launcher/ui/pages/global/PastePage.ui
index 784ea3f4..fe372540 100644
--- a/launcher/ui/pages/global/PastePage.ui
+++ b/launcher/ui/pages/global/PastePage.ui
@@ -36,7 +36,7 @@
-
- Pastebin Site
+ Pastebin URL
-
@@ -48,14 +48,20 @@
-
+
+ true
+
+
+ QComboBox::NoInsert
+
-
- 0x0.st
+ https://0x0.st
-
- paste.polymc.org
+ https://paste.polymc.org
@@ -63,7 +69,7 @@
-
- <html><head/><body><p>paste.polymc.org is a pastebin managed by PolyMC's lead maintainer. Something something trust</p></body></html>
+ <html><head/><body><p>Here you can choose from a predefined list, or input the URL of a different paste service, provided that it supports the same protocol as 0x0.st, that is POST a file to the URL and return a link in the response body.</p></body></html>
Qt::RichText
@@ -103,7 +109,4 @@
-
-
-
diff --git a/launcher/ui/pages/instance/LogPage.ui b/launcher/ui/pages/instance/LogPage.ui
index ccfc1551..31bb368c 100644
--- a/launcher/ui/pages/instance/LogPage.ui
+++ b/launcher/ui/pages/instance/LogPage.ui
@@ -100,7 +100,7 @@
-
- Upload the log to paste.ee - it will stay online for a month
+ Upload the log to the paste service configured in preferences
Upload
diff --git a/launcher/ui/pages/instance/OtherLogsPage.ui b/launcher/ui/pages/instance/OtherLogsPage.ui
index 56ff3b62..77f3e647 100644
--- a/launcher/ui/pages/instance/OtherLogsPage.ui
+++ b/launcher/ui/pages/instance/OtherLogsPage.ui
@@ -84,7 +84,7 @@
-
- Upload the log to paste.ee - it will stay online for a month
+ Upload the log to the paste service configured in preferences.
Upload
--
cgit
From 0eff21a4f1ee97e4b0a484c608eac9617897446d Mon Sep 17 00:00:00 2001
From: Lenny McLennington
Date: Wed, 26 Jan 2022 00:31:08 +0000
Subject: Validate Pastebin URL with regex
---
launcher/ui/pages/global/PastePage.cpp | 2 ++
launcher/ui/pages/global/PastePage.ui | 19 +++++++++++++++++--
2 files changed, 19 insertions(+), 2 deletions(-)
(limited to 'launcher/ui/pages')
diff --git a/launcher/ui/pages/global/PastePage.cpp b/launcher/ui/pages/global/PastePage.cpp
index 0965da77..7c69e1a4 100644
--- a/launcher/ui/pages/global/PastePage.cpp
+++ b/launcher/ui/pages/global/PastePage.cpp
@@ -30,7 +30,9 @@ PastePage::PastePage(QWidget *parent) :
QWidget(parent),
ui(new Ui::PastePage)
{
+ static QRegularExpression validUrlRegExp("https?://.+");
ui->setupUi(this);
+ ui->urlChoices->setValidator(new QRegularExpressionValidator(validUrlRegExp, ui->urlChoices));
ui->tabWidget->tabBar()->hide();\
loadSettings();
}
diff --git a/launcher/ui/pages/global/PastePage.ui b/launcher/ui/pages/global/PastePage.ui
index fe372540..2d13a765 100644
--- a/launcher/ui/pages/global/PastePage.ui
+++ b/launcher/ui/pages/global/PastePage.ui
@@ -38,7 +38,7 @@
Pastebin URL
-
+
-
@@ -46,6 +46,21 @@
+ -
+
+
+
+ 10
+
+
+
+ <html><head/><body><p>Note: only input that starts with <span style=" font-weight:600;">http://</span> or <span style=" font-weight:600;">https://</span> will be accepted.</p></body></html>
+
+
+ false
+
+
+
-
@@ -69,7 +84,7 @@
-
- <html><head/><body><p>Here you can choose from a predefined list, or input the URL of a different paste service, provided that it supports the same protocol as 0x0.st, that is POST a file to the URL and return a link in the response body.</p></body></html>
+ <html><head/><body><p>Here you can choose from a predefined list of paste services, or input the URL of a different paste service of your choice, provided it supports the same protocol as 0x0.st, that is POST a file parameter to the URL and return a link in the response body.</p></body></html>
Qt::RichText
--
cgit
From 5ac528f141f2c55fb09c6d59c5fd71d5f83c46ce Mon Sep 17 00:00:00 2001
From: Joshua Goins
Date: Thu, 27 Jan 2022 18:37:57 -0500
Subject: Fix icons changing when exiting the settings window
---
launcher/ui/pages/global/LauncherPage.cpp | 43 +++++++++++++++----------------
launcher/ui/pages/global/LauncherPage.ui | 10 +++----
2 files changed, 26 insertions(+), 27 deletions(-)
(limited to 'launcher/ui/pages')
diff --git a/launcher/ui/pages/global/LauncherPage.cpp b/launcher/ui/pages/global/LauncherPage.cpp
index 81ecd58f..0ffe8050 100644
--- a/launcher/ui/pages/global/LauncherPage.cpp
+++ b/launcher/ui/pages/global/LauncherPage.cpp
@@ -246,33 +246,32 @@ void LauncherPage::applySettings()
//FIXME: make generic
switch (ui->themeComboBox->currentIndex())
{
- case 1:
+ case 0:
s->set("IconTheme", "pe_dark");
break;
- case 2:
+ case 1:
s->set("IconTheme", "pe_light");
break;
- case 3:
+ case 2:
s->set("IconTheme", "pe_blue");
break;
- case 4:
- s->set("IconTheme", "multimc");
+ case 3:
+ s->set("IconTheme", "pe_colored");
break;
- case 5:
+ case 4:
s->set("IconTheme", "OSX");
break;
- case 6:
+ case 5:
s->set("IconTheme", "iOS");
break;
- case 7:
+ case 6:
s->set("IconTheme", "flat");
break;
- case 8:
+ case 7:
s->set("IconTheme", "custom");
break;
- case 0:
- default:
- s->set("IconTheme", "pe_colored");
+ case 8:
+ s->set("IconTheme", "multimc");
break;
}
@@ -327,29 +326,33 @@ void LauncherPage::loadSettings()
auto theme = s->get("IconTheme").toString();
if (theme == "pe_dark")
{
- ui->themeComboBox->setCurrentIndex(1);
+ ui->themeComboBox->setCurrentIndex(0);
}
else if (theme == "pe_light")
{
- ui->themeComboBox->setCurrentIndex(2);
+ ui->themeComboBox->setCurrentIndex(1);
}
else if (theme == "pe_blue")
{
- ui->themeComboBox->setCurrentIndex(3);
+ ui->themeComboBox->setCurrentIndex(2);
}
else if (theme == "pe_colored")
{
- ui->themeComboBox->setCurrentIndex(4);
+ ui->themeComboBox->setCurrentIndex(3);
}
else if (theme == "OSX")
{
- ui->themeComboBox->setCurrentIndex(5);
+ ui->themeComboBox->setCurrentIndex(4);
}
else if (theme == "iOS")
{
- ui->themeComboBox->setCurrentIndex(6);
+ ui->themeComboBox->setCurrentIndex(5);
}
else if (theme == "flat")
+ {
+ ui->themeComboBox->setCurrentIndex(6);
+ }
+ else if (theme == "multimc")
{
ui->themeComboBox->setCurrentIndex(7);
}
@@ -357,10 +360,6 @@ void LauncherPage::loadSettings()
{
ui->themeComboBox->setCurrentIndex(8);
}
- else
- {
- ui->themeComboBox->setCurrentIndex(0);
- }
{
auto currentTheme = s->get("ApplicationTheme").toString();
diff --git a/launcher/ui/pages/global/LauncherPage.ui b/launcher/ui/pages/global/LauncherPage.ui
index 2b3729bc..47fed873 100644
--- a/launcher/ui/pages/global/LauncherPage.ui
+++ b/launcher/ui/pages/global/LauncherPage.ui
@@ -262,11 +262,6 @@
Qt::StrongFocus
-
-
-
- Default
-
-
-
Simple (Dark Icons)
@@ -307,6 +302,11 @@
Custom
+ -
+
+ MultiMC
+
+
-
--
cgit