9#include "obextransfer.h"
11#include "obexmanager.h"
12#include "obexsession.h"
13#include "obextransfer_p.h"
14#include "pendingcall.h"
35ObexTransferPrivate::ObexTransferPrivate(
const QString &path,
const QVariantMap &properties)
37 , m_dbusProperties(nullptr)
38 , m_status(ObexTransfer::
Error)
42 , m_suspendable(false)
44 m_bluezTransfer =
new BluezTransfer(Strings::orgBluezObex(), path, DBusConnection::orgBluezObex(),
this);
46 if (Instance::obexManager()) {
47 connect(Instance::obexManager(), &ObexManager::sessionRemoved,
this, &ObexTransferPrivate::sessionRemoved);
53void ObexTransferPrivate::init(
const QVariantMap &properties)
55 m_dbusProperties =
new DBusProperties(Strings::orgBluezObex(), m_bluezTransfer->path(), DBusConnection::orgBluezObex(),
this);
61 m_name =
properties.value(QStringLiteral(
"Name")).toString();
62 m_type =
properties.value(QStringLiteral(
"Type")).toString();
63 m_time =
properties.value(QStringLiteral(
"Time")).toUInt();
64 m_size =
properties.value(QStringLiteral(
"Size")).toUInt();
65 m_transferred =
properties.value(QStringLiteral(
"Transferred")).toUInt();
66 m_fileName =
properties.value(QStringLiteral(
"Filename")).toString();
69void ObexTransferPrivate::propertiesChanged(
const QString &interface,
const QVariantMap &changed,
const QStringList &invalidated)
73 if (interface != Strings::orgBluezObexTransfer1()) {
77 QVariantMap::const_iterator i;
78 for (i = changed.constBegin(); i != changed.constEnd(); ++i) {
80 const QString &
property = i.key();
83 PROPERTY_CHANGED2(m_status, stringToStatus(value.
toString()), statusChanged);
85 PROPERTY_CHANGED(m_transferred, toUInt, transferredChanged);
87 PROPERTY_CHANGED(m_fileName, toString, fileNameChanged);
92void ObexTransferPrivate::sessionRemoved(
const ObexSessionPtr &session)
94 if (!m_bluezTransfer->path().startsWith(session->objectPath().path())) {
99 if (m_status != ObexTransfer::Complete && m_status != ObexTransfer::Error) {
100 m_status = ObexTransfer::Error;
101 Q_EMIT q.lock()->statusChanged(m_status);
105ObexTransfer::ObexTransfer(
const QString &path,
const QVariantMap &properties)
111ObexTransfer::~ObexTransfer() =
default;
115 return d->q.toStrongRef();
138quint64 ObexTransfer::time()
const
143quint64 ObexTransfer::size()
const
148quint64 ObexTransfer::transferred()
const
150 return d->m_transferred;
155 return d->m_fileName;
158bool ObexTransfer::isSuspendable()
const
160 return d->m_suspendable;
165 return new PendingCall(d->m_bluezTransfer->Cancel(), PendingCall::ReturnVoid,
this);
170 return new PendingCall(d->m_bluezTransfer->Suspend(), PendingCall::ReturnVoid,
this);
175 return new PendingCall(d->m_bluezTransfer->Resume(), PendingCall::ReturnVoid,
this);
180#include "moc_obextransfer.cpp"
181#include "moc_obextransfer_p.cpp"
Q_SCRIPTABLE CaptureState status()
char * toString(const EngineQuery &query)
QString path(const QString &relativePath)
QFuture< ArgsType< Signal > > connect(Sender *sender, Signal signal)
QString toString() const const