/* * Copyright (C) 2014 Christian Mollekopf * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the * Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "resourcefacade.h" #include #include DummyResourceConfigFacade::DummyResourceConfigFacade() : Akonadi2::StoreFacade() { } DummyResourceConfigFacade::~DummyResourceConfigFacade() { } QSharedPointer DummyResourceConfigFacade::getSettings() { //FIXME deal with resource instances const QString instanceIdentifier = "dummyresource.instance1"; //FIXME Use config location return QSharedPointer::create(QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) + "/akonadi2/" + "org.kde." + instanceIdentifier + "/settings.ini", QSettings::IniFormat); } KAsync::Job DummyResourceConfigFacade::create(const Akonadi2::ApplicationDomain::AkonadiResource &domainObject) { //TODO create resource instance //This can be generalized in a base implementation return KAsync::null(); } KAsync::Job DummyResourceConfigFacade::modify(const Akonadi2::ApplicationDomain::AkonadiResource &domainObject) { //modify configuration //This part is likely resource specific, but could be partially generalized return KAsync::start([domainObject, this]() { auto settings = getSettings(); //TODO Write properties to file }); } KAsync::Job DummyResourceConfigFacade::remove(const Akonadi2::ApplicationDomain::AkonadiResource &domainObject) { //TODO remove resource instance //This can be generalized in a base implementation return KAsync::null(); } KAsync::Job DummyResourceConfigFacade::load(const Akonadi2::Query &query, const QSharedPointer > &resultProvider) { //Read configuration and list all available instances. //This includes runtime information about runing instances etc. //Part of this is generic, and part is accessing the resource specific configuration. //FIXME this currently does not support live queries (because we're not inheriting from GenericFacade) //FIXME only read what was requested in the query? return KAsync::start([resultProvider, this]() { auto settings = getSettings(); auto memoryAdaptor = QSharedPointer::create(); //TODO copy settings to adaptor // //TODO use correct instance identifier //TODO key == instance identifier ? resultProvider->add(QSharedPointer::create("org.kde.dummy.instance1", "org.kde.dummy.config", 0, memoryAdaptor)); }); }