feat: add --import command-line option
When specified, opens the "Import from zip" dialog as soon as the main window is shown, with the URL field prefilled with the argument given to the option. Closes #2998
This commit is contained in:
@@ -34,6 +34,7 @@
|
||||
#include <QNetworkAccessManager>
|
||||
#include <QTranslator>
|
||||
#include <QLibraryInfo>
|
||||
#include <QList>
|
||||
#include <QStringList>
|
||||
#include <QDebug>
|
||||
#include <QStyleFactory>
|
||||
@@ -174,6 +175,10 @@ MultiMC::MultiMC(int &argc, char **argv) : QApplication(argc, argv)
|
||||
parser.addSwitch("alive");
|
||||
parser.addDocumentation("alive", "Write a small '" + liveCheckFile + "' file after MultiMC starts");
|
||||
|
||||
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();
|
||||
@@ -812,6 +818,12 @@ void MultiMC::performMainStartupAction()
|
||||
showMainWindow(false);
|
||||
qDebug() << "<> Main window shown.";
|
||||
}
|
||||
|
||||
if (!m_zipToImport.isEmpty()) {
|
||||
qDebug() << "<> Importing instance from zip:" << m_zipToImport.toString();
|
||||
QList<QUrl> urls = { m_zipToImport };
|
||||
m_mainWindow->droppedURLs(urls);
|
||||
}
|
||||
}
|
||||
|
||||
void MultiMC::showFatalErrorMessage(const QString& title, const QString& content)
|
||||
|
Reference in New Issue
Block a user