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