1 /* 2 SPDX-FileCopyrightText: 2020-2021 Laurent Montel <montel@kde.org> 3 4 SPDX-License-Identifier: GPL-2.0-or-later 5 */ 6 7 #include "folderconfiguresettingswidget.h" 8 #include "folderconfiguresettingspagewidget.h" 9 #include "folderconfiguretreewidget.h" 10 #include <KConfigGroup> 11 #include <KSharedConfig> 12 #include <QHBoxLayout> 13 #include <QSplitter> 14 namespace 15 { 16 static const char myFolderConfigureSettingsWidgetGroupName[] = "FolderConfigureSettingsWidget"; 17 } FolderConfigureSettingsWidget(QWidget * parent)18FolderConfigureSettingsWidget::FolderConfigureSettingsWidget(QWidget *parent) 19 : QWidget(parent) 20 , mFolderConfigureTreeWidget(new FolderConfigureTreeWidget(this)) 21 , mFolderConfigureSettingsPageWidget(new FolderConfigureSettingsPageWidget(this)) 22 , mSplitter(new QSplitter(this)) 23 { 24 auto mainLayout = new QHBoxLayout(this); 25 mainLayout->setObjectName(QStringLiteral("mainLayout")); 26 mainLayout->setContentsMargins({}); 27 28 // TODO add label ? 29 30 mSplitter->setObjectName(QStringLiteral("splitter")); 31 mSplitter->setChildrenCollapsible(false); 32 mainLayout->addWidget(mSplitter); 33 34 mFolderConfigureTreeWidget->setObjectName(QStringLiteral("mFolderConfigureTreeWidget")); 35 mSplitter->addWidget(mFolderConfigureTreeWidget); 36 37 mFolderConfigureSettingsPageWidget->setObjectName(QStringLiteral("mFolderConfigureSettingsPageWidget")); 38 mSplitter->addWidget(mFolderConfigureSettingsPageWidget); 39 readConfig(); 40 } 41 ~FolderConfigureSettingsWidget()42FolderConfigureSettingsWidget::~FolderConfigureSettingsWidget() 43 { 44 saveConfig(); 45 } 46 save()47void FolderConfigureSettingsWidget::save() 48 { 49 const Akonadi::Collection::List collections = mFolderConfigureTreeWidget->listCollections(); 50 mFolderConfigureSettingsPageWidget->save(collections); 51 } 52 readConfig()53void FolderConfigureSettingsWidget::readConfig() 54 { 55 KConfigGroup grp(KSharedConfig::openStateConfig(), myFolderConfigureSettingsWidgetGroupName); 56 const QList<int> defaultSizes{200, 400}; 57 const QList<int> sizes = grp.readEntry("SplitterSize", defaultSizes); 58 mSplitter->setSizes(sizes); 59 } 60 saveConfig()61void FolderConfigureSettingsWidget::saveConfig() 62 { 63 const QList<int> sizes = mSplitter->sizes(); 64 KConfigGroup grp(KSharedConfig::openStateConfig(), myFolderConfigureSettingsWidgetGroupName); 65 grp.writeEntry("SplitterSize", sizes); 66 } 67