File indexing completed on 2024-05-05 04:44:01

0001 /*
0002     SPDX-FileCopyrightText: 2009 Dawit Alemayehu <adawit@kde.org>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #include "passwordbar.h"
0008 
0009 #include "kwebkitpart_debug.h"
0010 #include "settings/webkitsettings.h"
0011 
0012 #include <KColorScheme>
0013 #include <KLocalizedString>
0014 
0015 #include <QCoreApplication>
0016 #include <QAction>
0017 #include <QPalette>
0018 
0019 
0020 PasswordBar::PasswordBar(QWidget *parent)
0021             :KMessageWidget(parent)
0022 {
0023     setCloseButtonVisible(false);
0024     setMessageType(KMessageWidget::Information);
0025 
0026     QAction* action = new QAction(i18nc("@action:remember password", "&Remember"), this);
0027     connect(action, SIGNAL(triggered()), this, SLOT(onRememberButtonClicked()));
0028     addAction(action);
0029 
0030     action = new QAction(i18nc("@action:never for this site", "Ne&ver for this site"), this);
0031     connect(action, SIGNAL(triggered()), this, SLOT(onNeverButtonClicked()));
0032     addAction(action);
0033 
0034     action = new QAction(i18nc("@action:not now", "N&ot now"), this);
0035     connect(action, SIGNAL(triggered()), this, SLOT(onNotNowButtonClicked()));
0036     addAction(action);
0037 }
0038 
0039 PasswordBar::~PasswordBar()
0040 {
0041 }
0042 
0043 QUrl PasswordBar::url() const
0044 {
0045     return m_url;
0046 }
0047 
0048 QString PasswordBar::requestKey() const
0049 {
0050     return m_requestKey;
0051 }
0052 
0053 void PasswordBar::setUrl (const QUrl& url)
0054 {
0055     m_url = url;
0056 }
0057 
0058 void PasswordBar::setRequestKey (const QString& key)
0059 {
0060     m_requestKey = key;
0061 }
0062 
0063 void PasswordBar::onNotNowButtonClicked()
0064 {
0065     animatedHide();
0066     emit saveFormDataRejected (m_requestKey);
0067     emit done();
0068     clear();
0069 }
0070 
0071 void PasswordBar::onNeverButtonClicked()
0072 {
0073     WebKitSettings::self()->addNonPasswordStorableSite(m_url.host());
0074     onNotNowButtonClicked();
0075 }
0076 
0077 void PasswordBar::onRememberButtonClicked()
0078 {
0079     animatedHide();
0080     emit saveFormDataAccepted(m_requestKey);
0081     emit done();
0082     clear();
0083 }
0084 
0085 void PasswordBar::clear()
0086 {
0087     m_requestKey.clear();
0088     m_url.clear();
0089 }