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

0001 /*
0002  *  SPDX-FileCopyrightText: 2013 Alejandro Fiestas Fiestas <afiestas@kde.org>
0003  *  SPDX-FileCopyrightText: 2014-2015 David Rosca <nowrep@gmail.com>
0004  *
0005  *  SPDX-License-Identifier: GPL-2.0-or-later
0006  */
0007 
0008 #ifndef RECEIVEFILEJOB_H
0009 #define RECEIVEFILEJOB_H
0010 
0011 #include <QTime>
0012 #include <QUrl>
0013 
0014 #include <KJob>
0015 
0016 #include <BluezQt/ObexTransfer>
0017 #include <BluezQt/Request>
0018 
0019 class ObexAgent;
0020 
0021 class ReceiveFileJob : public KJob
0022 {
0023     Q_OBJECT
0024 
0025 public:
0026     explicit ReceiveFileJob(const BluezQt::Request<QString> &req, BluezQt::ObexTransferPtr transfer, BluezQt::ObexSessionPtr session, ObexAgent *parent);
0027 
0028     QString deviceAddress() const;
0029 
0030     void start() override;
0031     bool doKill() override;
0032 
0033 private Q_SLOTS:
0034     void init();
0035     void showNotification();
0036     void slotCancel();
0037     void slotAccept();
0038     void moveFinished(KJob *job);
0039 
0040     void statusChanged(BluezQt::ObexTransfer::Status status);
0041     void transferredChanged(quint64 transferred);
0042 
0043 private:
0044     QString createTempPath(const QString &fileName) const;
0045 
0046     QTime m_time;
0047     qulonglong m_speedBytes;
0048     QString m_tempPath;
0049     QString m_deviceName;
0050     QString m_deviceAddress;
0051     QUrl m_targetPath;
0052 
0053     ObexAgent *m_agent;
0054     BluezQt::ObexTransferPtr m_transfer;
0055     BluezQt::ObexSessionPtr m_session;
0056     BluezQt::Request<QString> m_request;
0057     bool m_accepted = false;
0058 };
0059 
0060 #endif // RECEIVEFILEJOB_H