File indexing completed on 2024-04-14 15:32:05

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 SENDFILESJOB_H
0011 #define SENDFILESJOB_H
0012 
0013 #include <QList>
0014 #include <QStringList>
0015 #include <QTime>
0016 
0017 #include <KJob>
0018 
0019 #include <BluezQt/ObexTransfer>
0020 
0021 namespace BluezQt
0022 {
0023 class ObexObjectPush;
0024 }
0025 
0026 class SendFilesJob : public KJob
0027 {
0028     Q_OBJECT
0029 
0030 public:
0031     explicit SendFilesJob(const QStringList &files, BluezQt::DevicePtr device, const QDBusObjectPath &session, QObject *parent = nullptr);
0032 
0033     void start() override;
0034     bool doKill() override;
0035 
0036 private Q_SLOTS:
0037     void doStart();
0038     void nextJob();
0039     void sendFileFinished(BluezQt::PendingCall *call);
0040     void jobDone();
0041     void transferredChanged(quint64 transferred);
0042     void statusChanged(BluezQt::ObexTransfer::Status status);
0043 
0044 private:
0045     void progress(quint64 transferBytes);
0046 
0047     QTime m_time;
0048     QStringList m_files;
0049     QList<quint64> m_filesSizes;
0050     QString m_currentFile;
0051     quint64 m_progress;
0052     quint64 m_totalSize;
0053     qulonglong m_speedBytes;
0054     quint64 m_currentFileSize;
0055     quint64 m_currentFileProgress;
0056 
0057     BluezQt::DevicePtr m_device;
0058     BluezQt::ObexTransferPtr m_transfer;
0059     BluezQt::ObexObjectPush *m_objectPush;
0060 };
0061 
0062 #endif // SENDFILESJOB_H