File indexing completed on 2023-05-30 10:45:24

0001 /*
0002     SPDX-FileCopyrightText: 2003-2009 Peter Hedlund <peter.hedlund@kdemail.net>
0003     SPDX-License-Identifier: GPL-2.0-or-later
0004 */
0005 
0006 #include "dlgspecchar.h"
0007 
0008 #include <QDialogButtonBox>
0009 #include <QPushButton>
0010 #include <QVBoxLayout>
0011 
0012 #include <KCharSelect>
0013 #include <KLocalizedString>
0014 
0015 DlgSpecChar::DlgSpecChar(QWidget *parent, const QFont &font, const QChar &chr) : QDialog(parent)
0016 {
0017   setWindowTitle( i18nc("@title:window select character dialog", "Select Character") );
0018   QWidget *mainWidget = new QWidget(this);
0019   QVBoxLayout *mainLayout = new QVBoxLayout(this);
0020   mainLayout->addWidget(mainWidget);
0021   setModal(true);
0022 
0023 
0024   m_charSelect = new KCharSelect(this, nullptr);
0025   m_charSelect->setCurrentChar(chr);
0026   m_charSelect->setCurrentFont(font);
0027   connect(m_charSelect, &KCharSelect::charSelected,this, &DlgSpecChar::slotDoubleClicked);
0028   m_charSelect->resize(m_charSelect->sizeHint());
0029   m_charSelect->setFocus();
0030   mainLayout->addWidget(m_charSelect);
0031 
0032   QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Cancel, this);
0033   QPushButton *user1Button = new QPushButton;
0034   buttonBox->addButton(user1Button, QDialogButtonBox::ActionRole);
0035   connect(buttonBox, &QDialogButtonBox::accepted, this, &QDialog::accept);
0036   connect(buttonBox, &QDialogButtonBox::rejected, this, &QDialog::reject);
0037   mainLayout->addWidget(buttonBox);
0038   user1Button->setDefault(true);
0039 
0040 
0041   user1Button->setText(i18nc("@action:button", "&Select"));
0042   user1Button->setToolTip(i18nc("@info:tooltip", "Select this character"));
0043   connect(user1Button,&QAbstractButton::clicked,this,&DlgSpecChar::slotUser1);
0044 }
0045 
0046 void DlgSpecChar::closeDialog()
0047 {
0048   QDialog::close();
0049 }
0050 
0051 QChar DlgSpecChar::chr()
0052 {
0053   return m_charSelect->currentChar();
0054 }
0055 
0056 void DlgSpecChar::slotDoubleClicked()
0057 {
0058   Q_EMIT insertChar(chr());
0059   closeDialog();
0060 }
0061 
0062 void DlgSpecChar::slotUser1( )
0063 {
0064   Q_EMIT insertChar(chr());
0065   closeDialog();
0066 }