Messagelib

remotecontentconfiguredialog.cpp
1 /*
2  SPDX-FileCopyrightText: 2020-2023 Laurent Montel <[email protected]>
3 
4  SPDX-License-Identifier: LGPL-2.0-or-later
5 */
6 
7 #include "remotecontentconfiguredialog.h"
8 #include "remotecontentconfigurewidget.h"
9 #include <KConfigGroup>
10 #include <KLocalizedString>
11 #include <KSharedConfig>
12 #include <KWindowConfig>
13 #include <QDialogButtonBox>
14 #include <QVBoxLayout>
15 #include <QWindow>
16 
17 namespace
18 {
19 static const char myRemoteContentConfigureConfigGroupName[] = "RemoteContentConfigureDialog";
20 }
21 
22 using namespace MessageViewer;
23 RemoteContentConfigureDialog::RemoteContentConfigureDialog(QWidget *parent)
24  : QDialog(parent)
25  , mRemoteContentConfigureWidget(new RemoteContentConfigureWidget(this))
26 {
27  setWindowTitle(i18nc("@title:window", "Configure Remote Content"));
28  auto mainLayout = new QVBoxLayout(this);
29  mainLayout->setObjectName(QStringLiteral("mainLayout"));
30 
31  mRemoteContentConfigureWidget->setObjectName(QStringLiteral("mRemoteContentConfigureWidget"));
32  mainLayout->addWidget(mRemoteContentConfigureWidget);
33 
34  auto buttonBox = new QDialogButtonBox(QDialogButtonBox::Close, this);
35  buttonBox->setObjectName(QStringLiteral("buttonBox"));
36  connect(buttonBox, &QDialogButtonBox::accepted, this, &RemoteContentConfigureDialog::slotAccept);
37  connect(buttonBox, &QDialogButtonBox::rejected, this, &RemoteContentConfigureDialog::reject);
38  mainLayout->addWidget(buttonBox);
39  readConfig();
40 }
41 
42 RemoteContentConfigureDialog::~RemoteContentConfigureDialog()
43 {
44  writeConfig();
45 }
46 
47 void RemoteContentConfigureDialog::slotAccept()
48 {
49  mRemoteContentConfigureWidget->saveSettings();
50  accept();
51 }
52 
53 void RemoteContentConfigureDialog::readConfig()
54 {
55  create(); // ensure a window is created
56  windowHandle()->resize(QSize(600, 200));
57  KConfigGroup group(KSharedConfig::openStateConfig(), myRemoteContentConfigureConfigGroupName);
58  KWindowConfig::restoreWindowSize(windowHandle(), group);
59  resize(windowHandle()->size()); // workaround for QTBUG-40584
60 }
61 
62 void RemoteContentConfigureDialog::writeConfig()
63 {
64  KConfigGroup group(KSharedConfig::openStateConfig(), myRemoteContentConfigureConfigGroupName);
65  KWindowConfig::saveWindowSize(windowHandle(), group);
66 }
void readConfig()
QMetaObject::Connection connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
void setWindowTitle(const QString &)
static KSharedConfig::Ptr openStateConfig(const QString &fileName=QString())
QAction * create(StandardGameAction id, const QObject *recvr, const char *slot, QObject *parent)
KCONFIGGUI_EXPORT void restoreWindowSize(QWindow *window, const KConfigGroup &config)
QString i18nc(const char *context, const char *text, const TYPE &arg...)
KCONFIGGUI_EXPORT void saveWindowSize(const QWindow *window, KConfigGroup &config, KConfigGroup::WriteConfigFlags options=KConfigGroup::Normal)
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Wed Mar 22 2023 04:07:15 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.