summaryrefslogtreecommitdiffstats
path: root/qt-mobile
diff options
context:
space:
mode:
authorGravatar Grace Karanja <gracie.karanja89@gmail.com>2015-07-10 11:31:24 +0300
committerGravatar Dirk Hohndel <dirk@hohndel.org>2015-07-10 06:03:56 -0700
commit866d67c5e7a8194c178b2b7afcdf298371e01516 (patch)
treeed6a18892c6235c19fd183884ca301b9fb89c184 /qt-mobile
parentf01ec470e7b018443fad127a3b3e0f3f862e56e2 (diff)
downloadsubsurface-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.qml16
-rw-r--r--qt-mobile/qmlmanager.cpp52
-rw-r--r--qt-mobile/qmlmanager.h12
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();
};