X-Git-Url: http://git.maemo.org/git/?p=mardrone;a=blobdiff_plain;f=mardrone%2Fmain.cpp;h=13356b1e33c166218d4ddfc9fff0dd72d5eee439;hp=ee594e6e376d196ae2c54d4bc40b083d9516a826;hb=8f3f629260d50245d19c50ebfb07c766b8937c30;hpb=f19da612ad0dd01a6f6339386625ce2bdc259220 diff --git a/mardrone/main.cpp b/mardrone/main.cpp index ee594e6..13356b1 100644 --- a/mardrone/main.cpp +++ b/mardrone/main.cpp @@ -24,37 +24,63 @@ #include "gaugehorizon.h" #include "gaugetape.h" #include "gaugelabel.h" +#include "uilistelement.h" #include #include #include #include +#include +#include #include #include "joystick.h" #include "qdeclarativetoucharea.h" +#include 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("Drone", 1, 0, "DroneControl"); qmlRegisterType("Drone", 1, 0, "DroneVideo"); qmlRegisterType("Gauges", 1, 0, "GaugeTape"); qmlRegisterType("Gauges", 1, 0, "GaugeLabel"); qmlRegisterType("Gauges", 1, 0, "GaugeHorizon"); + qmlRegisterType("Gauges", 1, 0, "GaugeArc"); + qmlRegisterType("Gauges", 1, 0, "GaugeHSI"); qmlRegisterType("JoyStick", 1, 0, "JoyStick"); qmlRegisterType("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()); @@ -64,9 +90,19 @@ 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();; +#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 @@ -91,5 +127,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); }