diff --git a/JGE/include/qt/filedownloader.h b/JGE/include/qt/filedownloader.h index 21b5c597f..a2e4e2859 100644 --- a/JGE/include/qt/filedownloader.h +++ b/JGE/include/qt/filedownloader.h @@ -15,15 +15,18 @@ class FileDownloader : public QObject Q_OBJECT Q_PROPERTY(bool done READ isDone NOTIFY downloaded) Q_PROPERTY(qint64 received READ received NOTIFY receivedChanged) + Q_PROPERTY(QUrl url READ getDownloadUrl WRITE setDownloadUrl NOTIFY downloadUrlChanged) public: - explicit FileDownloader(QUrl url, QString localPath, QObject *parent = 0); + explicit FileDownloader(QString localPath, QUrl url=QUrl(""), QObject *parent = 0); virtual ~FileDownloader(); qint64 received() const {return m_received;}; bool isDone() {return m_done;}; + QUrl getDownloadUrl() {return m_downloadUrl;}; signals: void downloaded(); void receivedChanged(); + void downloadUrlChanged(); private slots: void fileDownloaded(QNetworkReply* pReply){ @@ -41,6 +44,7 @@ private slots: m_received = bytesReceived*100/bytesTotal; emit receivedChanged(); }; + void setDownloadUrl(QUrl url); private: @@ -48,6 +52,7 @@ private: qint64 m_received; QTemporaryFile m_tmp; QString m_localPath; + QUrl m_downloadUrl; bool m_OK; bool m_done; }; diff --git a/JGE/src/JFileSystem.cpp b/JGE/src/JFileSystem.cpp index ab509ad00..20739aebc 100644 --- a/JGE/src/JFileSystem.cpp +++ b/JGE/src/JFileSystem.cpp @@ -116,10 +116,11 @@ JFileSystem::JFileSystem(const string & _userPath, const string & _systemPath) userPath = "/sdcard/Wagic/Res/"; systemPath = ""; #elif defined (QT_CONFIG) - // userPath = USERDIR; - // systemPath = RESDIR; - userPath = QDir::toNativeSeparators(QDir::homePath()).toStdString() + "/.wagic/"; - systemPath = ""; + QDir dir(QDir::homePath()); + dir.cd(USERDIR); + + userPath = QDir::toNativeSeparators(dir.absolutePath()).toStdString(); + systemPath = ""; #else //Find the Res.txt file and matching Res folders for backwards compatibility ifstream mfile("Res.txt"); diff --git a/JGE/src/Qtmain.cpp b/JGE/src/Qtmain.cpp index 0185d0cec..9fd86623c 100644 --- a/JGE/src/Qtmain.cpp +++ b/JGE/src/Qtmain.cpp @@ -629,14 +629,13 @@ int main(int argc, char* argv[]) QScopedPointer app(createApplication(argc, argv)); app->setApplicationName(g_launcher->GetName()); - FileDownloader fileDownloader(QUrl("http://wagic.googlecode.com/files/core_017.zip"), - QDir::toNativeSeparators(QDir::homePath()) + "/.wagic/core_017.zip", 0); + FileDownloader fileDownloader(USERDIR); QScopedPointer viewer(QmlApplicationViewer::create()); g_glwidget = viewer.data(); - viewer->setMainQmlFile(QLatin1String("qml/QmlWagic/main.qml")); viewer->rootContext()->setContextProperty("fileDownloader", &fileDownloader); + viewer->setMainQmlFile(QLatin1String("qml/QmlWagic/main.qml")); viewer->setOrientation(QmlApplicationViewer::ScreenOrientationAuto); QGLWidget *glWidget = new QGLWidget; diff --git a/JGE/src/qt/corewrapper.cpp b/JGE/src/qt/corewrapper.cpp index b906ef4c2..f87337660 100644 --- a/JGE/src/qt/corewrapper.cpp +++ b/JGE/src/qt/corewrapper.cpp @@ -78,7 +78,9 @@ WagicCore::~WagicCore() m_launcher = NULL; } - m_engine->SetApp(NULL); + if(m_engine) + m_engine->SetApp(NULL); + if (m_app) { m_app->Destroy(); diff --git a/JGE/src/qt/filedownloader.cpp b/JGE/src/qt/filedownloader.cpp index bcdd7f07b..83b2b03a5 100644 --- a/JGE/src/qt/filedownloader.cpp +++ b/JGE/src/qt/filedownloader.cpp @@ -1,14 +1,30 @@ #include "filedownloader.h" +#include -FileDownloader::FileDownloader(QUrl url, QString localPath, QObject *parent) : - QObject(parent), m_received(0), m_localPath(localPath), m_OK(false), m_done(false) +FileDownloader::FileDownloader(QString localPath, QUrl url, QObject *parent) : + QObject(parent), m_received(0), m_OK(false), m_done(false) { + QDir dir(QDir::homePath()); + if(!dir.mkpath(localPath)) + { + m_OK = false; + return; + } + dir.cd(localPath); + m_localPath = dir.filePath("core.zip"); + QFile local(m_localPath); if(local.exists()) { m_done = true; return; } + if(!url.isEmpty()) + setDownloadUrl(url); +} + +void FileDownloader::setDownloadUrl(QUrl url) +{ connect(&m_WebCtrl, SIGNAL(finished(QNetworkReply*)), SLOT(fileDownloaded(QNetworkReply*))); @@ -21,7 +37,8 @@ FileDownloader::FileDownloader(QUrl url, QString localPath, QObject *parent) : m_OK = m_tmp.open(); } + FileDownloader::~FileDownloader() { -} \ No newline at end of file +} diff --git a/projects/mtg/qml/QmlWagic/main.qml b/projects/mtg/qml/QmlWagic/main.qml index 27e1751c8..9489ee6e5 100644 --- a/projects/mtg/qml/QmlWagic/main.qml +++ b/projects/mtg/qml/QmlWagic/main.qml @@ -17,6 +17,9 @@ Rectangle { PropertyChanges { target: wagic; visible: false } + PropertyChanges { + target:fileDownloader; url: "http://wagic.googlecode.com/files/core_017.zip" + } }, State { name: "NORMAL" diff --git a/projects/mtg/wagic-qt.pro b/projects/mtg/wagic-qt.pro index b5f3b6df8..2182c6f65 100644 --- a/projects/mtg/wagic-qt.pro +++ b/projects/mtg/wagic-qt.pro @@ -373,8 +373,11 @@ maemo5: { # Variables BINDIR = /opt/wagic RESDIR = /home/user/wagic/Res + USERDIR = MyDocs/.Wagic ICONDIR = /usr/share + DEFINES += RESDIR=\\\"$$RESDIR\\\" + DEFINES += USERDIR=\\\"$$USERDIR\\\" INSTALLS += target \ desktop \ @@ -407,7 +410,7 @@ maemo5: { # Variables BINDIR = /opt/wagic/bin RESDIR = /opt/wagic/Res - USERDIR = /home/user/MyDocs/.Wagic + USERDIR = MyDocs/.Wagic ICONDIR = /usr/share DEFINES += RESDIR=\\\"$$RESDIR\\\" @@ -443,7 +446,7 @@ maemo5: { TARGET.CAPABILITY += NetworkServices RESDIR = some/res/dir - USERDIR = some/user/dir + USERDIR = .Wagic DEFINES += RESDIR=\"$$RESDIR\" DEFINES += USERDIR=\"$$USERDIR\" @@ -455,13 +458,13 @@ maemo5: { DEFINES += USERDIR=\\\"$$USERDIR\\\" } else:unix { RESDIR = Res - USERDIR = ~/.Wagic + USERDIR = .Wagic DEFINES += RESDIR=\\\"$$RESDIR\\\" DEFINES += USERDIR=\\\"$$USERDIR\\\" } else:windows { RESDIR = ./Res - USERDIR = ./user + USERDIR = .Wagic DEFINES += RESDIR=\\\"$$RESDIR\\\" DEFINES += USERDIR=\\\"$$USERDIR\\\" }