Mac: attempt 2
- create .command files instead of .sh - fix shortcuts not working if path to Prism Launcher contains spaces - fix path to executable in shortcutss - add check for running from extracted folder (prevents creating shortcuts) Signed-off-by: ADudeCalledLeo <7997354+Leo40Git@users.noreply.github.com>
This commit is contained in:
parent
5322155b19
commit
69bbb29328
@ -343,7 +343,7 @@ QString getDesktopDir()
|
||||
bool createShortcut(QString destination, QString target, QStringList args, QString name, QString icon)
|
||||
{
|
||||
#if defined(Q_OS_MACOS)
|
||||
destination += ".sh";
|
||||
destination += ".command";
|
||||
|
||||
QFile f(destination);
|
||||
f.open(QIODevice::WriteOnly | QIODevice::Text);
|
||||
@ -355,8 +355,9 @@ bool createShortcut(QString destination, QString target, QStringList args, QStri
|
||||
|
||||
stream << "#!/bin/bash"
|
||||
<< "\n";
|
||||
stream << target
|
||||
<< " "
|
||||
stream << "\""
|
||||
<< target
|
||||
<< "\" "
|
||||
<< argstring
|
||||
<< "\n";
|
||||
|
||||
|
@ -2100,13 +2100,14 @@ void MainWindow::on_actionCreateInstanceShortcut_triggered()
|
||||
}
|
||||
|
||||
#if defined(Q_OS_MACOS)
|
||||
// handle macOS bundle weirdness
|
||||
QFileInfo appFileInfo(QApplication::applicationFilePath());
|
||||
QString appName = appFileInfo.baseName();
|
||||
QString exeName = FS::PathCombine(appFileInfo.filePath(), "Contents/MacOS/" + appName);
|
||||
QString appPath = QApplication::applicationFilePath();
|
||||
if (appPath.startsWith("/private/var")) {
|
||||
QMessageBox::critical(this, tr("Create instance shortcut"), tr("The launcher is in the folder it was extracted from, therefore it cannot create shortcuts."));
|
||||
return;
|
||||
}
|
||||
|
||||
if (FS::createShortcut(FS::PathCombine(desktopPath, m_selectedInstance->name()),
|
||||
exeName, { "--launch", m_selectedInstance->id() }, m_selectedInstance->name(), "")) {
|
||||
appPath, { "--launch", m_selectedInstance->id() }, m_selectedInstance->name(), "")) {
|
||||
QMessageBox::information(this, tr("Create instance shortcut"), tr("Created a shortcut to this instance on your desktop!"));
|
||||
}
|
||||
else
|
||||
|
Loading…
Reference in New Issue
Block a user