summaryrefslogtreecommitdiff
path: root/plugins/Themes/Oxygen/TransferModel.h
blob: 86fd1b44a20ac359d2d74b7398d054a706c90d68 (plain)
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
#ifndef TRANSFERMODEL_H
#define TRANSFERMODEL_H

#include <QAbstractTableModel>
#include <QModelIndex>
#include <QVariant>
#include <QList>
#include <QSet>
#include <QIcon>
#include <QString>

#include "StructEnumDefinition.h"

#include "../../../interface/FacilityInterface.h"

class TransferModel : public QAbstractTableModel
{
	Q_OBJECT
public:
	struct transfertItem
	{
		quint64 id;
		QString source;
		QString size;
		QString destination;
	};
	struct ItemOfCopyListWithMoreInformations
	{
		quint64 currentProgression;
		ItemOfCopyList generalData;
		ActionTypeCopyList actionType;
		bool custom_with_progression;
	};
	struct currentTransfertItem
	{
		quint64 id;
		bool haveItem;
		QString from;
		QString to;
		QString current_file;
		int progressBar_file;
	};

	TransferModel();

	virtual int columnCount(const QModelIndex& parent = QModelIndex()) const;
	virtual QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const;
	virtual int rowCount(const QModelIndex& parent = QModelIndex()) const;
	virtual QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
	virtual bool setData(const QModelIndex& index, const QVariant& value, int role = Qt::EditRole);
	
	QList<quint64> synchronizeItems(const QList<returnActionOnCopyList>& returnActions);
	void setFacilityEngine(FacilityInterface * facilityEngine);

	int search(const QString &text,bool searchNext);
	int searchPrev(const QString &text);

	void setFileProgression(const QList<ProgressionItem> &progressionList);

	currentTransfertItem getCurrentTransfertItem();
protected:
	QList<transfertItem> transfertItemList;///< To have a transfer list for the user
	QList<quint64> startId,stopId;///< To show what is started, what is stopped
	QList<ItemOfCopyListWithMoreInformations> InternalRunningOperation;///< to have progression and stat
	QIcon start,stop;
private:
	int loop_size,index_for_loop;
	int sub_loop_size,sub_index_for_loop;
	int row,column;
	quint64 totalFile,totalSize,currentFile;
	FacilityInterface * facilityEngine;
	QString search_text;
	/// \brief index from start the search, decresed by remove before it
	int currentIndexSearch;
	bool haveSearchItem;
	quint64 searchId;
};

#endif // TRANSFERMODEL_H