summaryrefslogtreecommitdiff
path: root/rockworkd/platformintegration/sailfish
diff options
context:
space:
mode:
authorAndrew Branson <andrew.branson@cern.ch>2016-02-18 08:59:57 +0100
committerAndrew Branson <andrew.branson@cern.ch>2016-02-18 08:59:57 +0100
commit130979401e16e3b199ebb2ededc8f2396ce81f49 (patch)
treee88493b25cec5c33ea2d71adecf4e0e4ab96a43f /rockworkd/platformintegration/sailfish
parent0f3d090bd1dc9a6b912eb0b1e587602573304b4a (diff)
Attempt to integrate Fahrplan's calendar support
Diffstat (limited to 'rockworkd/platformintegration/sailfish')
-rw-r--r--rockworkd/platformintegration/sailfish/organizeradapter.cpp24
-rw-r--r--rockworkd/platformintegration/sailfish/organizeradapter.h11
2 files changed, 35 insertions, 0 deletions
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 <QDebug>
#include <QOrganizerEventOccurrence>
#include <QOrganizerItemDetail>
+# include <extendedcalendar.h>
+# include <extendedstorage.h>
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 &notebookUID = QString())
+ : name(name), notebookUID(notebookUID) {}
+};
+
class OrganizerAdapter : public QObject
{
Q_OBJECT
@@ -18,6 +27,7 @@ public:
explicit OrganizerAdapter(QObject *parent = 0);
QList<CalendarEvent> items() const;
+ QString normalizeCalendarName(QString name);
public slots:
void refresh();
@@ -28,6 +38,7 @@ signals:
private:
QOrganizerManager *m_manager;
QList<CalendarEvent> m_items;
+ QList<CalendarInfo> m_calendars;
};
#endif // ORGANIZERADAPTER_H