File indexing completed on 2024-05-19 05:21:42
0001 /** 0002 * klinkdialog 0003 * 0004 * SPDX-FileCopyrightText: 2008 Stephen Kelly <steveire@gmailcom> 0005 * 0006 * SPDX-License-Identifier: LGPL-2.1-or-later 0007 */ 0008 0009 #include "klinkdialog_p.h" 0010 0011 #include <KLocalizedString> 0012 0013 #include <QDialogButtonBox> 0014 #include <QGridLayout> 0015 #include <QLabel> 0016 #include <QLineEdit> 0017 #include <QPushButton> 0018 #include <QVBoxLayout> 0019 0020 using namespace KPIMTextEdit; 0021 0022 KLinkDialog::KLinkDialog(QWidget *parent) 0023 : QDialog(parent) 0024 , textLabel(new QLabel(i18n("Link Text:"), this)) 0025 , textLineEdit(new QLineEdit(this)) 0026 , linkUrlLabel(new QLabel(i18n("Link URL:"), this)) 0027 , linkUrlLineEdit(new QLineEdit(this)) 0028 , buttonBox(new QDialogButtonBox(this)) 0029 { 0030 setWindowTitle(i18nc("@title:window", "Manage Link")); 0031 setModal(true); 0032 0033 auto layout = new QVBoxLayout(this); 0034 0035 auto grid = new QGridLayout; 0036 0037 textLineEdit->setClearButtonEnabled(true); 0038 linkUrlLineEdit->setClearButtonEnabled(true); 0039 0040 grid->addWidget(textLabel, 0, 0); 0041 grid->addWidget(textLineEdit, 0, 1); 0042 grid->addWidget(linkUrlLabel, 1, 0); 0043 grid->addWidget(linkUrlLineEdit, 1, 1); 0044 0045 layout->addLayout(grid); 0046 0047 buttonBox->setStandardButtons(QDialogButtonBox::Ok | QDialogButtonBox::Cancel); 0048 connect(buttonBox, &QDialogButtonBox::accepted, this, &QDialog::accept); 0049 connect(buttonBox, &QDialogButtonBox::rejected, this, &QDialog::reject); 0050 layout->addWidget(buttonBox); 0051 0052 textLineEdit->setFocus(); 0053 buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false); 0054 connect(textLineEdit, &QLineEdit::textChanged, this, &KLinkDialog::slotTextChanged); 0055 } 0056 0057 KLinkDialog::~KLinkDialog() = default; 0058 0059 void KLinkDialog::slotTextChanged(const QString &text) 0060 { 0061 buttonBox->button(QDialogButtonBox::Ok)->setEnabled(!text.trimmed().isEmpty()); 0062 } 0063 0064 void KLinkDialog::setLinkText(const QString &linkText) 0065 { 0066 textLineEdit->setText(linkText); 0067 if (!linkText.trimmed().isEmpty()) { 0068 linkUrlLineEdit->setFocus(); 0069 } 0070 } 0071 0072 void KLinkDialog::setLinkUrl(const QString &linkUrl) 0073 { 0074 linkUrlLineEdit->setText(linkUrl); 0075 } 0076 0077 QString KLinkDialog::linkText() const 0078 { 0079 return textLineEdit->text().trimmed(); 0080 } 0081 0082 QString KLinkDialog::linkUrl() const 0083 { 0084 return linkUrlLineEdit->text(); 0085 } 0086 0087 #include "moc_klinkdialog_p.cpp"