launcher: rely on applaunchd for application startup
[apps/launcher.git] / launcher / src / applicationmodel.cpp
index 258fac6..1af4366 100644 (file)
 #include "applicationmodel.h"
 #include "appinfo.h"
 
-#include "hmi-debug.h"
-
-#include <QtDBus/QDBusInterface>
-#include <QtDBus/QDBusReply>
-
-#include "afm_user_daemon_proxy.h"
+#include <QtCore/QFile>
+#include <QtCore/QJsonObject>
+#include <QtCore/QJsonDocument>
+#include <QtCore/QJsonArray>
 
-extern org::AGL::afm::user *afm_user_daemon_proxy;
+#include "hmi-debug.h"
 
 class ApplicationModel::Private
 {
@@ -42,13 +40,10 @@ public:
 namespace {
     QString get_icon_name(QJsonObject const &i)
     {
-        QString icon = i["name"].toString().toLower();
-
-        if ( !QFile::exists(QString(":/images/%1_active.svg").arg(icon)) ||
-             !QFile::exists(QString(":/images/%1_inactive.svg").arg(icon)) )
-        {
+        QString icon = i["icon"].toString();
+        fprintf(stderr, "Looking for icon %s\n", icon.toLocal8Bit().data());
+        if ( !QFile::exists(icon) )
             icon = "blank";
-        }
         return icon;
     }
 }
@@ -65,13 +60,23 @@ void ApplicationModel::Private::addApp(QString icon, QString name, QString id)
             return;
     }
 
-    QString _icon = name.toLower();
-    if ( !QFile::exists(QString(":/images/%1_active.svg").arg(_icon)) ||
-         !QFile::exists(QString(":/images/%1_inactive.svg").arg(_icon)) )
+    QString _icon;
+    if ( QFile::exists(icon) )
+    {
+        _icon = QString("file:%1").arg(icon);
+        fprintf(stderr, "using icon '%s'\n", _icon.toLocal8Bit().data());
+    }
+    else
     {
         _icon = "blank";
     }
-    this->data.append(AppInfo(_icon, name, id));
+
+    int pos = 0;
+    for (pos = 0; pos < this->data.size(); ++pos) {
+        if (QString::compare(this->data.at(pos).name(), name, Qt::CaseInsensitive) > 0)
+            break;
+    }
+    this->data.insert(pos, AppInfo(_icon, name, id));
 }
 
 void ApplicationModel::Private::removeApp(QString id)