File indexing completed on 2024-04-21 04:00:57

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 Sonnet::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() = default;
0059 
0060 void ConfigDialog::slotOk()
0061 {
0062     d->ui->save();
0063     accept();
0064 }
0065 
0066 void ConfigDialog::slotApply()
0067 {
0068     d->ui->save();
0069 }
0070 
0071 void ConfigDialog::setLanguage(const QString &language)
0072 {
0073     d->ui->setLanguage(language);
0074 }
0075 
0076 QString ConfigDialog::language() const
0077 {
0078     return d->ui->language();
0079 }
0080 
0081 #include "moc_configdialog.cpp"