-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfiletransferspage.h
127 lines (117 loc) · 3.46 KB
/
filetransferspage.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
/****************************************************************************
**
** Copyright 2011, 2012, 2013, 2014 Omar Lawand Dalatieh.
**
** This file is part of Droper.
**
** Droper is free software: you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation, either version 3 of the License, or
** (at your option) any later version.
**
** Droper is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with Droper. If not, see <http://www.gnu.org/licenses/>.
**
** For more information, check out the GNU General Public license found
** in the COPYING file and the README file.
**
****************************************************************************/
#ifndef FILETRANSFERSPAGE_H
#define FILETRANSFERSPAGE_H
// base class(es)
#include <QWidget>
// data members
#include <QFile>
#include <QTime>
class QNetworkReply;
// member functions
#include <QVariantMap>
class QNetworkRequest;
namespace Ui {
class FileTransfersPage;
}
class FileTransfersPage : public QWidget
{
Q_OBJECT
// enumerations
public:
enum State
{
INITIAL,
TRANSFERRING,
FINISHED,
NOT_FINISHED
};
// member functions
public:
explicit FileTransfersPage(QWidget *parent = 0);
~FileTransfersPage();
// misc
public:
bool isDownloading();
bool isUploading();
void setDownloadFileAndFolderInformation(
QVariantMap fileInfo,
QString folderPath
);
void setUploadFileAndFolderInformation(
QString filePath,
QString fileSize,
int fileBytes,
QString folderPath,
bool overwrite
);
void setDownloadState(State state);
void setUploadState(State state);
void setDownloadNetworkReply(QNetworkReply *networkReply);
void setUploadNetworkReply(QNetworkReply *networkReply);
private:
void setupActions();
signals:
// signals
void networkRequestGetNeeded(QNetworkRequest *request);
void networkRequestPutNeeded(QNetworkRequest *request, QIODevice *data);
void backRequested();
void fileUploaded(QVariantMap fileMetadata);
public slots:
// network slots
void handleDownloadReadyRead();
void handleDownloadProgress(qint64 received, qint64 total);
void handleUploadProgress(qint64 sent, qint64 total);
public slots:
void handleNetworkReply(QNetworkReply *networkReply);
// action slots
private slots:
void on_downloadStartStopRestartAction_triggered();
void on_uploadStartStopRestartAction_triggered();
void on_backAction_triggered();
// private data members
private:
Ui::FileTransfersPage *ui;
bool ovewriteWhenUploading;
State downloadState;
State uploadState;
QTime downloadTime;
QTime uploadTime;
QFile downloadFile;
QFile *uploadFile;
QString downloadFileName;
QString uploadFileName;
QString downloadFilePath;
QString uploadFilePath;
QString downloadFileSize;
QString uploadFileSize;
int uploadFileBytes;
QString downloadFolderPath;
QString uploadFolderPath;
QString downloadFolderName;
QString uploadFolderName;
QNetworkReply *downloadNetworkReply;
QNetworkReply *uploadNetworkReply;
};
#endif // FILETRANSFERSPAGE_H