Commit 0c38a27c authored by Alexander Lohnau's avatar Alexander Lohnau 💬
Browse files

Install servicemenus in new install location

Since KIO 5.85, this new file location is preferred over the
KServiceTypeTrader results.

With this change, single desktop files from the KDE store are installed
in the correct location. If however a custom install script is used,
developers need to adjust their scripts.

Because the "kio/servicemenus" locations is different than the one
KAuthorized allows by default, we have to mark the file as executable.

Task: https://phabricator.kde.org/T14543
parent 0e15ff7f
Pipeline #157979 passed with stage
in 2 minutes and 3 seconds
......@@ -50,7 +50,7 @@ Q_NORETURN void fail(const QString &str)
QString getServiceMenusDir()
{
const QString dataLocation = QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation);
return QDir(dataLocation).absoluteFilePath("kservices5/ServiceMenus");
return QDir(dataLocation).absoluteFilePath("kio/servicemenus");
}
#ifdef HAVE_PACKAGEKIT
......@@ -300,6 +300,8 @@ bool cmdInstall(const QString &archive, QString &errorText)
errorText = i18n("Failed to copy .desktop file %1 to %2: %3", archive, dest, source.errorString());
return false;
}
QFile destFile(dest);
destFile.setPermissions(destFile.permissions() | QFile::ExeOwner);
} else {
if (binaryPackages->contains(QMimeDatabase().mimeTypeForFile(archive).name())) {
packageKit(PackageOperation::Install, archive);
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment