Messagelib

trackingdetailsdialog.cpp
1 /*
2  SPDX-FileCopyrightText: 2017-2023 Laurent Montel <[email protected]>
3 
4  SPDX-License-Identifier: LGPL-2.0-or-later
5 */
6 
7 #include "trackingdetailsdialog.h"
8 #include <KConfigGroup>
9 #include <KLocalizedString>
10 #include <KPIMTextEdit/RichTextEditorWidget>
11 #include <KSharedConfig>
12 #include <KWindowConfig>
13 #include <QDialogButtonBox>
14 #include <QPushButton>
15 #include <QVBoxLayout>
16 #include <QWindow>
17 
18 using namespace WebEngineViewer;
19 namespace
20 {
21 static const char myMailTrackingDetailsDialogConfigGroupName[] = "MailTrackingDetailsDialog";
22 }
23 TrackingDetailsDialog::TrackingDetailsDialog(QWidget *parent)
24  : QDialog(parent)
25  , mDetails(new KPIMTextEdit::RichTextEditorWidget(this))
26 {
27  setWindowTitle(i18nc("@title:window", "Details"));
28  setAttribute(Qt::WA_DeleteOnClose);
29  setModal(false);
30 
31  auto mainLayout = new QVBoxLayout(this);
32  mainLayout->setObjectName(QStringLiteral("mainLayout"));
33 
34  auto buttonBox = new QDialogButtonBox(QDialogButtonBox::Close, this);
35  buttonBox->setObjectName(QStringLiteral("buttonbox"));
36  connect(buttonBox, &QDialogButtonBox::rejected, this, &TrackingDetailsDialog::reject);
37  connect(buttonBox->button(QDialogButtonBox::Close), &QPushButton::clicked, this, &TrackingDetailsDialog::close);
38 
39  mDetails->setObjectName(QStringLiteral("detail"));
40  mainLayout->addWidget(mDetails);
41  mainLayout->addWidget(buttonBox);
42  mDetails->setReadOnly(true);
43  readConfig();
44 }
45 
46 TrackingDetailsDialog::~TrackingDetailsDialog()
47 {
48  writeConfig();
49 }
50 
51 void TrackingDetailsDialog::readConfig()
52 {
53  create(); // ensure a window is created
54  windowHandle()->resize(QSize(600, 400));
55  KConfigGroup group(KSharedConfig::openStateConfig(), myMailTrackingDetailsDialogConfigGroupName);
56  KWindowConfig::restoreWindowSize(windowHandle(), group);
57  resize(windowHandle()->size()); // workaround for QTBUG-40584
58 }
59 
60 void TrackingDetailsDialog::writeConfig()
61 {
62  KConfigGroup group(KSharedConfig::openStateConfig(), myMailTrackingDetailsDialogConfigGroupName);
63  KWindowConfig::saveWindowSize(windowHandle(), group);
64 }
65 
66 void TrackingDetailsDialog::setDetails(const QString &details)
67 {
68  mDetails->setHtml(details);
69 }
void clicked(bool checked)
void readConfig()
QMetaObject::Connection connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
QAction * create(StandardAction id, const QObject *recvr, const char *slot, QObject *parent)
static KSharedConfig::Ptr openStateConfig(const QString &fileName=QString())
KCONFIGGUI_EXPORT void restoreWindowSize(QWindow *window, const KConfigGroup &config)
QString i18nc(const char *context, const char *text, const TYPE &arg...)
WA_DeleteOnClose
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 Sat Apr 1 2023 04:01:57 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.