1 /* 2 SPDX-FileCopyrightText: 2008 Bertjan Broeksema <b.broeksema@kdemail.org> 3 SPDX-FileCopyrightText: 2008 Volker Krause <vkrause@kde.org> 4 5 SPDX-License-Identifier: LGPL-2.0-or-later 6 */ 7 8 #pragma once 9 10 #include "akonadi-singlefileresource_export.h" 11 #include "singlefileresourceconfigwidgetbase.h" 12 13 #include <KConfigDialogManager> 14 15 namespace Akonadi 16 { 17 /** 18 * Configuration widget for single file resources. 19 */ 20 template<typename Settings> class SingleFileResourceConfigWidget : public SingleFileResourceConfigWidgetBase 21 { 22 Settings *mSettings = nullptr; 23 24 public: SingleFileResourceConfigWidget(QWidget * parent,Settings * settings)25 explicit SingleFileResourceConfigWidget(QWidget *parent, Settings *settings) 26 : SingleFileResourceConfigWidgetBase(parent) 27 , mSettings(settings) 28 { 29 mManager = new KConfigDialogManager(this, mSettings); 30 } 31 save()32 bool save() const override 33 { 34 mManager->updateSettings(); 35 mSettings->setPath(ui.kcfg_Path->url().toString()); 36 mSettings->save(); 37 return true; 38 } 39 load()40 void load() override 41 { 42 ui.kcfg_Path->setUrl(QUrl::fromUserInput(mSettings->path())); 43 mManager = new KConfigDialogManager(this, mSettings); 44 mManager->updateWidgets(); 45 } 46 }; 47 } 48 49