1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
#include <QtCore/QDebug>
#include <QtCore/QDateTime>
#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();
}
}
|