Mpris2: Always use QGuiApplication::desktopFileName

This commit is contained in:
Jonas Kvinge 2023-08-02 15:27:24 +02:00
parent f3ddba3edc
commit 8b08d1d599
2 changed files with 19 additions and 30 deletions

View File

@ -131,27 +131,26 @@ Mpris2::Mpris2(Application *app, QObject *parent)
app_name_[0] = app_name_[0].toUpper(); app_name_[0] = app_name_[0].toUpper();
if (!QGuiApplication::desktopFileName().isEmpty()) { QStringList data_dirs = QString(qgetenv("XDG_DATA_DIRS")).split(":");
desktop_files_ << QGuiApplication::desktopFileName();
if (!data_dirs.contains("/usr/local/share")) {
data_dirs.append("/usr/local/share");
} }
QStringList domain_split = QCoreApplication::organizationDomain().split("."); if (!data_dirs.contains("/usr/share")) {
std::reverse(domain_split.begin(), domain_split.end()); data_dirs.append("/usr/share");
desktop_files_ << QStringList() << domain_split.join(".") + "." + QCoreApplication::applicationName().toLower(); }
desktop_files_ << QCoreApplication::applicationName().toLower();
desktop_file_ = desktop_files_.first();
data_dirs_ = QString(qgetenv("XDG_DATA_DIRS")).split(":"); for (const QString &data_dir : data_dirs) {
data_dirs_.append("/usr/local/share"); const QString desktopfilepath = QString("%1/applications/%2.desktop").arg(data_dir, QGuiApplication::desktopFileName());
data_dirs_.append("/usr/share"); if (QFile::exists(desktopfilepath)) {
desktopfilepath_ = desktopfilepath;
for (const QString &directory : data_dirs_) { break;
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;
} }
} }
if (desktopfilepath_.isEmpty()) {
desktopfilepath_ = QGuiApplication::desktopFileName() + ".desktop";
} }
} }
@ -237,19 +236,11 @@ QString Mpris2::Identity() const { return app_name_; }
QString Mpris2::DesktopEntryAbsolutePath() const { QString Mpris2::DesktopEntryAbsolutePath() const {
for (const QString &directory : data_dirs_) { return desktopfilepath_;
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();
} }
QString Mpris2::DesktopEntry() const { return desktop_file_; } QString Mpris2::DesktopEntry() const { return QGuiApplication::desktopFileName() + ".desktop"; }
QStringList Mpris2::SupportedUriSchemes() const { QStringList Mpris2::SupportedUriSchemes() const {

View File

@ -239,9 +239,7 @@ class Mpris2 : public QObject {
Application *app_; Application *app_;
QString app_name_; QString app_name_;
QStringList data_dirs_; QString desktopfilepath_;
QStringList desktop_files_;
QString desktop_file_;
QVariantMap last_metadata_; QVariantMap last_metadata_;
}; };