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 }