From 1adf7f1bcde493ccaacedb0d9778911ad69ff335 Mon Sep 17 00:00:00 2001 From: Javier Date: Thu, 4 Sep 2014 01:55:14 +0200 Subject: Initial import --- src/controller.cpp | 84 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 src/controller.cpp (limited to 'src/controller.cpp') diff --git a/src/controller.cpp b/src/controller.cpp new file mode 100644 index 0000000..02c8252 --- /dev/null +++ b/src/controller.cpp @@ -0,0 +1,84 @@ +#include +#include + +#include "controller.h" + +static const QLatin1String setting_address("address"); +static const QLatin1String setting_num_pages("num-pages"); +static const QLatin1String setting_page("page%1"); +static const QLatin1String setting_page_widget("widget%1"); + +Controller::Controller(const QString &settingsPrefix, QQuickView *view, QObject *parent) : + QObject(parent), + _settings(new MDConfGroup(this)), + _metawatch(0), + _reconnect(new ReconnectTimer(this)), + _view(new WidgetView(settingsPrefix, view, this)), + _batteryCharge(0), _batteryCharging(false) +{ + _settings->setPath(settingsPrefix); + _metawatch = new MetaWatch(_settings->value(setting_address).toString(), this); + + connect(_settings, &MDConfGroup::valueChanged, this, &Controller::handleSettingChanged); + connect(_metawatch, &MetaWatch::connected, _reconnect, &ReconnectTimer::stop); + connect(_metawatch, &MetaWatch::connected, this, &Controller::handleMetaWatchConnected); + connect(_metawatch, &MetaWatch::disconnected, _reconnect, &ReconnectTimer::start); + connect(_metawatch, &MetaWatch::batteryStatus, this, &Controller::handleMetaWatchBatteryStatus); + connect(_reconnect, &ReconnectTimer::tick, _metawatch, &MetaWatch::connectDevice); + _reconnect->start(); + + reloadPages(); +} + +int Controller::batteryCharge() const +{ + return _batteryCharge; +} + +bool Controller::batteryCharging() const +{ + return _batteryCharging; +} + +void Controller::reloadPages() +{ + +} + +void Controller::switchToPage(int page) +{ + +} + +void Controller::handleSettingChanged(const QString &key) +{ + qDebug() << "Setting" << key << "changed"; + if (key == setting_num_pages) { + _settings->value(setting_num_pages, 0); + switchToPage(0); + } +} + +void Controller::handleMetaWatchConnected() +{ + qDebug() << "MetaWatch connected, synchronizing date time"; + + _metawatch->updateDeviceType(); + _metawatch->updateBatteryStatus(); + _metawatch->setDateTime(QDateTime::currentDateTime()); + _metawatch->updateLcdDisplay(); + + _metawatch->updateWidgetList(_view->widgets()); +} + +void Controller::handleMetaWatchBatteryStatus(bool charging, int charge) +{ + if (_batteryCharging != charging) { + _batteryCharging = charging; + emit batteryChargingChanged(); + } + if (_batteryCharge != charge) { + _batteryCharge = charge; + emit batteryChargeChanged(); + } +} -- cgit v1.2.3