Libksieve

sievescriptdescriptiondialog.cpp
1 /*
2  Copyright (C) 2013-2020 Laurent Montel <[email protected]>
3 
4  This library is free software; you can redistribute it and/or
5  modify it under the terms of the GNU Library General Public
6  License as published by the Free Software Foundation; either
7  version 2 of the License, or (at your option) any later version.
8 
9  This library is distributed in the hope that it will be useful,
10  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12  Library General Public License for more details.
13 
14  You should have received a copy of the GNU Library General Public License
15  along with this library; see the file COPYING.LIB. If not, write to
16  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17  Boston, MA 02110-1301, USA.
18 */
19 
20 #include "sievescriptdescriptiondialog.h"
21 #include <KPIMTextEdit/PlainTextEditorWidget>
22 
23 #include <KLocalizedString>
24 #include <KSharedConfig>
25 #include <QDialogButtonBox>
26 #include <KConfigGroup>
27 #include <QPushButton>
28 #include <QVBoxLayout>
29 
30 using namespace KSieveUi;
31 
32 SieveScriptDescriptionDialog::SieveScriptDescriptionDialog(QWidget *parent)
33  : QDialog(parent)
34 {
35  setWindowTitle(i18nc("@title:window", "Description"));
36  QVBoxLayout *mainLayout = new QVBoxLayout(this);
37 
38  mEdit = new KPIMTextEdit::PlainTextEditorWidget(this);
39 
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, &SieveScriptDescriptionDialog::accept);
45  connect(buttonBox, &QDialogButtonBox::rejected, this, &SieveScriptDescriptionDialog::reject);
46  mainLayout->addWidget(mEdit);
47  mainLayout->addWidget(buttonBox);
48 
49  readConfig();
50  mEdit->setFocus();
51 }
52 
53 SieveScriptDescriptionDialog::~SieveScriptDescriptionDialog()
54 {
55  writeConfig();
56 }
57 
58 void SieveScriptDescriptionDialog::setDescription(const QString &desc)
59 {
60  mEdit->setPlainText(desc);
61 }
62 
63 QString SieveScriptDescriptionDialog::description() const
64 {
65  return mEdit->toPlainText();
66 }
67 
68 void SieveScriptDescriptionDialog::readConfig()
69 {
70  KConfigGroup group(KSharedConfig::openConfig(), "SieveScriptDescriptionDialog");
71  const QSize sizeDialog = group.readEntry("Size", QSize(800, 600));
72  if (sizeDialog.isValid()) {
73  resize(sizeDialog);
74  }
75 }
76 
77 void SieveScriptDescriptionDialog::writeConfig()
78 {
79  KConfigGroup group(KSharedConfig::openConfig(), "SieveScriptDescriptionDialog");
80  group.writeEntry("Size", size());
81 }
void resize(int w, int h)
bool isValid() const const
QSize size() const const
void addWidget(QWidget *widget, int stretch, Qt::Alignment alignment)
QString i18nc(const char *context, const char *text, const TYPE &arg...)
void setShortcut(const QKeySequence &key)
static KSharedConfig::Ptr openConfig(const QString &fileName=QString(), OpenFlags mode=FullConfig, QStandardPaths::StandardLocation type=QStandardPaths::GenericConfigLocation)
void readConfig()
void setWindowTitle(const QString &)
QPushButton * button(QDialogButtonBox::StandardButton which) const const
QMetaObject::Connection connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
void setDefault(bool)
Key_Return
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Thu Jul 9 2020 23:07:45 by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.