#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");
- QString activeUi=mardroneSettings->value("activeUI","ardrone_desktop.qml").toString();
+#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());
window.engine()->addImportPath("qrc:");
window.engine()->addImportPath("gauges");
window.engine()->addImportPath(".");
- qDebug() << "ImportPathList" << window.engine()->importPathList() << window.engine()->importPathList();;
+#ifdef Q_OS_ANDROID
+ window.engine()->addImportPath("/imports/");
+ window.engine()->addPluginPath(QDir::homePath()+"/../lib");
+#endif
+ 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
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);
}