Pimcommon

configureplugindialog.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 "configureplugindialog.h"
8#include <KConfigGroup>
9#include <KSharedConfig>
10#include <KWindowConfig>
11#include <PimCommon/PimUtil>
12#include <QDialogButtonBox>
13#include <QPushButton>
14#include <QVBoxLayout>
15#include <QWindow>
16
17using namespace PimCommon;
18namespace
19{
20static const char myConfigurePluginDialogGroupName[] = "ConfigurePluginDialog";
21}
22
23ConfigurePluginDialog::ConfigurePluginDialog(QWidget *parent)
24 : QDialog(parent)
25{
26}
27
28ConfigurePluginDialog::~ConfigurePluginDialog()
29{
30 saveConfig();
31}
32
33void ConfigurePluginDialog::initLayout(bool addSpacer)
34{
35 auto layout = new QVBoxLayout(this);
36 layout->addWidget(createLayout());
37 if (addSpacer) {
38 layout->addStretch(1);
39 }
40
42 mButtonBox->setObjectName(QLatin1StringView("buttonBox"));
43 layout->addWidget(mButtonBox);
44 connect(mButtonBox, &QDialogButtonBox::accepted, this, &ConfigurePluginDialog::slotAccepted);
46 connect(mButtonBox, &QDialogButtonBox::helpRequested, this, &ConfigurePluginDialog::slotHelpClicked);
47 connect(mButtonBox->button(QDialogButtonBox::RestoreDefaults), &QPushButton::clicked, this, &ConfigurePluginDialog::slotRestoreDefaultClicked);
48 readConfig();
49 load();
50}
51
52void ConfigurePluginDialog::reset()
53{
54 // Reimplement it.
55}
56
57void ConfigurePluginDialog::help()
58{
59}
60
61QDialogButtonBox *ConfigurePluginDialog::buttonBox() const
62{
63 return mButtonBox;
64}
65
66void ConfigurePluginDialog::showHelp(const QString &name, const QString &anchor)
67{
68 PimCommon::Util::invokeHelp(name, anchor);
69}
70
71void ConfigurePluginDialog::slotHelpClicked()
72{
73 help();
74}
75
76void ConfigurePluginDialog::slotRestoreDefaultClicked()
77{
78 reset();
79}
80
81void ConfigurePluginDialog::slotAccepted()
82{
83 save();
84 accept();
85}
86
87void ConfigurePluginDialog::readConfig()
88{
89 create(); // ensure a window is created
90 windowHandle()->resize(QSize(600, 400));
91 KConfigGroup group(KSharedConfig::openStateConfig(), QLatin1StringView(myConfigurePluginDialogGroupName));
93 resize(windowHandle()->size()); // workaround for QTBUG-40584
94}
95
96void ConfigurePluginDialog::saveConfig()
97{
98 KConfigGroup group(KSharedConfig::openStateConfig(), QStringLiteral("ConfigurePluginDialog"));
99 group.writeEntry("Size", size());
100 group.sync();
101}
102
103#include "moc_configureplugindialog.cpp"
static KSharedConfig::Ptr openStateConfig(const QString &fileName=QString())
KCONFIGGUI_EXPORT void restoreWindowSize(QWindow *window, const KConfigGroup &config)
folderdialogacltab.h
void clicked(bool checked)
virtual void accept()
virtual void reject()
QPushButton * button(StandardButton which) const const
void addWidget(QWidget *w)
QMetaObject::Connection connect(const QObject *sender, PointerToMemberFunction signal, Functor functor)
void setObjectName(QAnyStringView name)
void create(WId window, bool initializeWindow, bool destroyOldWindow)
QLayout * layout() const const
void resize(const QSize &)
QWindow * windowHandle() const const
void resize(const QSize &newSize)
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.