#include <QApplication>
#include <QDir>
+#include <QDebug>
+
+#include <dbus-1.0/dbus/dbus-protocol.h>
int Alarm::addAlarm(int aEventId, const QDateTime &aDateTime)
{
alarm_event_set_alarm_appid(eve, APPID);
/* for Deleting purposes */
- alarm_event_set_message(eve, QString::number(aEventId).toLocal8Bit().data());
+ alarm_event_set_message(eve, QString::number(aEventId).toLocal8Bit().data());
/* Use absolute time triggering */
eve->alarm_time = time(0) + 5; //aDateTime.toTime_t();
eve->flags = ALARM_EVENT_BOOT;
- QString command = QDir::currentPath() + "/" + *qApp->argv() +
- QString(" %1").arg(QString::number(aEventId));
-
/* Add exec command action */
act = alarm_event_add_actions(eve, 1);
alarm_action_set_label(act, "FOSDEM'10");
// setup this action to be a "DBus command"
act->flags |= ALARM_ACTION_WHEN_RESPONDED;
act->flags |= ALARM_ACTION_TYPE_DBUS;
-
- // DBus params for this action
- alarm_action_set_dbus_interface(act, "org.freedesktop.Notifications");
- alarm_action_set_dbus_service(act, "org.freedesktop.Notifications");
- alarm_action_set_dbus_path(act, "/org/freedesktop/Notifications");
- alarm_action_set_dbus_name(act, "SystemNoteDialog");
-
+
+ // DBus params for this action
+ alarm_action_set_dbus_interface(act, "org.fosdem.schedule.AlarmInterface");
+ alarm_action_set_dbus_service(act, "org.fosdem.schedule");
+ alarm_action_set_dbus_path(act, "/Fosdem");
+ alarm_action_set_dbus_name(act, "Alarm");
+
// DBus arguments for the action
- alarm_action_set_dbus_args(act, aEventId);
+ alarm_action_set_dbus_args(act, DBUS_TYPE_INT32, &aEventId, DBUS_TYPE_INVALID);
// act->flags |= ALARM_ACTION_TYPE_EXEC;
// alarm_action_set_exec_command(act, command.toLocal8Bit().data());
// alarm_event_set_icon(eve, "fosdem");
// alarm_event_set_title(eve, "FOSDEM'10");
- // adds assigned cookie at the end of command string
- // act->flags |= ALARM_ACTION_EXEC_ADD_COOKIE;
+ // adds assigned cookie at the end of command string
+ // act->flags |= ALARM_ACTION_EXEC_ADD_COOKIE;
/* Add stop button action */
/* TODO: send a DBus message to remove that alarm from database */
alarm_action_set_label(act, "Stop");
act->flags |= ALARM_ACTION_WHEN_RESPONDED;
act->flags |= ALARM_ACTION_TYPE_NOP;
-
+
/* Add snooze button action */
act = alarm_event_add_actions(eve, 1);
alarm_action_set_label(act, "Snooze");
TEMPLATE = lib
TARGET = qalarm
DESTDIR = ../bin
-CONFIG += static
+CONFIG += static qdbus
+QT += sql dbus
# module dependencies
LIBS += -lalarm
DEPENDPATH += .
-HEADERS += alarm.h
+HEADERS += alarm.h \
+ alarmdbus.h \
+ alarmdbusadaptorp.h
+
+SOURCES += alarm.cpp \
+ alarmdbus.cpp \
+ alarmdbusadaptor.cpp
+
+INCLUDEPATH += ../gui \
+ ../mvc \
+ ../orm \
+ ../sql
+
-SOURCES += alarm.cpp
--- /dev/null
+
+#include "alarmdbus.h"
+#include "eventdialog.h"
+
+
+
+
+CAlarmDBus::CAlarmDBus(QWidget * aParent)
+ : QObject(),
+ mParent(aParent)
+{
+ // constructor
+ //setAutoRelaySignals(true);
+}
+
+CAlarmDBus::~CAlarmDBus()
+{
+ // destructor
+}
+
+void CAlarmDBus::Alarm(int aEventId)
+{
+ EventDialog dialog(aEventId,mParent);
+ dialog.exec();
+
+}
--- /dev/null
+#ifndef SINGLE_INSTANCE_H
+#define SINGLE_INSTANCE_H
+
+#include <QObject>
+#include <QtDBus/QtDBus>
+
+class CAlarmDBus: public QObject
+{
+ Q_OBJECT
+ Q_CLASSINFO("D-Bus Interface", "org.fosdem.schedule")
+
+public:
+ CAlarmDBus(QWidget * aParent);
+ virtual ~CAlarmDBus();
+
+public: // PROPERTIES
+public Q_SLOTS: // METHODS
+ void Alarm(int aEventId);
+private:
+ QWidget * mParent;
+};
+
+
+#endif // SINGLE_INSTANCE_H
--- /dev/null
+/*
+ * This file was generated by dbusxml2cpp version 0.6
+ * Command line was: dbusxml2cpp -c CarAdaptor -a car_adaptor_p.h:car_adaptor.cpp car.xml
+ *
+ * dbusxml2cpp is Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+ *
+ * This is an auto-generated file.
+ * Do not edit! All changes made to it will be lost.
+ */
+
+#include "alarmdbusadaptorp.h"
+#include <QtCore/QMetaObject>
+#include <QtCore/QByteArray>
+#include <QtCore/QList>
+#include <QtCore/QMap>
+#include <QtCore/QString>
+#include <QtCore/QStringList>
+#include <QtCore/QVariant>
+
+/*
+ * Implementation of adaptor class CarAdaptor
+ */
+
+AlarmDBusAdaptor::AlarmDBusAdaptor(QObject *parent)
+ : QDBusAbstractAdaptor(parent)
+{
+ // constructor
+ setAutoRelaySignals(true);
+}
+
+AlarmDBusAdaptor::~AlarmDBusAdaptor()
+{
+ // destructor
+}
+
+void AlarmDBusAdaptor::Alarm(int aEventId)
+{
+ // handle method call com.trolltech.Examples.CarInterface.accelerate
+ QMetaObject::invokeMethod(parent(), "Alarm",Q_ARG(int, aEventId));
+}
+
+
--- /dev/null
+/*
+ * This file was generated by dbusxml2cpp version 0.6
+ * Command line was: dbusxml2cpp -c CarAdaptor -a car_adaptor_p.h:car_adaptor.cpp car.xml
+ *
+ * dbusxml2cpp is Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
+ *
+ * This is an auto-generated file.
+ * This file may have been hand-edited. Look for HAND-EDIT comments
+ * before re-generating it.
+ */
+
+#ifndef ALARM_DBUS_ADAPTOR_P_H
+#define ALARM_DBUS_ADAPTOR_P_H
+
+#include <QtCore/QObject>
+#include <QtDBus/QtDBus>
+
+QT_BEGIN_NAMESPACE
+class QByteArray;
+template<class T> class QList;
+template<class Key, class Value> class QMap;
+class QString;
+class QStringList;
+class QVariant;
+QT_END_NAMESPACE
+
+/*
+ * Adaptor class for interface com.trolltech.Examples.CarInterface
+ */
+class AlarmDBusAdaptor: public QDBusAbstractAdaptor
+{
+ Q_OBJECT
+ Q_CLASSINFO("D-Bus Interface", "org.fosdem.schedule.AlarmInterface")
+ Q_CLASSINFO("D-Bus Introspection", ""
+" <interface name=\"org.fosdem.schedule.AlarmInterface\" >\n"
+" <method name=\"Alarm\">\n"
+" <arg name=\"aEventId\" type=\"i\" direction=\"in\"/>\n"
+" </method>\n"
+" </interface>\n"
+ "")
+public:
+ AlarmDBusAdaptor(QObject *parent);
+ virtual ~AlarmDBusAdaptor();
+
+public: // PROPERTIES
+public Q_SLOTS: // METHODS
+ void Alarm(int aEventId);
+};
+
+#endif
TEMPLATE = app
TARGET = fosdem-schedule
DESTDIR = ../bin
-QT += sql xml network
+QT += sql xml network dbus
# module dependencies
LIBS += -L$$DESTDIR -lgui -lmvc -lsql
#include <mainwindow.h>
#include <QtGui/QApplication>
-#ifdef MAEMO
-#include <alarmdialog.h>
-#endif /* MAEMO */
+//#ifdef MAEMO
+//#include <alarmdialog.h>
+//#endif /* MAEMO */
#include <sqlengine.h>
+#include "alarmdbus.h"
+#include "alarmdbusadaptorp.h"
+
int main(int argc, char *argv[])
{
Q_INIT_RESOURCE(icons);
// an alarm dialog is to be displayed
// Usage: $ ./fosdem eventId alarmId
// Example: $ ./fosdem 521 13
- if(argc==3)
- window = new AlarmDialog(argc,argv);
- else if(argc==2) // display Event dialog automatically
- window = new MainWindow(atoi(argv[1])); // eventId = argv[1]
- else
+// if(argc==3)
+// window = new AlarmDialog(argc,argv);
+// else if(argc==2) // display Event dialog automatically
+// window = new MainWindow(atoi(argv[1])); // eventId = argv[1]
+// else
window = new MainWindow;
#else
window = new MainWindow;
#endif /* MAEMO */
window->show();
+
+ // Alarm Dbus
+
+ CAlarmDBus *alarmDBus = new CAlarmDBus(window);
+ new AlarmDBusAdaptor(alarmDBus);
+ //QDBusConnection connection = QDBusConnection::sessionBus();
+ QDBusConnection connection = QDBusConnection::sessionBus();
+
+ if(connection.registerObject("/Fosdem", alarmDBus) == true)
+ {
+ if( connection.registerService("org.fosdem.schedule") == false)
+ {
+ qDebug() << "dbus register service failed";
+ }
+ }
+
return a.exec();
}
mapwindow.cpp \
proxysettingsdialog.cpp
-maemo {
- FORMS += alarmdialog.ui
- HEADERS += alarmdialog.h
- SOURCES += alarmdialog.cpp
-}
+#maemo {
+# FORMS += alarmdialog.ui
+# HEADERS += alarmdialog.h
+# SOURCES += alarmdialog.cpp
+#}
}
// returns bool if some Control was clicked
-bool TreeView::testForControlClicked(const QModelIndex &aIndex, const QPoint &aPoint)
+bool TreeView::testForControlClicked(const QModelIndex &aIndex, const QPoint &aPoint)
{
bool handled = false;
// have to emit 'eventHasChanged' signal on all events in conflict
for(int i=0; i<conflicts.count(); i++)
emit(eventHasChanged(conflicts[i].id()));
-
+
// since the Favourite icon has changed, update TreeViews accordingly
// all TreeViews have to listen on this signal
emit(eventHasChanged(event.id(),true));
{
if(!index.parent().isValid()) // time-group
{
- if(isExpanded(index))
+ if(isExpanded(index))
setExpanded(index, false);
else
setExpanded(index, true);
include(global.pri)
TEMPLATE = subdirs
-maemo : SUBDIRS += alarm
SUBDIRS += orm mvc sql gui app
+maemo : SUBDIRS += alarm
#SUBDIRS += test
CONFIG += ordered