File indexing completed on 2024-03-24 15:23:36

0001 // SPDX-License-Identifier: LGPL-2.1-or-later
0002 //
0003 // SPDX-FileCopyrightText: 2011 Dennis Nienhüser <nienhueser@kde.org>
0004 //
0005 
0006 #ifndef UPLOAD_H
0007 #define UPLOAD_H
0008 
0009 #include "region.h"
0010 #include "jobparameters.h"
0011 
0012 #include <QObject>
0013 #include <QList>
0014 #include <QFileInfo>
0015 #include <QDomDocument>
0016 
0017 class Upload : public QObject
0018 {
0019     Q_OBJECT
0020 
0021     Q_PROPERTY(bool uploadFiles READ uploadFiles WRITE setUploadFiles)
0022 
0023 public:
0024     static Upload& instance();
0025 
0026     void uploadAndDelete(const Region &region, const QFileInfo &file, const QString &transport);
0027 
0028     bool uploadFiles() const;
0029 
0030     void setJobParameters(const JobParameters &parameters);
0031 
0032     void setUploadFiles(bool arg);
0033 
0034 private:
0035     struct Package {
0036         Region region;
0037         QFileInfo file;
0038         QString transport;
0039 
0040         bool operator==(const Package &other) const;
0041     };
0042 
0043     explicit Upload(QObject *parent = nullptr);
0044 
0045     void changeStatus( const Package &package, const QString &status, const QString &message );
0046 
0047     void processQueue();
0048 
0049     bool upload(const Package &package);
0050 
0051     void deleteFile(const QFileInfo &file);
0052 
0053     bool adjustNewstuffFile(const Package &package);
0054 
0055     bool uploadNewstuff();
0056 
0057     bool deleteRemoteFile(const QString &filename);
0058 
0059     QString targetDir() const;
0060 
0061     QString releaseDate() const;
0062 
0063     QList<Package> m_queue;
0064     bool m_uploadFiles;
0065     QDomDocument m_xml;
0066     JobParameters m_jobParameters;
0067 };
0068 
0069 #endif // UPLOAD_H