1 #include "timedateprovider.h"
4 TimeDateProvider::TimeDateProvider(QObject *parent) :
7 mp_dBusStatusBarProxy(0),
8 m_statusBarPlaceholder(-1)
10 qDebug("D-Bus: register as org.agl.SampleAppTimeDate");
12 QDBusConnection dbus = QDBusConnection::sessionBus();
14 dbus.registerObject("/", this);
15 dbus.registerService("org.agl.sampleapptimedate");
18 qDebug("D-Bus: connect to org.agl.mainwindow /StatusBar");
19 mp_dBusStatusBarProxy = new org::agl::statusbar("org.agl.homescreen",
21 QDBusConnection::sessionBus(),
25 TimeDateProvider::~TimeDateProvider()
29 if (0 != mp_dBusStatusBarProxy)
32 mp_dBusStatusBarProxy->setStatusText(1, "");
33 delete mp_dBusStatusBarProxy;
37 void TimeDateProvider::start()
39 qDebug("trying to start timer (if this lasts long, maybe the Home Screen Application is not launched.");
40 if ((-1 == m_statusBarPlaceholder) && (0 != mp_dBusStatusBarProxy))
42 QList<int> availablePlaceholder = mp_dBusStatusBarProxy->getAvailablePlaceholders();
43 if (availablePlaceholder.size() > 0)
45 // just take the first available placeholder
46 m_statusBarPlaceholder = availablePlaceholder[0];
47 qDebug("- using statusbar placeholder %d", m_statusBarPlaceholder);
49 qDebug("- timer started");
50 // callback every second
51 m_secondsTimerId = startTimer(1000);
56 void TimeDateProvider::stop()
58 if (-1 != m_secondsTimerId)
60 killTimer(m_secondsTimerId);
61 m_secondsTimerId = -1;
62 m_statusBarPlaceholder = -1;
66 void TimeDateProvider::timerEvent(QTimerEvent *e)
68 if (e->timerId() == m_secondsTimerId)
70 if (0 != mp_dBusStatusBarProxy)
72 QString toDisplay = QDateTime::currentDateTime().toString("hh:mm");
73 qDebug("%s", toDisplay.toStdString().c_str());
74 mp_dBusStatusBarProxy->setStatusText(m_statusBarPlaceholder, toDisplay);