21#include <QStandardPaths>
29 m_settings.reset(
new QSettings(
fileName, QSettings::IniFormat));
30 m_settings->beginGroup(
QSL(
"Desktop Entry"));
35 return m_settings ? m_settings->fileName() : QString();
40 return value(
QSL(
"Name"),
true).toString();
45 return value(
QSL(
"Comment"),
true).toString();
50 return value(
QSL(
"Type")).toString();
55 return value(
QSL(
"Icon")).toString();
64 const QLocale
locale = QLocale::system();
65 QString localeKey =
QSL(
"%1[%2]").arg(key,
locale.name());
66 if (m_settings->contains(localeKey)) {
67 return m_settings->value(localeKey);
69 localeKey =
QSL(
"%1[%2]").arg(key,
locale.bcp47Name());
70 if (m_settings->contains(localeKey)) {
71 return m_settings->value(localeKey);
73 const int i =
locale.name().indexOf(QLatin1Char(
'_'));
75 localeKey =
QSL(
"%1[%2]").arg(key,
locale.name().left(
i));
76 if (m_settings->contains(localeKey)) {
77 return m_settings->value(localeKey);
81 return m_settings->value(key);
90 const QString exec = m_settings->value(
QSL(
"TryExec")).toString();
91 return exec.isEmpty() || !QStandardPaths::findExecutable(exec).isEmpty();
QVariant value(const QString &key, bool localized=false) const