File indexing completed on 2024-04-28 05:26:12
0001 /* 0002 * SPDX-FileCopyrightText: 2010 Alejandro Fiestas Olivares <alex@eyeos.org> 0003 * SPDX-FileCopyrightText: 2010 Eduardo Robles Elvira <edulix@gmail.com> 0004 * SPDX-FileCopyrightText: 2010 UFO Coders <info@ufocoders.com> 0005 * SPDX-FileCopyrightText: 2014-2015 David Rosca <nowrep@gmail.com> 0006 * 0007 * SPDX-License-Identifier: GPL-2.0-or-later 0008 */ 0009 0010 #include "requestconfirmation.h" 0011 #include "bluedevil_kded.h" 0012 0013 #include <KLocalizedString> 0014 #include <KNotification> 0015 0016 RequestConfirmation::RequestConfirmation(BluezQt::DevicePtr device, const QString &pin, QObject *parent) 0017 : QObject(parent) 0018 , m_device(device) 0019 , m_pin(pin) 0020 { 0021 KNotification *notification = new KNotification(QStringLiteral("RequestConfirmation"), KNotification::Persistent, this); 0022 0023 notification->setComponentName(QStringLiteral("bluedevil")); 0024 notification->setTitle(QStringLiteral("%1 (%2)").arg(m_device->name().toHtmlEscaped(), m_device->address())); 0025 notification->setText( 0026 i18nc("The text is shown in a notification to know if the PIN is correct," 0027 "%1 is the remote bluetooth device and %2 is the pin", 0028 "%1 is asking if the PIN is correct: %2", 0029 m_device->name().toHtmlEscaped(), 0030 m_pin)); 0031 0032 auto correctAction = notification->addAction(i18nc("Notification button to know if the pin is correct or not", "PIN correct")); 0033 auto incorrectAction = notification->addAction(i18nc("Notification button to say that the PIN is wrong", "PIN incorrect")); 0034 0035 connect(correctAction, &KNotificationAction::activated, this, &RequestConfirmation::pinCorrect); 0036 connect(incorrectAction, &KNotificationAction::activated, this, &RequestConfirmation::pinWrong); 0037 connect(notification, &KNotification::closed, this, &RequestConfirmation::pinWrong); 0038 connect(notification, &KNotification::ignored, this, &RequestConfirmation::pinWrong); 0039 connect(parent, SIGNAL(agentCanceled()), this, SLOT(pinWrong())); 0040 0041 notification->sendEvent(); 0042 } 0043 0044 void RequestConfirmation::pinCorrect() 0045 { 0046 qCDebug(BLUEDEVIL_KDED_LOG) << "PIN correct:" << m_device->name() << m_device->address(); 0047 0048 deleteLater(); 0049 Q_EMIT done(Accept); 0050 } 0051 0052 void RequestConfirmation::pinWrong() 0053 { 0054 qCDebug(BLUEDEVIL_KDED_LOG) << "PIN wrong:" << m_device->name() << m_device->address(); 0055 0056 deleteLater(); 0057 Q_EMIT done(Deny); 0058 } 0059 0060 #include "moc_requestconfirmation.cpp"