File indexing completed on 2024-03-24 17:00:26

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 #ifndef SENDFILEWIZARD_H
0011 #define SENDFILEWIZARD_H
0012 
0013 #include <QObject>
0014 #include <QStringList>
0015 #include <QWizard>
0016 
0017 #include <BluezQt/Manager>
0018 
0019 #include "discoverwidget.h"
0020 
0021 class QDBusObjectPath;
0022 
0023 class SendFilesJob;
0024 
0025 class SendFileWizard : public QWizard
0026 {
0027     Q_OBJECT
0028 
0029 public:
0030     explicit SendFileWizard(const QString &device, const QStringList &files);
0031     ~SendFileWizard() override;
0032 
0033     void done(int result) override;
0034 
0035     BluezQt::Manager *manager() const;
0036 
0037     QStringList files() const;
0038     void setFiles(const QStringList &files);
0039 
0040     BluezQt::DevicePtr device() const;
0041     void setDevice(BluezQt::DevicePtr device);
0042 
0043     QString errorMessage() const;
0044     void setErrorMessage(const QString &message);
0045 
0046     void startTransfer(const QDBusObjectPath &session);
0047 
0048 Q_SIGNALS:
0049     void obexServiceInitialized();
0050 
0051 private Q_SLOTS:
0052     void initJobResult(BluezQt::InitManagerJob *job);
0053     void slotServicePendingCallFinished(BluezQt::PendingCall *call);
0054     void initWizard();
0055 
0056 private:
0057     const QString m_deviceUrl;
0058     QStringList m_files;
0059     QString m_errorMessage;
0060 
0061     BluezQt::Manager *m_manager = nullptr;
0062     BluezQt::DevicePtr m_device;
0063     SendFilesJob *m_job = nullptr;
0064 
0065     bool m_obexServiceInitialized = false;
0066     BluezQt::PendingCall::Error m_obexdServiceError = BluezQt::PendingCall::NoError;
0067 };
0068 
0069 #endif // SENDFILEWIZARD_H