@@ -40,14 +40,15 @@ LauncherModel::LauncherModel(QObject *parent):
4040 connect(m_dbusIface, &DBusInterface::refreshCalled, this, &LauncherModel::refresh);
4141
4242 Q_FOREACH (const QString &entry, m_settings->storedApplications()) {
43− if (DesktopFileHandler::findDesktopFile(entry).isEmpty()) {
43+ DesktopFileHandler desktopFile(entry);
44+ if (!desktopFile.isValid()) {
4445 qWarning() << "Couldn't find a .desktop file for" << entry << ". Skipping...";
4546 continue;
4647 }
4748
4849 LauncherItem *item = new LauncherItem(entry,
49− DesktopFileHandler::displayName(entry),
50− DesktopFileHandler::icon(entry),
50+ desktopFile.displayName(),
51+ desktopFile.icon(),
5152 this);
5253 item->setPinned(true);
5354 m_list.append(item);
@@ -150,15 +151,16 @@ void LauncherModel::pin(const QString &appId, int index)
150151 index = m_list.count();
151152 }
152153
153− if (DesktopFileHandler::findDesktopFile(appId).isEmpty()) {
154+ DesktopFileHandler desktopFile(appId);
155+ if (!desktopFile.isValid()) {
154156 qWarning() << "Can't pin this application, there is no .destkop file available.";
155157 return;
156158 }
157159
158160 beginInsertRows(QModelIndex(), index, index);
159161 LauncherItem *item = new LauncherItem(appId,
160− DesktopFileHandler::displayName(appId),
161− DesktopFileHandler::icon(appId),
162+ desktopFile.displayName(),
163+ desktopFile.icon(),
162164 this);
163165 item->setPinned(true);
164166 m_list.insert(index, item);
@@ -342,10 +344,11 @@ void LauncherModel::countVisibleChanged(const QString &appId, int countVisible)
342344 }
343345 } else {
344346 // Need to create a new LauncherItem and show the highlight
345− if (countVisible && !DesktopFileHandler::findDesktopFile(appId).isEmpty()) {
347+ DesktopFileHandler desktopFile(appId);
348+ if (countVisible && desktopFile.isValid()) {
346349 LauncherItem *item = new LauncherItem(appId,
347− DesktopFileHandler::displayName(appId),
348− DesktopFileHandler::icon(appId));
350+ desktopFile.displayName(),
351+ desktopFile.icon());
349352 item->setCountVisible(true);
350353 beginInsertRows(QModelIndex(), m_list.count(), m_list.count());
351354 m_list.append(item);
@@ -358,12 +361,13 @@ void LauncherModel::refresh()
358361{
359362 QList<LauncherItem*> toBeRemoved;
360363 Q_FOREACH (LauncherItem* item, m_list) {
361− if (DesktopFileHandler::findDesktopFile(item->appId()).isEmpty()) {
364+ DesktopFileHandler desktopFile(item->appId());
365+ if (!desktopFile.isValid()) {
362366 toBeRemoved << item;
363367 } else {
364368 int idx = m_list.indexOf(item);
365− item->setName(DesktopFileHandler::displayName(item->appId()));
366− item->setIcon(DesktopFileHandler::icon(item->appId()));
369+ item->setName(desktopFile.displayName());
370+ item->setIcon(desktopFile.icon());
367371 Q_EMIT dataChanged(index(idx), index(idx), QVector<int>() << RoleName << RoleIcon);
368372 }
369373 }