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