diff --git a/src/core/mpris2.cpp b/src/core/mpris2.cpp index 91c81638..48eae793 100644 --- a/src/core/mpris2.cpp +++ b/src/core/mpris2.cpp @@ -131,29 +131,28 @@ Mpris2::Mpris2(Application *app, QObject *parent) app_name_[0] = app_name_[0].toUpper(); - if (!QGuiApplication::desktopFileName().isEmpty()) { - desktop_files_ << QGuiApplication::desktopFileName(); + QStringList data_dirs = QString(qgetenv("XDG_DATA_DIRS")).split(":"); + + if (!data_dirs.contains("/usr/local/share")) { + data_dirs.append("/usr/local/share"); } - QStringList domain_split = QCoreApplication::organizationDomain().split("."); - std::reverse(domain_split.begin(), domain_split.end()); - desktop_files_ << QStringList() << domain_split.join(".") + "." + QCoreApplication::applicationName().toLower(); - desktop_files_ << QCoreApplication::applicationName().toLower(); - desktop_file_ = desktop_files_.first(); + if (!data_dirs.contains("/usr/share")) { + data_dirs.append("/usr/share"); + } - data_dirs_ = QString(qgetenv("XDG_DATA_DIRS")).split(":"); - data_dirs_.append("/usr/local/share"); - data_dirs_.append("/usr/share"); - - for (const QString &directory : data_dirs_) { - for (const QString &desktop_file : desktop_files_) { - QString path = QString("%1/applications/%2.desktop").arg(directory, desktop_file); - if (QFile::exists(path)) { - desktop_file_ = desktop_file; - } + for (const QString &data_dir : data_dirs) { + const QString desktopfilepath = QString("%1/applications/%2.desktop").arg(data_dir, QGuiApplication::desktopFileName()); + if (QFile::exists(desktopfilepath)) { + desktopfilepath_ = desktopfilepath; + break; } } + if (desktopfilepath_.isEmpty()) { + desktopfilepath_ = QGuiApplication::desktopFileName() + ".desktop"; + } + } // when PlaylistManager gets it ready, we connect PlaylistSequence with this @@ -237,19 +236,11 @@ QString Mpris2::Identity() const { return app_name_; } QString Mpris2::DesktopEntryAbsolutePath() const { - for (const QString &directory : data_dirs_) { - for (const QString &desktop_file : desktop_files_) { - QString path = QString("%1/applications/%2.desktop").arg(directory, desktop_file); - if (QFile::exists(path)) { - return path; - } - } - } - return QString(); + return desktopfilepath_; } -QString Mpris2::DesktopEntry() const { return desktop_file_; } +QString Mpris2::DesktopEntry() const { return QGuiApplication::desktopFileName() + ".desktop"; } QStringList Mpris2::SupportedUriSchemes() const { diff --git a/src/core/mpris2.h b/src/core/mpris2.h index 416c3d87..6ceaa490 100644 --- a/src/core/mpris2.h +++ b/src/core/mpris2.h @@ -239,9 +239,7 @@ class Mpris2 : public QObject { Application *app_; QString app_name_; - QStringList data_dirs_; - QStringList desktop_files_; - QString desktop_file_; + QString desktopfilepath_; QVariantMap last_metadata_; };