File indexing completed on 2024-04-28 15:34:20

0001 /*
0002  * configdialog.cpp
0003  *
0004  * SPDX-FileCopyrightText: 2004 Zack Rusin <zack@kde.org>
0005  *
0006  * SPDX-License-Identifier: LGPL-2.1-or-later
0007  */
0008 #include "configdialog.h"
0009 #include "configwidget.h"
0010 
0011 #include <QDialogButtonBox>
0012 #include <QVBoxLayout>
0013 
0014 using namespace Sonnet;
0015 
0016 class ConfigDialogPrivate
0017 {
0018 public:
0019     ConfigDialogPrivate(ConfigDialog *parent)
0020         : q(parent)
0021     {
0022     }
0023 
0024     ConfigWidget *ui = nullptr;
0025     ConfigDialog *const q;
0026     void slotConfigChanged();
0027 };
0028 
0029 void ConfigDialogPrivate::slotConfigChanged()
0030 {
0031     Q_EMIT q->languageChanged(ui->language());
0032 }
0033 
0034 ConfigDialog::ConfigDialog(QWidget *parent)
0035     : QDialog(parent)
0036     , d(new ConfigDialogPrivate(this))
0037 {
0038     setObjectName(QStringLiteral("SonnetConfigDialog"));
0039     setModal(true);
0040     setWindowTitle(tr("Spell Checking Configuration"));
0041 
0042     QVBoxLayout *layout = new QVBoxLayout(this);
0043 
0044     d->ui = new ConfigWidget(this);
0045     layout->addWidget(d->ui);
0046 
0047     QDialogButtonBox *buttonBox = new QDialogButtonBox(this);
0048     buttonBox->setStandardButtons(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
0049     layout->addWidget(buttonBox);
0050 
0051     connect(buttonBox, &QDialogButtonBox::accepted, this, &ConfigDialog::slotOk);
0052     connect(buttonBox, &QDialogButtonBox::rejected, this, &QDialog::reject);
0053     connect(d->ui, SIGNAL(configChanged()), this, SLOT(slotConfigChanged()));
0054 
0055     connect(d->ui, &ConfigWidget::configChanged, this, &ConfigDialog::configChanged);
0056 }
0057 
0058 ConfigDialog::~ConfigDialog()
0059 {
0060     delete d;
0061 }
0062 
0063 void ConfigDialog::slotOk()
0064 {
0065     d->ui->save();
0066     accept();
0067 }
0068 
0069 void ConfigDialog::slotApply()
0070 {
0071     d->ui->save();
0072 }
0073 
0074 void ConfigDialog::setLanguage(const QString &language)
0075 {
0076     d->ui->setLanguage(language);
0077 }
0078 
0079 QString ConfigDialog::language() const
0080 {
0081     return d->ui->language();
0082 }
0083 
0084 #include "moc_configdialog.cpp"