#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(); } }