File indexing completed on 2024-04-14 04:52:55
0001 /* This file is part of the KDE project 0002 SPDX-FileCopyrightText: 2009 Fredy Yanardi <fyanardi@gmail.com> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #include "WebShortcutWidget.h" 0008 0009 #include <QFontDatabase> 0010 #include <QTimer> 0011 #include <QBoxLayout> 0012 #include <QLabel> 0013 #include <QLineEdit> 0014 #include <QPushButton> 0015 #include <QFormLayout> 0016 #include <QDialogButtonBox> 0017 0018 #include <KGuiItem> 0019 #include <KLocalizedString> 0020 #include <KStandardGuiItem> 0021 #include <QFontDatabase> 0022 0023 WebShortcutWidget::WebShortcutWidget(QWidget *parent) 0024 : QDialog(parent) 0025 { 0026 QVBoxLayout *mainLayout = new QVBoxLayout(this); 0027 QHBoxLayout *titleLayout = new QHBoxLayout(); 0028 mainLayout->addLayout(titleLayout); 0029 QLabel *iconLabel = new QLabel(this); 0030 QIcon wsIcon = QIcon::fromTheme(QStringLiteral("preferences-web-browser-shortcuts")); 0031 iconLabel->setPixmap(wsIcon.pixmap(22, 22)); 0032 titleLayout->addWidget(iconLabel); 0033 m_searchTitleLabel = new QLabel(i18n("Set Uri Shortcuts"), this); 0034 QFont boldFont = QFontDatabase::systemFont(QFontDatabase::GeneralFont); 0035 boldFont.setBold(true); 0036 m_searchTitleLabel->setFont(boldFont); 0037 titleLayout->addWidget(m_searchTitleLabel); 0038 titleLayout->addStretch(); 0039 0040 QFormLayout *formLayout = new QFormLayout(); 0041 mainLayout->addLayout(formLayout); 0042 0043 QFont smallFont = QFontDatabase::systemFont(QFontDatabase::SmallestReadableFont); 0044 m_nameLineEdit = new QLineEdit(this); 0045 m_nameLineEdit->setEnabled(false); 0046 m_nameLineEdit->setFont(smallFont); 0047 QLabel *nameLabel = new QLabel(i18n("Name:"), this); 0048 nameLabel->setFont(smallFont); 0049 formLayout->addRow(nameLabel, m_nameLineEdit); 0050 0051 QLabel *shortcutsLabel = new QLabel(i18n("Shortcuts:"), this); 0052 shortcutsLabel->setFont(smallFont); 0053 m_wsLineEdit = new QLineEdit(this); 0054 m_wsLineEdit->setMinimumWidth(100); 0055 m_wsLineEdit->setFont(smallFont); 0056 formLayout->addRow(shortcutsLabel, m_wsLineEdit); 0057 0058 QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel); 0059 mainLayout->addWidget(buttonBox); 0060 connect(buttonBox, &QDialogButtonBox::accepted, this, &WebShortcutWidget::okClicked); 0061 connect(buttonBox, &QDialogButtonBox::rejected, this, &WebShortcutWidget::cancelClicked); 0062 0063 resize(minimumSizeHint()); 0064 0065 QTimer::singleShot(0, m_wsLineEdit, QOverload<>::of(&QWidget::setFocus)); 0066 } 0067 0068 void WebShortcutWidget::show(const QString &openSearchName, const QString &fileName) 0069 { 0070 m_wsLineEdit->clear(); 0071 m_nameLineEdit->setText(openSearchName); 0072 m_fileName = fileName; 0073 0074 QDialog::show(); 0075 } 0076 0077 void WebShortcutWidget::okClicked() 0078 { 0079 hide(); 0080 emit webShortcutSet(m_nameLineEdit->text(), m_wsLineEdit->text(), m_fileName); 0081 } 0082 0083 void WebShortcutWidget::cancelClicked() 0084 { 0085 hide(); 0086 } 0087