summaryrefslogtreecommitdiff
path: root/src/controller.cpp
diff options
context:
space:
mode:
authorJavier S. Pedro <dev.git@javispedro.com>2014-09-15 01:53:44 +0200
committerJavier S. Pedro <dev.git@javispedro.com>2014-09-15 01:53:44 +0200
commitd9f140ec45f91a8567b6d8e2ce69fe853ae8b3a9 (patch)
tree8ba1186f98da2e5c06363c2dd44f65b5f6901bc7 /src/controller.cpp
parent9af5d200411adf947fdc1876bc76ce22789dde00 (diff)
downloadsalmeta-d9f140ec45f91a8567b6d8e2ce69fe853ae8b3a9.tar.gz
salmeta-d9f140ec45f91a8567b6d8e2ce69fe853ae8b3a9.zip
minimal notifications
Diffstat (limited to 'src/controller.cpp')
-rw-r--r--src/controller.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/controller.cpp b/src/controller.cpp
index f4a2b09..bd2b68b 100644
--- a/src/controller.cpp
+++ b/src/controller.cpp
@@ -1,5 +1,8 @@
#include <QtCore/QDebug>
#include <QtCore/QDateTime>
+#include <QtGui/QPainter>
+
+#include <sailfishapp.h>
#include "controller.h"
@@ -25,6 +28,7 @@ Controller::Controller(const QString &settingsPrefix, QQuickView *view, QObject
_curPage = _settings->value(setting_cur_page).toInt();
connect(_settings, &MDConfGroup::valueChanged, this, &Controller::handleSettingChanged);
+ connect(_monitor, &NotificationMonitor::incomingNotification, this, &Controller::handleIncomingNotification);
connect(_widgets, &QAbstractItemModel::dataChanged, this, &Controller::handleWidgetChanged);
connectToAddress(_settings->value(setting_address).toString());
@@ -189,6 +193,23 @@ void Controller::handleMetaWatchBatteryStatus(bool charging, int charge)
}
}
+void Controller::handleIncomingNotification(const QString &sender, const QIcon &icon, const QString &summary, const QString &body)
+{
+ QImage image(96, 96, QImage::Format_MonoLSB);
+ QPainter p(&image);
+
+ p.drawImage(0, 0, QImage(SailfishApp::pathTo("qml/watch/notification.png").toLocalFile()));
+ icon.paint(&p, 0, 96 - 24, 24, 24, Qt::AlignLeft | Qt::AlignBottom);
+
+ p.drawText(QRect(2, 26, 92, 55), Qt::AlignLeft | Qt::AlignTop, body);
+
+ image.invertPixels();
+
+ _metawatch->sendModeImage(MetaWatch::WatchModeNotification, image);
+ _metawatch->updateLcdDisplayMode(MetaWatch::WatchModeNotification);
+ _metawatch->setVibrateMode(true, 500, 500, 2);
+}
+
void Controller::handleWidgetChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector<int> &roles)
{
if (roles.indexOf(WidgetInfoModel::UrlRole) >= 0) {