subsurface/qt-mobile/qmlmanager.cpp
Dirk Hohndel 15de7f0b71 QML UI: implement a message area to show information to the user
This is just a quick first stab to do this, but it at least allows us to
share some information with the user.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-07-12 17:39:13 -07:00

92 lines
2.1 KiB
C++

#include "qmlmanager.h"
#include <QUrl>
#include <QSettings>
#include <QDebug>
#include "qt-models/divelistmodel.h"
#include "divelist.h"
#include "pref.h"
#include "qthelper.h"
#include "qt-gui.h"
static void showMessage(const char *errorString)
{
if (!qqWindowObject->setProperty("messageText", QVariant(errorString)))
qDebug() << "couldn't set property messageText to" << errorString;
}
QMLManager::QMLManager()
{
//Initialize cloud credentials.
setCloudUserName(prefs.cloud_storage_email);
setCloudPassword(prefs.cloud_storage_password);
}
QMLManager::~QMLManager()
{
}
void QMLManager::savePreferences()
{
QSettings s;
s.beginGroup("CloudStorage");
s.setValue("email", cloudUserName());
s.setValue("password", cloudPassword());
s.sync();
if (!same_string(prefs.cloud_storage_email, qPrintable(cloudUserName()))) {
free(prefs.cloud_storage_email);
prefs.cloud_storage_email = strdup(qPrintable(cloudUserName()));
}
if (!same_string(prefs.cloud_storage_password, qPrintable(cloudPassword()))) {
free(prefs.cloud_storage_password);
prefs.cloud_storage_password = strdup(qPrintable(cloudPassword()));
}
}
void QMLManager::loadDives()
{
QString url;
if (getCloudURL(url)) {
showMessage(get_error_string());
return;
}
showMessage("got email / password");
QByteArray fileNamePrt = QFile::encodeName(url);
int error = parse_file(fileNamePrt.data());
if (!error) {
report_error("filename is now %s", fileNamePrt.data());
showMessage(get_error_string());
set_filename(fileNamePrt.data(), true);
} else {
showMessage(get_error_string());
}
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;
}
void QMLManager::setCloudPassword(const QString &cloudPassword)
{
m_cloudPassword = cloudPassword;
emit cloudPasswordChanged();
}
QString QMLManager::cloudUserName() const
{
return m_cloudUserName;
}
void QMLManager::setCloudUserName(const QString &cloudUserName)
{
m_cloudUserName = cloudUserName;
emit cloudUserNameChanged();
}