File indexing completed on 2024-05-05 17:32:40

0001 /*
0002  *   This file is part of the KDE project
0003  *
0004  *   SPDX-FileCopyrightText: 2010 Alejandro Fiestas Olivares <alex@ufocoders.com>
0005  *   SPDX-FileCopyrightText: 2010 UFO Coders <info@ufocoders.com>
0006  *   SPDX-FileCopyrightText: 2014-2015 David Rosca <nowrep@gmail.com>
0007  *
0008  *   SPDX-License-Identifier: GPL-2.0-or-later
0009  */
0010 
0011 #ifndef KIO_OBEXFTP_H
0012 #define KIO_OBEXFTP_H
0013 
0014 #include "kdedobexftp.h"
0015 
0016 #include <QObject>
0017 
0018 #include <KIO/SlaveBase>
0019 
0020 #include <BluezQt/ObexFileTransfer>
0021 
0022 class KioFtp : public QObject, public KIO::SlaveBase
0023 {
0024     Q_OBJECT
0025 
0026 public:
0027     KioFtp(const QByteArray &pool, const QByteArray &app);
0028 
0029     void copy(const QUrl &src, const QUrl &dest, int permissions, KIO::JobFlags flags) override;
0030     void listDir(const QUrl &url) override;
0031     void setHost(const QString &host, quint16 port, const QString &user, const QString &pass) override;
0032     void stat(const QUrl &url) override;
0033     void del(const QUrl &url, bool isfile) override;
0034     void mkdir(const QUrl &url, int permissions) override;
0035     void rename(const QUrl &src, const QUrl &dest, KIO::JobFlags flags) override;
0036     void get(const QUrl &url) override;
0037 
0038     bool cancelTransfer(const QString &transfer);
0039 
0040 private:
0041     void copyHelper(const QUrl &src, const QUrl &dest);
0042     void copyWithinObexftp(const QUrl &src, const QUrl &dest);
0043     void copyFromObexftp(const QUrl &src, const QUrl &dest);
0044     void copyToObexftp(const QUrl &src, const QUrl &dest);
0045     void statHelper(const QUrl &url);
0046 
0047     QList<KIO::UDSEntry> listFolder(const QUrl &url, bool *ok);
0048     bool changeFolder(const QString &folder);
0049     bool createFolder(const QString &folder);
0050     bool deleteFile(const QString &file);
0051 
0052     void updateRootEntryIcon(KIO::UDSEntry &entry, const QString &memoryType);
0053     bool createSession(const QString &target);
0054     void connectToHost();
0055     bool testConnection();
0056 
0057 private:
0058     QMap<QString, KIO::UDSEntry> m_statMap;
0059     QString m_host;
0060     QString m_sessionPath;
0061     org::kde::BlueDevil::ObexFtp *m_kded;
0062     BluezQt::ObexFileTransfer *m_transfer;
0063 };
0064 
0065 #endif // KIO_OBEXFTP_H