From a7d863842bb3235a3e201e73dc19a8c9c1e2dc3c Mon Sep 17 00:00:00 2001 From: hanzes Date: Mon, 1 Feb 2010 15:43:00 +0000 Subject: [PATCH] Alarm dbus connection added --- src/alarm/alarm.cpp | 34 ++++++++++++-------- src/alarm/alarm.pro | 4 --- src/{alarm => app}/alarmdbus.cpp | 0 src/{alarm => app}/alarmdbus.h | 0 src/{alarm => app}/alarmdbusadaptor.cpp | 0 src/{alarm => app}/alarmdbusadaptorp.h | 0 src/app/app.pro | 10 ++++-- src/app/main.cpp | 41 ++++++++++++++----------- src/mvc/mvc.pro | 6 ++-- src/mvc/treeview.cpp | 4 +-- src/src.pro | 3 +- 11 files changed, 58 insertions(+), 44 deletions(-) rename src/{alarm => app}/alarmdbus.cpp (100%) rename src/{alarm => app}/alarmdbus.h (100%) rename src/{alarm => app}/alarmdbusadaptor.cpp (100%) rename src/{alarm => app}/alarmdbusadaptorp.h (100%) diff --git a/src/alarm/alarm.cpp b/src/alarm/alarm.cpp index 333ed34..73d5056 100644 --- a/src/alarm/alarm.cpp +++ b/src/alarm/alarm.cpp @@ -4,7 +4,7 @@ #include #include -#include +#include #include @@ -29,18 +29,28 @@ int Alarm::addAlarm(int aEventId, const QDateTime &aDateTime) 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.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"); + QFileInfo fi(*qApp->argv()); + QString name(fi.fileName()); - // DBus arguments for the action - alarm_action_set_dbus_args(act, DBUS_TYPE_INT32, &aEventId, DBUS_TYPE_INVALID); + QString command = QDir::currentPath() + "/" + name + QString(" %1").arg(QString::number(aEventId)); + //QString command = *qApp->argv() + QString(" %1").arg(QString::number(aEventId)); + alarm_action_set_exec_command(act, command.toLocal8Bit().data()); + act->flags |= ALARM_ACTION_TYPE_EXEC; + act->flags |= ALARM_ACTION_WHEN_RESPONDED; + act->flags |= ALARM_ACTION_EXEC_ADD_COOKIE; // adds assigned cookie at the end of command string + +// // 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.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, DBUS_TYPE_INT32, &aEventId, DBUS_TYPE_INVALID); // act->flags |= ALARM_ACTION_TYPE_EXEC; // alarm_action_set_exec_command(act, command.toLocal8Bit().data()); diff --git a/src/alarm/alarm.pro b/src/alarm/alarm.pro index 94838c8..0db75aa 100644 --- a/src/alarm/alarm.pro +++ b/src/alarm/alarm.pro @@ -9,12 +9,8 @@ LIBS += -lalarm DEPENDPATH += . HEADERS += alarm.h \ - alarmdbus.h \ - alarmdbusadaptorp.h SOURCES += alarm.cpp \ - alarmdbus.cpp \ - alarmdbusadaptor.cpp INCLUDEPATH += ../gui \ ../mvc \ diff --git a/src/alarm/alarmdbus.cpp b/src/app/alarmdbus.cpp similarity index 100% rename from src/alarm/alarmdbus.cpp rename to src/app/alarmdbus.cpp diff --git a/src/alarm/alarmdbus.h b/src/app/alarmdbus.h similarity index 100% rename from src/alarm/alarmdbus.h rename to src/app/alarmdbus.h diff --git a/src/alarm/alarmdbusadaptor.cpp b/src/app/alarmdbusadaptor.cpp similarity index 100% rename from src/alarm/alarmdbusadaptor.cpp rename to src/app/alarmdbusadaptor.cpp diff --git a/src/alarm/alarmdbusadaptorp.h b/src/app/alarmdbusadaptorp.h similarity index 100% rename from src/alarm/alarmdbusadaptorp.h rename to src/app/alarmdbusadaptorp.h diff --git a/src/app/app.pro b/src/app/app.pro index dfcd95b..7d2d479 100644 --- a/src/app/app.pro +++ b/src/app/app.pro @@ -2,7 +2,7 @@ include(../global.pri) TEMPLATE = app TARGET = fosdem-schedule DESTDIR = ../bin -QT += sql xml network dbus +QT += sql xml network dbus # module dependencies LIBS += -L$$DESTDIR -lgui -lmvc -lsql @@ -16,10 +16,14 @@ maemo { TARGETDEPS += $$DESTDIR/libqalarm.a } -HEADERS += appsettings.h +HEADERS += appsettings.h \ + alarmdbus.h \ + alarmdbusadaptorp.h SOURCES += main.cpp \ - appsettings.cpp + appsettings.cpp \ + alarmdbus.cpp \ + alarmdbusadaptor.cpp RESOURCES += ../icons.qrc \ ../maps.qrc \ diff --git a/src/app/main.cpp b/src/app/main.cpp index 791add4..acd5e06 100644 --- a/src/app/main.cpp +++ b/src/app/main.cpp @@ -1,14 +1,16 @@ #include #include +#include + +#include "eventdialog.h" + #ifdef MAEMO //#include #include #include #endif /* MAEMO */ -#include - int main(int argc, char *argv[]) { @@ -22,38 +24,41 @@ int main(int argc, char *argv[]) SqlEngine::initialize(); // creates "SQLITE" DB connection QWidget *window; -#ifdef MAEMO - // if the app is run with two cmd-line arguments - // 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 - window = new MainWindow; -#else + window = new MainWindow; -#endif /* MAEMO */ - window->show(); + #ifdef MAEMO // 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"; + if(argc>1) + { + QDBusInterface *interface = new QDBusInterface("org.fosdem.schedule", + "/Fosdem", + "org.fosdem.schedule.AlarmInterface", + connection); + interface->call("Alarm",atoi(argv[1])); + return 0; + } } } + + if(argc > 1) + { + EventDialog dialog(atoi(argv[1]),window); + dialog.exec(); + } #endif + window->show(); + return a.exec(); } diff --git a/src/mvc/mvc.pro b/src/mvc/mvc.pro index 03cea46..53c0973 100644 --- a/src/mvc/mvc.pro +++ b/src/mvc/mvc.pro @@ -3,7 +3,7 @@ TEMPLATE = lib TARGET = mvc DESTDIR = ../bin CONFIG += static -QT += sql +QT += sql # module dependencies LIBS += -L$$DESTDIR \ @@ -26,11 +26,11 @@ HEADERS += event.h \ delegate.h \ eventmodel.h \ treeview.h \ - room.h + room.h SOURCES += event.cpp \ conference.cpp \ track.cpp \ delegate.cpp \ eventmodel.cpp \ treeview.cpp \ - room.cpp + room.cpp diff --git a/src/mvc/treeview.cpp b/src/mvc/treeview.cpp index 5fd63ee..f0d8aab 100644 --- a/src/mvc/treeview.cpp +++ b/src/mvc/treeview.cpp @@ -97,8 +97,8 @@ bool TreeView::testForControlClicked(const QModelIndex &aIndex, const QPoint &aP #ifdef MAEMO // add alarm to the 'alarmd' Alarm alarm; - //int cookie = alarm.addAlarm(event.id(),QDateTime::currentDateTime().addSecs(10)); // testing - int cookie = alarm.addAlarm(event.id(),event.start().addSecs(-15*60)); // 15 minutes before real start + int cookie = alarm.addAlarm(event.id(),QDateTime::currentDateTime().addSecs(10)); // testing + //int cookie = alarm.addAlarm(event.id(),event.start().addSecs(-15*60)); // 15 minutes before real start qDebug() << "cookie: " << cookie; #endif /* MAEMO */ } diff --git a/src/src.pro b/src/src.pro index 1aa5f8f..dd3c615 100644 --- a/src/src.pro +++ b/src/src.pro @@ -1,8 +1,7 @@ include(global.pri) TEMPLATE = subdirs -SUBDIRS += orm mvc sql gui maemo : SUBDIRS += alarm -SUBDIRS += app +SUBDIRS += orm sql mvc gui app #SUBDIRS += test CONFIG += ordered -- 2.39.5