mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
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>
This commit is contained in:
parent
f01ec470e7
commit
866d67c5e7
3 changed files with 28 additions and 52 deletions
|
@ -9,16 +9,6 @@ ApplicationWindow {
|
||||||
title: qsTr("Subsurface")
|
title: qsTr("Subsurface")
|
||||||
width: 500;
|
width: 500;
|
||||||
|
|
||||||
FileDialog {
|
|
||||||
id: fileOpen
|
|
||||||
selectExisting: true
|
|
||||||
selectMultiple: true
|
|
||||||
|
|
||||||
onAccepted: {
|
|
||||||
manager.setFilename(fileUrl)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
QMLManager {
|
QMLManager {
|
||||||
id: manager
|
id: manager
|
||||||
}
|
}
|
||||||
|
@ -48,10 +38,10 @@ ApplicationWindow {
|
||||||
}
|
}
|
||||||
|
|
||||||
Button {
|
Button {
|
||||||
id: openFile
|
id: loadDivesButton
|
||||||
text: "Open File"
|
text: "Load Dives"
|
||||||
onClicked: {
|
onClicked: {
|
||||||
fileOpen.open();
|
manager.loadDives();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
#include "qt-models/divelistmodel.h"
|
#include "qt-models/divelistmodel.h"
|
||||||
#include "divelist.h"
|
#include "divelist.h"
|
||||||
#include "pref.h"
|
#include "pref.h"
|
||||||
|
#include "qthelper.h"
|
||||||
|
|
||||||
QMLManager::QMLManager()
|
QMLManager::QMLManager()
|
||||||
{
|
{
|
||||||
|
@ -13,22 +14,10 @@ QMLManager::QMLManager()
|
||||||
setCloudPassword(prefs.cloud_storage_password);
|
setCloudPassword(prefs.cloud_storage_password);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
QMLManager::~QMLManager()
|
QMLManager::~QMLManager()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
QString QMLManager::filename()
|
|
||||||
{
|
|
||||||
return m_fileName;
|
|
||||||
}
|
|
||||||
|
|
||||||
void QMLManager::setFilename(const QString &f)
|
|
||||||
{
|
|
||||||
m_fileName = f;
|
|
||||||
loadFile();
|
|
||||||
}
|
|
||||||
|
|
||||||
void QMLManager::savePreferences()
|
void QMLManager::savePreferences()
|
||||||
{
|
{
|
||||||
QSettings s;
|
QSettings s;
|
||||||
|
@ -38,6 +27,29 @@ void QMLManager::savePreferences()
|
||||||
|
|
||||||
s.sync();
|
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
|
QString QMLManager::cloudPassword() const
|
||||||
{
|
{
|
||||||
return m_cloudPassword;
|
return m_cloudPassword;
|
||||||
|
@ -59,19 +71,3 @@ void QMLManager::setCloudUserName(const QString &cloudUserName)
|
||||||
m_cloudUserName = cloudUserName;
|
m_cloudUserName = cloudUserName;
|
||||||
emit cloudUserNameChanged();
|
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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
@ -7,18 +7,12 @@
|
||||||
class QMLManager : public QObject
|
class QMLManager : public QObject
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
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 cloudUserName READ cloudUserName WRITE setCloudUserName NOTIFY cloudUserNameChanged)
|
||||||
Q_PROPERTY(QString cloudPassword READ cloudPassword WRITE setCloudPassword NOTIFY cloudPasswordChanged)
|
Q_PROPERTY(QString cloudPassword READ cloudPassword WRITE setCloudPassword NOTIFY cloudPasswordChanged)
|
||||||
public:
|
public:
|
||||||
QMLManager();
|
QMLManager();
|
||||||
~QMLManager();
|
~QMLManager();
|
||||||
|
|
||||||
QString filename();
|
|
||||||
|
|
||||||
void getFile();
|
|
||||||
|
|
||||||
|
|
||||||
QString cloudUserName() const;
|
QString cloudUserName() const;
|
||||||
void setCloudUserName(const QString &cloudUserName);
|
void setCloudUserName(const QString &cloudUserName);
|
||||||
|
|
||||||
|
@ -26,17 +20,13 @@ public:
|
||||||
void setCloudPassword(const QString &cloudPassword);
|
void setCloudPassword(const QString &cloudPassword);
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void setFilename(const QString &f);
|
|
||||||
void savePreferences();
|
void savePreferences();
|
||||||
|
void loadDives();
|
||||||
private:
|
private:
|
||||||
QString m_fileName;
|
|
||||||
QString m_cloudUserName;
|
QString m_cloudUserName;
|
||||||
QString m_cloudPassword;
|
QString m_cloudPassword;
|
||||||
void loadFile();
|
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void filenameChanged();
|
|
||||||
void cloudUserNameChanged();
|
void cloudUserNameChanged();
|
||||||
void cloudPasswordChanged();
|
void cloudPasswordChanged();
|
||||||
};
|
};
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue