Mailcommon

snippetcustomfileattachmentnamedialog.cpp
1 /*
2  SPDX-FileCopyrightText: 2019-2023 Laurent Montel <[email protected]>
3 
4  SPDX-License-Identifier: LGPL-2.0-or-later
5 */
6 
7 #include "snippetcustomfileattachmentnamedialog.h"
8 #include "snippetcustomfileattachmentnamewidget.h"
9 
10 #include <KConfigGroup>
11 #include <QDialogButtonBox>
12 #include <QPushButton>
13 #include <QVBoxLayout>
14 
15 #include <KLocalizedString>
16 #include <KSharedConfig>
17 #include <KWindowConfig>
18 #include <QWindow>
19 namespace
20 {
21 static const char mySnippetCustomFileAttachmentNameDialogGroupName[] = "SnippetCustomFileAttachmentNameDialog";
22 }
23 using namespace MailCommon;
24 SnippetCustomFileAttachmentNameDialog::SnippetCustomFileAttachmentNameDialog(QWidget *parent)
25  : QDialog(parent)
26  , mCustomWidget(new SnippetCustomFileAttachmentNameWidget(this))
27 {
28  setWindowTitle(i18nc("@title:window", "Customize File Name Attachment"));
29  auto mainLayout = new QVBoxLayout(this);
30  mainLayout->setObjectName(QStringLiteral("mainLayout"));
31 
32  mCustomWidget->setObjectName(QStringLiteral("mCustomWidget"));
33  mainLayout->addWidget(mCustomWidget);
34 
36  buttonBox->setObjectName(QStringLiteral("button"));
37  QPushButton *okButton = buttonBox->button(QDialogButtonBox::Ok);
38  okButton->setDefault(true);
39  okButton->setShortcut(Qt::CTRL | Qt::Key_Return);
40  connect(buttonBox, &QDialogButtonBox::accepted, this, &SnippetCustomFileAttachmentNameDialog::accept);
41  connect(buttonBox, &QDialogButtonBox::rejected, this, &SnippetCustomFileAttachmentNameDialog::reject);
42 
43  mainLayout->addWidget(buttonBox);
44 
45  readConfig();
46 }
47 
48 SnippetCustomFileAttachmentNameDialog::~SnippetCustomFileAttachmentNameDialog()
49 {
50  writeConfig();
51 }
52 
53 void SnippetCustomFileAttachmentNameDialog::readConfig()
54 {
55  create(); // ensure a window is created
56  windowHandle()->resize(QSize(500, 150));
57  KConfigGroup group(KSharedConfig::openStateConfig(), mySnippetCustomFileAttachmentNameDialogGroupName);
58  KWindowConfig::restoreWindowSize(windowHandle(), group);
59  resize(windowHandle()->size()); // workaround for QTBUG-40584
60 }
61 
62 void SnippetCustomFileAttachmentNameDialog::writeConfig()
63 {
64  KConfigGroup group(KSharedConfig::openStateConfig(), mySnippetCustomFileAttachmentNameDialogGroupName);
65  KWindowConfig::saveWindowSize(windowHandle(), group);
66  group.sync();
67 }
68 
69 QString SnippetCustomFileAttachmentNameDialog::result() const
70 {
71  return mCustomWidget->result();
72 }
73 
74 void SnippetCustomFileAttachmentNameDialog::setText(const QString &str)
75 {
76  mCustomWidget->setText(str);
77 }
78 
79 #include "moc_snippetcustomfileattachmentnamedialog.cpp"
void setShortcut(const QKeySequence &key)
void readConfig()
static KSharedConfig::Ptr openStateConfig(const QString &fileName=QString())
QAction * create(StandardGameAction id, const QObject *recvr, const char *slot, QObject *parent)
Key_Return
KCONFIGGUI_EXPORT void restoreWindowSize(QWindow *window, const KConfigGroup &config)
QString i18nc(const char *context, const char *text, const TYPE &arg...)
void setDefault(bool)
The filter dialog.
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 Fri Sep 22 2023 03:58:42 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.