Commit 514d9c8f authored by Alexander Lohnau's avatar Alexander Lohnau 💬
Browse files

Dolphin Services: Launch Deb/Rpm archives with QDesktopServices

When you are inside the services store and you choose to install a deb/rpm package
they open in the default application (mostlikely a package installer utility like discover).

PS: I have written some ideas/questions, maybe you can comment on them :-) ?

Test Plan:
Tests still pass, try out what was described in the summary.
A product which has a deb/rpm package is for example: `Jetbrains Dolphin Plugin`

Reviewers: #dolphin, elvisangelaccio, ngraham, aspotashev

Subscribers: kfm-devel

Tags: #dolphin

Differential Revision:
parent 35b4c6d4
......@@ -4,6 +4,7 @@ add_definitions(-DTRANSLATION_DOMAIN=\"dolphin_servicemenuinstaller\")
add_executable(servicemenuinstaller servicemenuinstaller.cpp)
target_link_libraries(servicemenuinstaller PRIVATE
install(TARGETS servicemenuinstaller ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
......@@ -25,6 +25,9 @@
#include <QDirIterator>
#include <QCommandLineParser>
#include <QMimeDatabase>
#include <QUrl>
#include <QDesktopServices>
#include <QGuiApplication>
#include <KLocalizedString>
......@@ -201,6 +204,10 @@ bool cmdInstall(const QString &archive, QString &errorText)
return false;
} else {
const QStringList binaryPackages = {"application/vnd.debian.binary-package", "application/x-rpm"};
if (binaryPackages.contains(QMimeDatabase().mimeTypeForFile(archive).name())) {
return QDesktopServices::openUrl(QUrl(archive));
const QString dir = generateDirPath(archive);
if (QFile::exists(dir)) {
if (!QDir(dir).removeRecursively()) {
......@@ -318,7 +325,7 @@ bool cmdUninstall(const QString &archive, QString &errorText)
int main(int argc, char *argv[])
QCoreApplication app(argc, argv);
QGuiApplication app(argc, argv);
QCommandLineParser parser;
parser.addPositionalArgument(QStringLiteral("command"), i18nc("@info:shell", "Command to execute: install or uninstall."));
Markdown is supported
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