summaryrefslogtreecommitdiff
path: root/plugins-alternative/CopyEngine/Rsync/RmPath.h
blob: c3cd77bfff645416b7c57e38be5a04279a1082a1 (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
/** \file RmPath.h
\brief Remove the path given as queued rmpath
\author alpha_one_x86
\version 0.3
\date 2011 */

#ifndef RMPATH_H
#define RMPATH_H

#include <QThread>
#include <QFileInfo>
#include <QString>
#include <QSemaphore>
#include <QStringList>
#include <QDir>

#include "Environment.h"

/// \brief Remove the path given as queued rmpath
class RmPath : public QThread
{
	Q_OBJECT
public:
	explicit RmPath();
	~RmPath();
	/// \brief add new path to remove
	void addPath(const QString &path,const bool &toSync);
signals:
	void errorOnFolder(const QFileInfo &,const QString &);
	void firstFolderFinish();
	void internalStartAddPath(const QString &path,const bool &toSync);
	void internalStartDoThisPath();
	void internalStartSkip();
	void internalStartRetry();
	void debugInformation(const DebugLevel &level,const QString &fonction,const QString &text,const QString &file,const int &ligne);
public slots:
	void skip();
	void retry();
private:
	void run();
	bool waitAction;
	bool stopIt;
	bool skipIt;
	QStringList pathList;
	QList<bool> toSyncList;
	void checkIfCanDoTheNext();
	QDir dir;
	bool rmpath(const QDir &dir,const bool &toSync);
	bool rmfile(QString filePath);
private slots:
	void internalDoThisPath();
	void internalAddPath(const QString &path,const bool &toSync);
	void internalSkip();
	void internalRetry();
};


#endif // RMPATH_H