1 /*
2    SPDX-FileCopyrightText: 2016-2021 Laurent Montel <montel@kde.org>
3 
4    SPDX-License-Identifier: LGPL-2.0-or-later
5 */
6 
7 #include "filteractionmissingtransportdialog.h"
8 
9 #include <KLocalizedString>
10 #include <KSharedConfig>
11 
12 #include <QDialogButtonBox>
13 #include <QLabel>
14 #include <QPushButton>
15 #include <QVBoxLayout>
16 
17 #include <MailTransport/TransportComboBox>
18 
19 using namespace MailCommon;
20 
FilterActionMissingTransportDialog(const QString & filtername,QWidget * parent)21 FilterActionMissingTransportDialog::FilterActionMissingTransportDialog(const QString &filtername, QWidget *parent)
22     : QDialog(parent)
23 {
24     setModal(true);
25     setWindowTitle(i18nc("@title:window", "Select Transport"));
26     auto mainLayout = new QVBoxLayout(this);
27 
28     auto label = new QLabel(this);
29     label->setObjectName(QStringLiteral("label"));
30     label->setText(
31         i18n("Filter transport is missing. "
32              "Please select a transport to use with filter \"%1\"",
33              filtername));
34     label->setWordWrap(true);
35     mainLayout->addWidget(label);
36     mComboBoxTransport = new MailTransport::TransportComboBox(this);
37     mComboBoxTransport->setObjectName(QStringLiteral("comboboxtransport"));
38     mainLayout->addWidget(mComboBoxTransport);
39     auto buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, this);
40     buttonBox->setObjectName(QStringLiteral("buttonbox"));
41     QPushButton *okButton = buttonBox->button(QDialogButtonBox::Ok);
42     okButton->setDefault(true);
43     okButton->setShortcut(Qt::CTRL | Qt::Key_Return);
44     connect(buttonBox, &QDialogButtonBox::accepted, this, &FilterActionMissingTransportDialog::accept);
45     connect(buttonBox, &QDialogButtonBox::rejected, this, &FilterActionMissingTransportDialog::reject);
46     mainLayout->addWidget(buttonBox);
47     readConfig();
48 }
49 
~FilterActionMissingTransportDialog()50 FilterActionMissingTransportDialog::~FilterActionMissingTransportDialog()
51 {
52     writeConfig();
53 }
54 
readConfig()55 void FilterActionMissingTransportDialog::readConfig()
56 {
57     KConfigGroup group(KSharedConfig::openStateConfig(), "FilterActionMissingTransportDialog");
58 
59     const QSize size = group.readEntry("Size", QSize(500, 300));
60     if (size.isValid()) {
61         resize(size);
62     }
63 }
64 
writeConfig()65 void FilterActionMissingTransportDialog::writeConfig()
66 {
67     KConfigGroup group(KSharedConfig::openStateConfig(), "FilterActionMissingTransportDialog");
68     group.writeEntry("Size", size());
69 }
70 
selectedTransport() const71 int FilterActionMissingTransportDialog::selectedTransport() const
72 {
73     return mComboBoxTransport->currentTransportId();
74 }
75