File indexing completed on 2024-04-28 05:26:14
0001 /* 0002 * This file is part of the KDE project 0003 * 0004 * SPDX-FileCopyrightText: 2010-2011 Alejandro Fiestas Olivares <afiestas@kde.org> 0005 * SPDX-FileCopyrightText: 2010-2011 UFO Coders <info@ufocoders.com> 0006 * 0007 * SPDX-License-Identifier: LGPL-2.0-or-later 0008 */ 0009 0010 #include "connectingpage.h" 0011 #include "../sendfilewizard.h" 0012 #include "bluedevil_sendfile.h" 0013 0014 #include <QDBusObjectPath> 0015 0016 #include <KLocalizedString> 0017 0018 #include <BluezQt/Device> 0019 #include <BluezQt/InitObexManagerJob> 0020 #include <BluezQt/PendingCall> 0021 0022 ConnectingPage::ConnectingPage(SendFileWizard *wizard) 0023 : QWizardPage(wizard) 0024 , m_wizard(wizard) 0025 { 0026 setupUi(this); 0027 } 0028 0029 void ConnectingPage::initializePage() 0030 { 0031 m_device = m_wizard->device(); 0032 connLabel->setText(i18nc("Connecting to a Bluetooth device", "Connecting to %1…", m_device->name())); 0033 0034 m_wizard->setWindowTitle(QString()); 0035 m_wizard->setButtonLayout(wizardButtonsLayout()); 0036 0037 // Init BluezQt 0038 BluezQt::ObexManager *manager = new BluezQt::ObexManager(this); 0039 BluezQt::InitObexManagerJob *job = manager->init(); 0040 job->start(); 0041 connect(job, &BluezQt::InitObexManagerJob::result, this, &ConnectingPage::initJobResult); 0042 } 0043 0044 bool ConnectingPage::isComplete() const 0045 { 0046 return false; 0047 } 0048 0049 void ConnectingPage::initJobResult(BluezQt::InitObexManagerJob *job) 0050 { 0051 if (job->error()) { 0052 qCWarning(BLUEDEVIL_SENDFILE_LOG) << "Error initializing obex manager" << job->errorText(); 0053 m_wizard->next(); 0054 return; 0055 } 0056 0057 // Create ObjectPush session 0058 QVariantMap map; 0059 map[QStringLiteral("Target")] = QStringLiteral("opp"); 0060 BluezQt::PendingCall *call = job->manager()->createSession(m_device->address(), map); 0061 connect(call, &BluezQt::PendingCall::finished, this, &ConnectingPage::createSessionFinished); 0062 } 0063 0064 void ConnectingPage::createSessionFinished(BluezQt::PendingCall *call) 0065 { 0066 if (call->error()) { 0067 qCWarning(BLUEDEVIL_SENDFILE_LOG) << "Error creating session" << call->errorText(); 0068 m_wizard->setErrorMessage(call->errorText()); 0069 m_wizard->next(); 0070 return; 0071 } 0072 0073 m_wizard->startTransfer(call->value().value<QDBusObjectPath>()); 0074 } 0075 0076 QList<QWizard::WizardButton> ConnectingPage::wizardButtonsLayout() const 0077 { 0078 QList<QWizard::WizardButton> list; 0079 list << QWizard::Stretch; 0080 list << QWizard::CancelButton; 0081 return list; 0082 } 0083 0084 #include "moc_connectingpage.cpp"