sync repo
authorKate Alhola <kate.alhola@gmail.com>
Wed, 11 Apr 2012 12:05:07 +0000 (15:05 +0300)
committerKate Alhola <kate.alhola@gmail.com>
Wed, 11 Apr 2012 12:05:07 +0000 (15:05 +0300)
mardrone/main.cpp

index ee594e6..0e28721 100644 (file)
 #include "gaugehorizon.h"
 #include "gaugetape.h"
 #include "gaugelabel.h"
+#include "uilistelement.h"
 #include <QDeclarativeView>
 #include <QDeclarativeContext>
 #include <QDeclarativeEngine>
 #include <QtDeclarative>
+#include <gaugearc.h>
+#include <gaugehsi.h>
 #include <QSettings>
 #include "joystick.h"
 #include "qdeclarativetoucharea.h"
+#include <QList>
 
 QString selectQmlMain(QStringList inportPaths,QString cmdParam,QString activeUI);
 
 // MacOSX sdl hack so that SDL won't hijack main
 #undef main
 
+#ifdef QT_IOS
+int Qt_main(int argc, char *argv[])
+#else
 int main(int argc, char *argv[])
+#endif
 {
     qmlRegisterType<DroneControl>("Drone", 1, 0, "DroneControl");
     qmlRegisterType<DroneVideo>("Drone", 1, 0, "DroneVideo");
     qmlRegisterType<GaugeTape>("Gauges", 1, 0, "GaugeTape");
     qmlRegisterType<GaugeLabel>("Gauges", 1, 0, "GaugeLabel");
     qmlRegisterType<GaugeHorizon>("Gauges", 1, 0, "GaugeHorizon");
+    qmlRegisterType<GaugeArc>("Gauges", 1, 0, "GaugeArc");
+    qmlRegisterType<GaugeHSI>("Gauges", 1, 0, "GaugeHSI");
     qmlRegisterType<JoyStick>("JoyStick", 1, 0, "JoyStick");
     qmlRegisterType<QDeclarativeTouchArea>("TouchArea", 1, 0, "TouchArea");
 
     QApplication app(argc, argv);
     QUrl *url;
+    uiListModel uiList;
+    bool setDefault=false;
+
+    uiList.addUI(new uiListElement("MeeGo","ardrone_harmattan.qml"));
+    uiList.addUI(new uiListElement("Symbian","ardrone_symbian.qml"));
+    uiList.addUI(new uiListElement("Desktop","ardrone_desktop.qml"));
+    uiList.addUI(new uiListElement("PlainQml","ardrone_plainqml.qml"));
 
 
     QSettings *mardroneSettings=new QSettings("katix.org","mardrone");
+#ifdef QT_IOS
+    QString activeUi=mardroneSettings->value("activeUI","ardrone_plainqml.qml").toString();
+#else
+ //   QString activeUi=mardroneSettings->value("activeUI","ardrone_harmattan.qml").toString();
     QString activeUi=mardroneSettings->value("activeUI","ardrone_desktop.qml").toString();
+#endif
     qDebug() << "activeUI=" << activeUi;
     QString qmlmainfile=app.arguments().size()>=2 ? app.arguments()[1]:"";
+    if(app.arguments().size()>=3 && qmlmainfile=="set") {
+        qmlmainfile=app.arguments()[2];
+        setDefault=true;
+    };
 
     QDeclarativeView window;
     window.rootContext()->setContextProperty("MArdrone",window.window());
@@ -64,9 +90,15 @@ int main(int argc, char *argv[])
     window.engine()->addImportPath("qrc:");
     window.engine()->addImportPath("gauges");
     window.engine()->addImportPath(".");
-    qDebug() << "ImportPathList" << window.engine()->importPathList() << window.engine()->importPathList();;
+    qDebug() << "ImportPathList" << window.engine()->importPathList() ;
     QStringList importPath=window.engine()->importPathList();
-    QString qmlFile=QString("qrc:/")+selectQmlMain(importPath,qmlmainfile,activeUi);
+    window.rootContext()->setContextProperty("uiList",&uiList);
+    QString qmlFile=selectQmlMain(importPath,qmlmainfile,activeUi);
+    if(setDefault) mardroneSettings->setValue("activeUI",qmlFile);
+#ifndef QT_IOS
+    qmlFile=QString("qrc:/")+qmlFile;
+#endif
+
     qDebug() << "using:" << qmlFile;
 
     if(qmlFile.contains("desktop")) { // We have desktop UI
@@ -91,5 +123,6 @@ QString selectQmlMain(QStringList importPaths,QString cmdParam,QString activeUI)
   if(cmdParam=="harmattan" || (cmdParam=="" && QFile(importPath+"/com/nokia/meego").exists())) return QString("ardrone_harmattan.qml");
   if(cmdParam=="symbian" || (cmdParam=="" && QFile(importPath+"/MeeGo/Components").exists())) return QString("ardrone_symbian.qml");
   if(cmdParam=="desktop" || (cmdParam=="" && QFile(importPath+"/QtDesktop").exists())) return QString("ardrone_desktop.qml");
+   if(cmdParam=="plain") return QString("ardrone_plainqml.qml");
   return(activeUI);
 }