Pimcommon

configurepluginswidget.cpp
1/*
2 SPDX-FileCopyrightText: 2016-2024 Laurent Montel <montel@kde.org>
3
4 SPDX-License-Identifier: GPL-2.0-or-later
5*/
6
7#include "configurepluginswidget.h"
8#include "configurepluginslistwidget.h"
9
10#include <KConfigGroup>
11#include <KLocalizedString>
12#include <KMessageWidget>
13#include <KSharedConfig>
14
15#include <QSplitter>
16#include <QTextEdit>
17#include <QVBoxLayout>
18
19using namespace PimCommon;
20
21ConfigurePluginsWidget::ConfigurePluginsWidget(QWidget *parent)
22 : QWidget(parent)
23{
24 initLayout();
25}
26
27ConfigurePluginsWidget::ConfigurePluginsWidget(ConfigurePluginsListWidget *configurePluginListWidget, QWidget *parent)
28 : QWidget(parent)
29{
30 initLayout(configurePluginListWidget);
31}
32
33ConfigurePluginsWidget::~ConfigurePluginsWidget()
34{
35 writeConfig();
36}
37
38void ConfigurePluginsWidget::initLayout(ConfigurePluginsListWidget *configurePluginListWidget)
39{
40 auto layout = new QVBoxLayout(this);
42
43 mMessageWidget = new KMessageWidget(i18n("Restart is necessary for applying the changes."), this);
44 mMessageWidget->setObjectName(QLatin1StringView("mMessageWidget"));
45 mMessageWidget->setCloseButtonVisible(false);
46 mMessageWidget->setVisible(false);
47 mMessageWidget->setPosition(KMessageWidget::Header);
48 layout->addWidget(mMessageWidget);
49
50 mSplitter = new QSplitter(this);
51 mSplitter->setObjectName(QLatin1StringView("splitter"));
52 mSplitter->setChildrenCollapsible(false);
53 layout->addWidget(mSplitter);
54
55 if (!configurePluginListWidget) {
56 mConfigureListWidget = new ConfigurePluginsListWidget(this);
57 } else {
58 mConfigureListWidget = configurePluginListWidget;
59 }
60 mConfigureListWidget->setObjectName(QLatin1StringView("configureListWidget"));
61 mSplitter->addWidget(mConfigureListWidget);
62
63 mDescription = new QTextEdit(this);
64 mDescription->setObjectName(QLatin1StringView("description"));
65 mDescription->setReadOnly(true);
66
67 mSplitter->addWidget(mDescription);
68
69 connect(mConfigureListWidget, &ConfigurePluginsListWidget::descriptionChanged, mDescription, &QTextEdit::setText);
70 connect(mConfigureListWidget, &ConfigurePluginsListWidget::changed, this, &ConfigurePluginsWidget::slotConfigChanged);
71
72 initialize();
73 readConfig();
74}
75
76void ConfigurePluginsWidget::slotConfigChanged()
77{
78 mMessageWidget->animatedShow();
79 Q_EMIT changed();
80}
81
82void ConfigurePluginsWidget::save()
83{
84 mConfigureListWidget->save();
85}
86
87void ConfigurePluginsWidget::defaults()
88{
89 mConfigureListWidget->defaults();
90}
91
92void ConfigurePluginsWidget::doLoadFromGlobalSettings()
93{
94 mConfigureListWidget->doLoadFromGlobalSettings();
95}
96
97void ConfigurePluginsWidget::doResetToDefaultsOther()
98{
99 mConfigureListWidget->doResetToDefaultsOther();
100}
101
102void ConfigurePluginsWidget::readConfig()
103{
104 KConfigGroup group(KSharedConfig::openStateConfig(), QStringLiteral("ConfigurePluginsWidget"));
105 const QList<int> size = {400, 100};
106 mSplitter->setSizes(group.readEntry("splitter", size));
107}
108
109void ConfigurePluginsWidget::writeConfig()
110{
111 KConfigGroup group(KSharedConfig::openStateConfig(), QStringLiteral("ConfigurePluginsWidget"));
112 group.writeEntry("splitter", mSplitter->sizes());
113}
114
115void ConfigurePluginsWidget::initialize()
116{
117 mConfigureListWidget->initialize();
118}
119
120#include "moc_configurepluginswidget.cpp"
void setCloseButtonVisible(bool visible)
void animatedShow()
void setPosition(Position position)
static KSharedConfig::Ptr openStateConfig(const QString &fileName=QString())
The ConfigurePluginsListWidget class.
QString i18n(const char *text, const TYPE &arg...)
folderdialogacltab.h
void addWidget(QWidget *w)
void setContentsMargins(const QMargins &margins)
Q_EMITQ_EMIT
QMetaObject::Connection connect(const QObject *sender, PointerToMemberFunction signal, Functor functor)
void setObjectName(QAnyStringView name)
void addWidget(QWidget *widget)
void setChildrenCollapsible(bool)
void setSizes(const QList< int > &list)
QList< int > sizes() const const
void setReadOnly(bool ro)
void setText(const QString &text)
QLayout * layout() const const
virtual void setVisible(bool visible)
This file is part of the KDE documentation.
Documentation copyright © 1996-2024 The KDE developers.
Generated on Tue Mar 26 2024 11:17:23 by doxygen 1.10.0 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.