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