Delete unneeded files
[staging/HomeScreen.git] / HomeScreen / src / main.cpp
index 264468b..dcad4c6 100644 (file)
  * limitations under the License.
  */
 
-#include "mainwindow.h"
-#include <QApplication>
-#include <QSysInfo>
-//#include <QSharedMemory>
-#include <QSurfaceFormat>
+#include <QGuiApplication>
+#include <QtGui/QGuiApplication>
+#include <QtQml/QQmlApplicationEngine>
+#include <QtQml/QQmlContext>
+#include <QtQml/qqml.h>
+
+#include "layouthandler.h"
+#include "homescreencontrolinterface.h"
+#include "../src2/applicationlauncher.h"
+#include "../src2/statusbarmodel.h"
+#include "../src2/applicationmodel.h"
 
 int main(int argc, char *argv[])
 {
-    // allow only one instance of this application
-    /*QSharedMemory appInstance;
-    appInstance.setKey("HomeScreen");
-    if (!appInstance.create(1))
-    {
-        qDebug("Only one instance of the Home Screen App allowed!");
-        exit(-1);
-    }*/
-
-    QApplication a(argc, argv);
+    QGuiApplication a(argc, argv);
 
     // used for application settings (QSettings)
     QCoreApplication::setOrganizationDomain("LinuxFoundation");
     QCoreApplication::setOrganizationName("AutomotiveGradeLinux");
     QCoreApplication::setApplicationName("HomeScreen");
-    QCoreApplication::setApplicationVersion("0.3.0");
+    QCoreApplication::setApplicationVersion("0.7.0");
+
+    qDebug("%s, v%s", QCoreApplication::applicationName().toStdString().c_str(), QCoreApplication::applicationVersion().toStdString().c_str());
+
+    qDBusRegisterMetaType<AppInfo>();
+    qDBusRegisterMetaType<QList<AppInfo> >();
+
+    qmlRegisterType<ApplicationLauncher>("HomeScreen", 1, 0, "ApplicationLauncher");
+    qmlRegisterType<ApplicationModel>("Home", 1, 0, "ApplicationModel");
+    qmlRegisterType<StatusBarModel>("HomeScreen", 1, 0, "StatusBarModel");
+
+    QQmlApplicationEngine engine;
 
-    QSurfaceFormat format;
-    format.setDepthBufferSize(16);
-    format.setStencilBufferSize(8);
+    LayoutHandler* layoutHandler = new LayoutHandler();
 
-    MainWindow w;
-    w.show();
-#ifdef __arm__
-    // trigger wayland compositor to position the surface correctly
-#endif
-#ifdef __i386__
-    w.move(0, 0);
-#endif
+    HomeScreenControlInterface* hsci = new HomeScreenControlInterface();
+    QObject::connect(hsci, SIGNAL(newRequestGetSurfaceStatus(int)), layoutHandler, SLOT(requestGetSurfaceStatus(int)));
+    QObject::connect(hsci, SIGNAL(newRequestsToBeVisibleApp(int)), layoutHandler, SLOT(makeMeVisible(int)));
+    QObject::connect(hsci, SIGNAL(newRequestRenderSurfaceToArea(int, int)), layoutHandler, SLOT(requestRenderSurfaceToArea(int,int)));
+    QObject::connect(hsci, SIGNAL(newRequestRenderSurfaceToAreaAllowed(int, int)), layoutHandler, SLOT(requestRenderSurfaceToAreaAllowed(int,int)));
+    QObject::connect(hsci, SIGNAL(newRequestSurfaceIdToFullScreen(int)), layoutHandler, SLOT(requestSurfaceIdToFullScreen(int)));
 
+    engine.rootContext()->setContextProperty("layoutHandler", layoutHandler);
 
-#ifdef __arm__
-    qDebug("Running on ARM architecture");
-#endif
-#ifdef __i386__
-    qDebug("Running on x86 architecture");
-#endif
+    engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
 
     return a.exec();
 }