diff options
| author | Alexander Potashev <[email protected]> | 2019-07-15 02:21:35 +0300 |
|---|---|---|
| committer | Alexander Potashev <[email protected]> | 2019-07-15 23:51:47 +0300 |
| commit | a001c392296586ae7295563936c8642a60aa4813 (patch) | |
| tree | e84a8fc1e37308b0dcdd1e2b428269a0df5286cc /src | |
| parent | 981e96efe61d0ac0ced4b11c9d31fa43ab3e9f8d (diff) | |
servicemenuinstaller: Use QMimeDatabase instead of running xdg-mime
Test Plan: ./test_run.rb still passes all tests.
Reviewers: elvisangelaccio, sitter, ngraham
Reviewed By: elvisangelaccio, ngraham
Subscribers: kfm-devel
Tags: #dolphin
Differential Revision: https://phabricator.kde.org/D22465
Diffstat (limited to 'src')
| -rw-r--r-- | src/settings/services/servicemenuinstaller/servicemenuinstaller.cpp | 38 |
1 files changed, 2 insertions, 36 deletions
diff --git a/src/settings/services/servicemenuinstaller/servicemenuinstaller.cpp b/src/settings/services/servicemenuinstaller/servicemenuinstaller.cpp index 9c614a8d3..6969647aa 100644 --- a/src/settings/services/servicemenuinstaller/servicemenuinstaller.cpp +++ b/src/settings/services/servicemenuinstaller/servicemenuinstaller.cpp @@ -24,6 +24,7 @@ #include <QDir> #include <QDirIterator> #include <QCommandLineParser> +#include <QMimeDatabase> #include <KLocalizedString> @@ -42,41 +43,6 @@ Q_NORETURN void fail(const QString &str) exit(1); } -bool evaluateShell(const QString &program, const QStringList &arguments, QString &output, QString &errorText) -{ - QProcess process; - process.start(program, arguments, QIODevice::ReadOnly); - if (!process.waitForStarted()) { - fail(i18n("Failed to run process: %1 %2", program, arguments.join(" "))); - } - - if (!process.waitForFinished()) { - fail(i18n("Process did not finish in reasonable time: %1 %2", program, arguments.join(" "))); - } - - const auto stdoutResult = QString::fromUtf8(process.readAllStandardOutput()).trimmed(); - const auto stderrResult = QString::fromUtf8(process.readAllStandardError()).trimmed(); - - if (process.exitStatus() == QProcess::NormalExit && process.exitCode() == 0) { - output = stdoutResult; - return true; - } else { - errorText = stderrResult + stdoutResult; - return false; - } -} - -QString mimeType(const QString &path) -{ - QString result; - QString errorText; - if (evaluateShell("xdg-mime", QStringList{"query", "filetype", path}, result, errorText)) { - return result; - } else { - fail(i18n("Failed to run xdg-mime %1: %2", path, errorText)); - } -} - QString getServiceMenusDir() { const QString dataLocation = QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation); @@ -114,7 +80,7 @@ void runUncompress(const QString &inputPath, const QString &outputPath) { "multipart/x-zip"}, UncompressCommand{"unzip", QStringList{}, QStringList{"-d"}}}); - const auto mime = mimeType(inputPath); + const auto mime = QMimeDatabase().mimeTypeForFile(inputPath).name(); UncompressCommand command{}; for (const auto &pair : mimeTypeToCommand) { |
