diff options
author | Dirk Hohndel <dirk@hohndel.org> | 2015-07-12 17:39:13 -0700 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2015-07-12 17:39:13 -0700 |
commit | 15de7f0b716b4e3c28fee4f4ccbac4788a8d84b1 (patch) | |
tree | 713cf409f07a3c616508a20a29d570daa790487f /qt-mobile | |
parent | 16759715e62a48ca3bb77a668a27103a6b90ea20 (diff) | |
download | subsurface-15de7f0b716b4e3c28fee4f4ccbac4788a8d84b1.tar.gz |
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>
Diffstat (limited to 'qt-mobile')
-rw-r--r-- | qt-mobile/main.qml | 15 | ||||
-rw-r--r-- | qt-mobile/qmlmanager.cpp | 23 |
2 files changed, 37 insertions, 1 deletions
diff --git a/qt-mobile/main.qml b/qt-mobile/main.qml index ffe83d19b..dac37e09b 100644 --- a/qt-mobile/main.qml +++ b/qt-mobile/main.qml @@ -8,6 +8,7 @@ import org.subsurfacedivelog.mobile 1.0 ApplicationWindow { title: qsTr("Subsurface mobile") property bool fullscreen: true + property alias messageText: message.text visible: true StackView { @@ -68,6 +69,20 @@ ApplicationWindow { } } + Rectangle { + id: messageArea + height: childrenRect.height + Layout.fillWidth: true + + Text { + id: message + color: "#000000" + text: "" + styleColor: "#ff0000" + font.pointSize: 10 + } + } + } } } diff --git a/qt-mobile/qmlmanager.cpp b/qt-mobile/qmlmanager.cpp index 5ccd4cde7..118465a2d 100644 --- a/qt-mobile/qmlmanager.cpp +++ b/qt-mobile/qmlmanager.cpp @@ -1,11 +1,19 @@ #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() { @@ -25,20 +33,33 @@ void QMLManager::savePreferences() 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)) { - //TODO: Show error in QML + 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; |