diff options
author | Grace Karanja <gracie.karanja89@gmail.com> | 2015-07-10 11:31:24 +0300 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2015-07-10 06:03:56 -0700 |
commit | 866d67c5e7a8194c178b2b7afcdf298371e01516 (patch) | |
tree | ed6a18892c6235c19fd183884ca301b9fb89c184 /qt-mobile | |
parent | f01ec470e7b018443fad127a3b3e0f3f862e56e2 (diff) | |
download | subsurface-866d67c5e7a8194c178b2b7afcdf298371e01516.tar.gz |
QML UI: Load dives from cloud
Load dives from the Subsurface cloud service using the user's saved
credentials. This will display the dives in the same way as loading
them from a local file.
Signed-off-by: Grace Karanja <gracie.karanja89@gmail.com>
Diffstat (limited to 'qt-mobile')
-rw-r--r-- | qt-mobile/main.qml | 16 | ||||
-rw-r--r-- | qt-mobile/qmlmanager.cpp | 52 | ||||
-rw-r--r-- | qt-mobile/qmlmanager.h | 12 |
3 files changed, 28 insertions, 52 deletions
diff --git a/qt-mobile/main.qml b/qt-mobile/main.qml index d3447a0c7..bf36e8866 100644 --- a/qt-mobile/main.qml +++ b/qt-mobile/main.qml @@ -9,16 +9,6 @@ ApplicationWindow { title: qsTr("Subsurface") width: 500; - FileDialog { - id: fileOpen - selectExisting: true - selectMultiple: true - - onAccepted: { - manager.setFilename(fileUrl) - } - } - QMLManager { id: manager } @@ -48,10 +38,10 @@ ApplicationWindow { } Button { - id: openFile - text: "Open File" + id: loadDivesButton + text: "Load Dives" onClicked: { - fileOpen.open(); + manager.loadDives(); } } } diff --git a/qt-mobile/qmlmanager.cpp b/qt-mobile/qmlmanager.cpp index 543e2a6ec..8bbf09730 100644 --- a/qt-mobile/qmlmanager.cpp +++ b/qt-mobile/qmlmanager.cpp @@ -5,6 +5,7 @@ #include "qt-models/divelistmodel.h" #include "divelist.h" #include "pref.h" +#include "qthelper.h" QMLManager::QMLManager() { @@ -13,22 +14,10 @@ QMLManager::QMLManager() setCloudPassword(prefs.cloud_storage_password); } - QMLManager::~QMLManager() { } -QString QMLManager::filename() -{ - return m_fileName; -} - -void QMLManager::setFilename(const QString &f) -{ - m_fileName = f; - loadFile(); -} - void QMLManager::savePreferences() { QSettings s; @@ -38,6 +27,29 @@ void QMLManager::savePreferences() s.sync(); } + +void QMLManager::loadDives() +{ + QString url; + if (getCloudURL(url)) { + //TODO: Show error in QML + return; + } + + QByteArray fileNamePrt = QFile::encodeName(url); + int error = parse_file(fileNamePrt.data()); + if (!error) { + set_filename(fileNamePrt.data(), true); + } + + process_dives(false, false); + int i; + struct dive *d; + + for_each_dive(i, d) + DiveListModel::instance()->addDive(d); +} + QString QMLManager::cloudPassword() const { return m_cloudPassword; @@ -59,19 +71,3 @@ void QMLManager::setCloudUserName(const QString &cloudUserName) m_cloudUserName = cloudUserName; emit cloudUserNameChanged(); } - - -void QMLManager::loadFile() -{ - QUrl url(m_fileName); - QString strippedFileName = url.toLocalFile(); - - parse_file(strippedFileName.toUtf8().data()); - process_dives(false, false); - int i; - struct dive *d; - - for_each_dive(i, d) { - DiveListModel::instance()->addDive(d); - } -} diff --git a/qt-mobile/qmlmanager.h b/qt-mobile/qmlmanager.h index 850544847..558249e4e 100644 --- a/qt-mobile/qmlmanager.h +++ b/qt-mobile/qmlmanager.h @@ -7,18 +7,12 @@ class QMLManager : public QObject { Q_OBJECT - Q_PROPERTY(QString filename READ filename WRITE setFilename NOTIFY filenameChanged) Q_PROPERTY(QString cloudUserName READ cloudUserName WRITE setCloudUserName NOTIFY cloudUserNameChanged) Q_PROPERTY(QString cloudPassword READ cloudPassword WRITE setCloudPassword NOTIFY cloudPasswordChanged) public: QMLManager(); ~QMLManager(); - QString filename(); - - void getFile(); - - QString cloudUserName() const; void setCloudUserName(const QString &cloudUserName); @@ -26,17 +20,13 @@ public: void setCloudPassword(const QString &cloudPassword); public slots: - void setFilename(const QString &f); void savePreferences(); - + void loadDives(); private: - QString m_fileName; QString m_cloudUserName; QString m_cloudPassword; - void loadFile(); signals: - void filenameChanged(); void cloudUserNameChanged(); void cloudPasswordChanged(); }; |