summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt2
-rw-r--r--application/MainWindow.h4
-rw-r--r--application/MultiMC.cpp50
-rw-r--r--application/MultiMC.h2
-rw-r--r--changelog.md58
5 files changed, 102 insertions, 14 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 8f1032c0..b3b451e1 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -46,7 +46,7 @@ set(MultiMC_NEWS_RSS_URL "https://multimc.org/rss.xml" CACHE STRING "URL to fetc
######## Set version numbers ########
set(MultiMC_VERSION_MAJOR 0)
set(MultiMC_VERSION_MINOR 6)
-set(MultiMC_VERSION_HOTFIX 7)
+set(MultiMC_VERSION_HOTFIX 9)
# Build number
set(MultiMC_VERSION_BUILD -1 CACHE STRING "Build number. -1 for no build number.")
diff --git a/application/MainWindow.h b/application/MainWindow.h
index a415b5e8..00b8e043 100644
--- a/application/MainWindow.h
+++ b/application/MainWindow.h
@@ -57,6 +57,8 @@ public:
void checkInstancePathForProblems();
void updatesAllowedChanged(bool allowed);
+
+ void droppedURLs(QList<QUrl> urls);
signals:
void isClosing();
@@ -180,8 +182,6 @@ private slots:
*/
void downloadUpdates(GoUpdate::Status status);
- void droppedURLs(QList<QUrl> urls);
-
void konamiTriggered();
void globalSettingsClosed();
diff --git a/application/MultiMC.cpp b/application/MultiMC.cpp
index c4e4392d..393ea046 100644
--- a/application/MultiMC.cpp
+++ b/application/MultiMC.cpp
@@ -34,6 +34,7 @@
#include <QNetworkAccessManager>
#include <QTranslator>
#include <QLibraryInfo>
+#include <QList>
#include <QStringList>
#include <QDebug>
#include <QStyleFactory>
@@ -173,6 +174,10 @@ MultiMC::MultiMC(int &argc, char **argv) : QApplication(argc, argv)
// --alive
parser.addSwitch("alive");
parser.addDocumentation("alive", "Write a small '" + liveCheckFile + "' file after MultiMC starts");
+ // --import
+ parser.addOption("import");
+ parser.addShortOpt("import", 'I');
+ parser.addDocumentation("import", "Import instance from specified zip (local path or URL)");
// parse the arguments
try
@@ -207,6 +212,7 @@ MultiMC::MultiMC(int &argc, char **argv) : QApplication(argc, argv)
}
m_instanceIdToLaunch = args["launch"].toString();
m_liveCheck = args["alive"].toBool();
+ m_zipToImport = args["import"].toUrl();
QString origcwdPath = QDir::currentPath();
QString binPath = applicationDirPath();
@@ -278,13 +284,20 @@ MultiMC::MultiMC(int &argc, char **argv) : QApplication(argc, argv)
connect(m_peerInstance, &LocalPeer::messageReceived, this, &MultiMC::messageReceived);
if(m_peerInstance->isClient())
{
+ int timeout = 2000;
+
if(m_instanceIdToLaunch.isEmpty())
{
- m_peerInstance->sendMessage("activate", 2000);
+ m_peerInstance->sendMessage("activate", timeout);
+
+ if(!m_zipToImport.isEmpty())
+ {
+ m_peerInstance->sendMessage("import " + m_zipToImport.toString(), timeout);
+ }
}
else
{
- m_peerInstance->sendMessage(m_instanceIdToLaunch, 2000);
+ m_peerInstance->sendMessage("launch " + m_instanceIdToLaunch, timeout);
}
m_status = MultiMC::Succeeded;
return;
@@ -812,6 +825,11 @@ void MultiMC::performMainStartupAction()
showMainWindow(false);
qDebug() << "<> Main window shown.";
}
+ if(!m_zipToImport.isEmpty())
+ {
+ qDebug() << "<> Importing instance from zip:" << m_zipToImport;
+ m_mainWindow->droppedURLs({ m_zipToImport });
+ }
}
void MultiMC::showFatalErrorMessage(const QString& title, const QString& content)
@@ -848,18 +866,40 @@ void MultiMC::messageReceived(const QString& message)
qDebug() << "Received message" << message << "while still initializing. It will be ignored.";
return;
}
- if(message == "activate")
+
+ QStringList args = message.split(' ');
+ QString command = args.takeFirst();
+
+ if(command == "activate")
{
showMainWindow();
}
- else
+ else if(command == "import")
+ {
+ if(args.isEmpty())
+ {
+ qWarning() << "Received" << command << "message without a zip path/URL.";
+ return;
+ }
+ m_mainWindow->droppedURLs({ QUrl(args.takeFirst()) });
+ }
+ else if(command == "launch")
{
- auto inst = instances()->getInstanceById(message);
+ if(args.isEmpty())
+ {
+ qWarning() << "Received" << command << "message without an instance ID.";
+ return;
+ }
+ auto inst = instances()->getInstanceById(args.takeFirst());
if(inst)
{
launch(inst, true, nullptr);
}
}
+ else
+ {
+ qWarning() << "Received invalid message" << message;
+ }
}
void MultiMC::analyticsSettingChanged(const Setting&, QVariant value)
diff --git a/application/MultiMC.h b/application/MultiMC.h
index d7c727e0..e6588a14 100644
--- a/application/MultiMC.h
+++ b/application/MultiMC.h
@@ -6,6 +6,7 @@
#include <QFlag>
#include <QIcon>
#include <QDateTime>
+#include <QUrl>
#include <updater/GoUpdate.h>
#include <BaseInstance.h>
@@ -221,5 +222,6 @@ private:
public:
QString m_instanceIdToLaunch;
bool m_liveCheck = false;
+ QUrl m_zipToImport;
std::unique_ptr<QFile> logFile;
};
diff --git a/changelog.md b/changelog.md
index 544c7abf..ef7c8dc6 100644
--- a/changelog.md
+++ b/changelog.md
@@ -1,4 +1,52 @@
-# MultiMC 0.6.7
+# MultiMC 0.6.8
+
+This is mostly about removal of the 'curse URL' related features, because they were of low quality and generally unreliable.
+
+There are some bug fixes included.
+
+MultiMC also migrated to a new continuous deployment system, which makes everything that much smoother.
+
+### New or changed features
+
+- GH-852: Instance group expansion status now saves/loads as expected.
+
+- The bees have invaded the launcher. We now have a bee icon.
+
+- Translations have been overhauled, yet again...
+
+ - We now have a [crowdin site](https://translate.multimc.org/) for all the translation work.
+
+ - Translations are made based on the development version, and for the development version.
+
+ - Many strings have been tweaked to make translating the application easier.
+
+ - When selecting languages, European Portuguese is now displaying properly.
+
+- Accessibility has been further improved - the main window reads as `MultiMC`, not a long string of nonsensical version numbers, when announced by a screen reader.
+
+- Removed the unimplemented Technic page from instance creation dialog.
+
+- GH-2859: Broken twitch URL import method was removed.
+
+- GH-2819: Filter bar in mod lists now also works with descriptions and author lists.
+
+- GH-2832: Version page now has buttons for opening the Minecraft and internal libraries folders of the instance.
+
+- GH-2769: When copying an instance, there's now an option to keep or remove the total play time from the copy.
+
+### Bugfixes
+
+- GH-2880: Clicking the service status indicators now opens a valid site again, instead of going nowhere.
+
+- GH-2853: When collapsing groups in instance view, the action no longer becomes 'sticky' and doesn't apply to items clicked afterwards.
+
+- GH-2787: "Download All" button works again.
+
+- When a component is customized, the launcher will not try to update it in an infinite loop when something else requires a different version.
+
+# Previous releases
+
+## MultiMC 0.6.7
The previous release introduced some extra buttons that made the instance window way too big for some displays. This release is aimed at fixing that, along with other UI and performance improvements.
@@ -47,8 +95,6 @@ There are some accessibility fixes thrown in too.
Sorting cascades from 'Enabled' to 'Name' and then 'Version'. This means that if you sort 'Enabled', the enabled and disabled mods are still sorted
by name and mods with the same name will be also sorted by version.
-# Previous releases
-
## MultiMC 0.6.6
This release is mostly the smaller things that have accumulated over time, along with a big change in linux packaging.
@@ -70,7 +116,7 @@ MultiMC on linux is built with Qt 5.4 and older versions of Qt will not work.
This should be a massive improvement to system integration on linux and resolves GH-1784, GH-2605, GH-1979, GH-2271, GH-1992, GH-1816 and their many duplicates.
-#### New or changed features
+### New or changed features
- GH-2487: No is now the default button when deleting instances.
@@ -100,7 +146,7 @@ This should be a massive improvement to system integration on linux and resolves
You can now drag the purple download buttons from CurseForge into MultiMC and get a modpack out of it. Much easier!
-#### Bugfixes
+### Bugfixes
- Translation folder is now created sooner, making first launch translation fetch work again.
@@ -134,7 +180,7 @@ This should be a massive improvement to system integration on linux and resolves
Finalizing the translation workflow improvements and adding fixes for sounds missing in old game versions.
-#### New or changed features
+### New or changed features
- UI for the language settings has been unified across the application