#include "joystick.h"
#include "qdeclarativetoucharea.h"
#include <QList>
+#include <QObject>
+#include "qmlappviewer.h"
+
+QString selectQmlMain(QStringList inportPaths,QString cmdParam,QString activeUI,uiListModel &uiList);
+
+
-QString selectQmlMain(QStringList inportPaths,QString cmdParam,QString activeUI,uiListModel &uiList,QStringList &uiNames,QStringList &uiFiles);
// MacOSX sdl hack so that SDL won't hijack main
#undef main
QUrl *url;
uiListModel uiList;
bool setDefault=false;
- QStringList uiNames,uiFiles;
QSettings *mardroneSettings=new QSettings("katix.org","mardrone");
#ifdef QT_IOS
setDefault=true;
};
- QDeclarativeView window;
+ // QDeclarativeView window;
+ QmlAppViewer window;
window.rootContext()->setContextProperty("MArdrone",window.window());
QObject::connect((QObject*)window.engine(), SIGNAL(quit()), &app, SLOT(quit()));
+
// Check available UI's
- window.engine()->addImportPath("qrc:/gauges/");
+ window.engine()->addImportPath(":/gauges/");
window.engine()->addImportPath("qrc:");
window.engine()->addImportPath(":");
window.engine()->addImportPath("gauges");
window.engine()->addImportPath(".");
#ifdef Q_OS_ANDROID
- window.engine()->addImportPath("/imports/");
+ window.engine()->addImportPath("/");
+ window.engine()->addImportPath("/imports");
+ window.engine()->addImportPath("/assets");
window.engine()->addPluginPath(QDir::homePath()+"/../lib");
#endif
qDebug() << "ImportPathList" << window.engine()->importPathList() ;
QStringList importPath=window.engine()->importPathList();
window.rootContext()->setContextProperty("uiList",&uiList);
- window.rootContext()->setContextProperty("uiNames",uiNames);
- window.rootContext()->setContextProperty("uiFiles",uiFiles);
- QString qmlFile=selectQmlMain(importPath,qmlmainfile,activeUi,uiList,uiNames,uiFiles);
+ QString qmlFile=selectQmlMain(importPath,qmlmainfile,activeUi,uiList);
if(setDefault) mardroneSettings->setValue("activeUI",qmlFile);
#ifndef QT_IOS
qmlFile=QString("qrc:/")+qmlFile;
if((screenGeometry.height()<=800) && (screenGeometry.width()<=1024)) window.window()->showFullScreen();
else window.window()->show();
}
+ QObject::connect(&window, SIGNAL(backKey()), window.rootObject(), SLOT(backKey()));
return app.exec();
}
-QString selectQmlMain(QStringList importPaths,QString cmdParam,QString activeUI,uiListModel &uiList,QStringList &uiNames,QStringList &uiFiles)
+QString selectQmlMain(QStringList importPaths,QString cmdParam,QString activeUI,uiListModel &uiList)
{
bool haveHarmattan=FALSE;
bool haveSymbian=FALSE;
bool haveDesktop=FALSE;
+ bool haveAndroid=FALSE;
QStringList appQmlFilesFilter;
QString uiName;
appQmlFilesFilter << "ardrone*.qml";
// Scan supported components
for(int i=0;i<importPaths.size();i++) {
QString importPath=importPaths[i];
- haveHarmattan|=QFile(importPath+"/com/nokia/meego").exists();
- haveSymbian|=QFile(importPath+"/com/nokia/symbian.1.1").exists();
- haveDesktop|=QFile(importPath+"/QtDesktop").exists();
- qDebug() << importPath << haveHarmattan << haveSymbian << haveDesktop;
+ QDir searchDir(importPath);
+ QStringList qmlFiles=searchDir.entryList();
+ qDebug() << importPath << qmlFiles;
+ haveHarmattan|=QFile(importPath+"/com/nokia/meego/qmldir").exists();
+ haveSymbian|=QFile(importPath+"/com/nokia/symbian.1.1/qmldir").exists();
+ haveAndroid|=QFile(importPath+"/com/nokia/android.1.1/qmldir").exists();
+ haveDesktop|=QFile(importPath+"/QtDesktop/qmldir").exists();
+ qDebug() << importPath << haveHarmattan << haveSymbian << haveDesktop << haveAndroid ;
}
// Scan UI .qml files
for(int i=0;i<importPaths.size();i++) {
for(int j=0;j<qmlFiles.size();j++) {
if((qmlFiles[j].contains("harmattan") && haveHarmattan)||
(qmlFiles[j].contains("symbian") && haveSymbian) ||
+ (qmlFiles[j].contains("android") && haveAndroid) ||
(qmlFiles[j].contains("desktop") && haveDesktop) ||
(qmlFiles[j].contains("plainqml")))
{
if(!validUi) activeUI=((uiListElement*)uiList.get(0))->file();
return(activeUI);
}
+