#include <KLocalizedString>
#include <KShell>
-#include "../../../config-packagekit.h"
+#include "../../../config-dolphin.h"
Q_GLOBAL_STATIC_WITH_ARGS(QStringList, binaryPackages, ({QLatin1String("application/vnd.debian.binary-package"),
QLatin1String("application/x-rpm"),
Uninstall
};
-#ifdef HAVE_PACKAGEKIT
+#if HAVE_PACKAGEKIT
#include <PackageKit/Daemon>
#include <PackageKit/Details>
#include <PackageKit/Transaction>
QString getServiceMenusDir()
{
const QString dataLocation = QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation);
- return QDir(dataLocation).absoluteFilePath("kservices5/ServiceMenus");
+ return QDir(dataLocation).absoluteFilePath("kio/servicemenus");
}
-#ifdef HAVE_PACKAGEKIT
+#if HAVE_PACKAGEKIT
void packageKitInstall(const QString &fileName)
{
PackageKit::Transaction *transaction = PackageKit::Daemon::installFile(fileName, PackageKit::Transaction::TransactionFlagNone);
Q_NORETURN void packageKit(PackageOperation operation, const QString &fileName)
{
-#ifdef HAVE_PACKAGEKIT
+#if HAVE_PACKAGEKIT
QFileInfo fileInfo(fileName);
if (!fileInfo.exists()) {
fail(i18n("The file does not exist!"));
{
QDirIterator it(dir, QStringList{basename}, QDir::Files, QDirIterator::Subdirectories);
while (it.hasNext()) {
- return QFileInfo(it.next()).canonicalFilePath();
+ return QFileInfo(it.next()).absoluteFilePath();
}
return QString();
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);
// If "install-it" is missing, try "install"
QString installerPath;
- const QStringList basenames2 = {"installKDE4.sh", "installKDE4", "install.sh", "install"};
+ const QStringList basenames2 = {"installKDE4.sh", "installKDE4", "install.sh", "install*.sh"};
for (const auto &basename : basenames2) {
const auto path = findRecursive(dir, basename);
if (!path.isEmpty()) {
// Try "deinstall" first
QString deinstallPath;
- const QStringList basenames1 = {"uninstall.sh", "uninstal", "deinstall.sh", "deinstall"};
+ const QStringList basenames1 = {"uninstall.sh", "uninstall", "deinstall.sh", "deinstall"};
for (const auto &basename : basenames1) {
const auto path = findRecursive(dir, basename);
if (!path.isEmpty()) {