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
QString getServiceMenusDir()
{
const QString dataLocation = QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation);
- return QDir(dataLocation).absoluteFilePath("kservices5/ServiceMenus");
+ return QDir(dataLocation).absoluteFilePath("kio/servicemenus");
}
#ifdef HAVE_PACKAGEKIT
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);