fix: fix creating instance shortcuts in flatpak
Signed-off-by: leo78913 <leo3758@riseup.net>
This commit is contained in:
parent
5ae044db93
commit
37ad1b40d8
@ -372,8 +372,6 @@ bool createShortcut(QString destination, QString target, QStringList args, QStri
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
#elif defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD) || defined(Q_OS_OPENBSD)
|
#elif defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD) || defined(Q_OS_OPENBSD)
|
||||||
destination += ".desktop";
|
|
||||||
|
|
||||||
QFile f(destination);
|
QFile f(destination);
|
||||||
f.open(QIODevice::WriteOnly | QIODevice::Text);
|
f.open(QIODevice::WriteOnly | QIODevice::Text);
|
||||||
QTextStream stream(&f);
|
QTextStream stream(&f);
|
||||||
|
@ -2270,9 +2270,24 @@ void MainWindow::on_actionCreateInstanceShortcut_triggered()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (FS::createShortcut(FS::PathCombine(desktopPath, m_selectedInstance->name()),
|
QString desktopFilePath = FS::PathCombine(desktopPath, m_selectedInstance->name() + ".desktop");
|
||||||
appPath, { "--launch", m_selectedInstance->id() },
|
QStringList args;
|
||||||
m_selectedInstance->name(), iconPath)) {
|
if (DesktopServices::isFlatpak()) {
|
||||||
|
QFileDialog fileDialog;
|
||||||
|
// workaround to make sure the portal file dialog opens in the desktop directory
|
||||||
|
fileDialog.setDirectoryUrl(desktopPath);
|
||||||
|
desktopFilePath = fileDialog.getSaveFileName(
|
||||||
|
this, tr("Create Shortcut"), desktopFilePath,
|
||||||
|
tr("Desktop Entries (*.desktop)"));
|
||||||
|
if (desktopFilePath.isEmpty())
|
||||||
|
return; // file dialog canceled by user
|
||||||
|
appPath = "flatpak";
|
||||||
|
QString flatpakAppId = BuildConfig.LAUNCHER_DESKTOPFILENAME;
|
||||||
|
flatpakAppId.remove(".desktop");
|
||||||
|
args.append({ "run", flatpakAppId });
|
||||||
|
}
|
||||||
|
args.append({ "--launch", m_selectedInstance->id() });
|
||||||
|
if (FS::createShortcut(desktopFilePath, appPath, args, m_selectedInstance->name(), iconPath)) {
|
||||||
QMessageBox::information(this, tr("Create instance shortcut"), tr("Created a shortcut to this instance on your desktop!"));
|
QMessageBox::information(this, tr("Create instance shortcut"), tr("Created a shortcut to this instance on your desktop!"));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
Loading…
Reference in New Issue
Block a user