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