From 130979401e16e3b199ebb2ededc8f2396ce81f49 Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Thu, 18 Feb 2016 08:59:57 +0100 Subject: Attempt to integrate Fahrplan's calendar support --- rockpool.pro | 7 +++++++ .../sailfish/organizeradapter.cpp | 24 ++++++++++++++++++++++ .../sailfish/organizeradapter.h | 11 ++++++++++ rockworkd/rockworkd.pro | 3 +++ rpm/rockpool.spec | 2 ++ rpm/rockpool.yaml | 2 ++ 6 files changed, 49 insertions(+) diff --git a/rockpool.pro b/rockpool.pro index 88ea7a8..d38aaf6 100644 --- a/rockpool.pro +++ b/rockpool.pro @@ -5,3 +5,10 @@ OTHER_FILES += \ rpm/rockpool.spec \ rpm/rockpool.yaml \ rpm/rockpool.changes + +# TODO: +# Merge in latest changes from rockwork release +# Migrate VoiceCallManager over to replace callchannelobserver +# Dismiss notifications +# Integrate calendar +# Alarms? diff --git a/rockworkd/platformintegration/sailfish/organizeradapter.cpp b/rockworkd/platformintegration/sailfish/organizeradapter.cpp index 8851fa5..416aad2 100644 --- a/rockworkd/platformintegration/sailfish/organizeradapter.cpp +++ b/rockworkd/platformintegration/sailfish/organizeradapter.cpp @@ -4,6 +4,8 @@ #include #include #include +# include +# include QTORGANIZER_USE_NAMESPACE @@ -21,6 +23,28 @@ OrganizerAdapter::OrganizerAdapter(QObject *parent) : QObject(parent) m_manager = new QOrganizerManager(envManager); m_manager->setParent(this); connect(m_manager, &QOrganizerManager::dataChanged, this, &OrganizerAdapter::refresh); + + mKCal::ExtendedCalendar::Ptr calendar = mKCal::ExtendedCalendar::Ptr ( new mKCal::ExtendedCalendar( QLatin1String( "UTC" ) ) ); + mKCal::ExtendedStorage::Ptr storage = mKCal::ExtendedCalendar::defaultStorage( calendar ); + if (storage->open()) { + mKCal::Notebook::List notebooks = storage->notebooks(); + qDebug()<< "Notebooks: " + notebooks.count(); + for (int ii = 0; ii < notebooks.count(); ++ii) { + if (!notebooks.at(ii)->isReadOnly()) { + m_calendars << CalendarInfo(normalizeCalendarName(notebooks.at(ii)->name()), notebooks.at(ii)->uid()); + qDebug()<< "Notebook: " << notebooks.at(ii)->name() << notebooks.at(ii)->uid(); + } + } + } +} + +QString OrganizerAdapter::normalizeCalendarName(QString name) +{ + if (name == "qtn_caln_personal_caln") { + return tr("Personal"); + } + + return name; } void OrganizerAdapter::refresh() diff --git a/rockworkd/platformintegration/sailfish/organizeradapter.h b/rockworkd/platformintegration/sailfish/organizeradapter.h index 2ce8e4d..04ebfa3 100644 --- a/rockworkd/platformintegration/sailfish/organizeradapter.h +++ b/rockworkd/platformintegration/sailfish/organizeradapter.h @@ -11,6 +11,15 @@ QTORGANIZER_USE_NAMESPACE +struct CalendarInfo +{ + QString name; + QString notebookUID; + + CalendarInfo(const QString &name, const QString ¬ebookUID = QString()) + : name(name), notebookUID(notebookUID) {} +}; + class OrganizerAdapter : public QObject { Q_OBJECT @@ -18,6 +27,7 @@ public: explicit OrganizerAdapter(QObject *parent = 0); QList items() const; + QString normalizeCalendarName(QString name); public slots: void refresh(); @@ -28,6 +38,7 @@ signals: private: QOrganizerManager *m_manager; QList m_items; + QList m_calendars; }; #endif // ORGANIZERADAPTER_H diff --git a/rockworkd/rockworkd.pro b/rockworkd/rockworkd.pro index 888fefc..c56751f 100644 --- a/rockworkd/rockworkd.pro +++ b/rockworkd/rockworkd.pro @@ -12,6 +12,9 @@ CONFIG += link_pkgconfig INCLUDEPATH += /usr/include/telepathy-qt5/ $$[QT_HOST_PREFIX]/include/quazip/ LIBS += -lquazip -ltelepathy-qt5 +PKGCONFIG += libmkcal-qt5 libkcalcoren-qt5 +INCLUDEPATH += /usr/include/mkcal-qt5 /usr/include/kcalcoren-qt5 + SOURCES += main.cpp \ libpebble/watchconnection.cpp \ libpebble/pebble.cpp \ diff --git a/rpm/rockpool.spec b/rpm/rockpool.spec index 4e4365a..57e470b 100644 --- a/rpm/rockpool.spec +++ b/rpm/rockpool.spec @@ -37,6 +37,8 @@ BuildRequires: pkgconfig(mlite5) BuildRequires: pkgconfig(sailfishapp) >= 0.0.10 BuildRequires: pkgconfig(icu-i18n) BuildRequires: pkgconfig(zlib) +BuildRequires: pkgconfig(libmkcal-qt5) +BuildRequires: pkgconfig(libkcalcoren-qt5) BuildRequires: desktop-file-utils %description diff --git a/rpm/rockpool.yaml b/rpm/rockpool.yaml index 5ec39ca..6d17a53 100644 --- a/rpm/rockpool.yaml +++ b/rpm/rockpool.yaml @@ -27,6 +27,8 @@ PkgConfigBR: - sailfishapp >= 0.0.10 - icu-i18n - zlib +- libmkcal-qt5 +- libkcalcoren-qt5 Requires: - sailfishsilica-qt5 >= 0.10.9 - systemd-user-session-targets -- cgit v1.2.3