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
|
#ifndef __TOOLS_DVDSWITCH_H
#define __TOOLS_DVDSWITCH_H
#include "helpers.h"
class cDirList : public cFileList
{
public:
cDirList(cImageList &ImageList);
};
class cFileDelThread : public cThread
{
private:
char *File;
bool Ok;
bool RightCheck(const char *value)
{
bool ret = false;
if(value)
{
cFileInfo *info = new cFileInfo(value);
ret = info->isWriteable();
DELETENULL(info);
}
return ret;
}
protected:
virtual void Action(void)
{
if(File)
cFileCMD::Del(File);
delete(this);
};
public:
cFileDelThread(const char *file)
{
File = NULL;
Ok = false;
if(!RightCheck(file))
OsdMsg(mtError,tr("no Rights to delete"));
else
{
Ok = true;
if(file)
{
asprintf(&File, "%s.sdel", file);
cFileCMD::Rn(file, File);
}
}
}
~cFileDelThread(void) { free(File); }
bool OK(void) { return Ok; };
};
class cFileMoveThread : public cThread
{
private:
char *FileName;
char *File;
char *Dest;
bool Ok;
bool RightCheck(const char *value)
{
bool ret = false;
if(value)
{
cFileInfo *info = new cFileInfo(value);
ret = info->isWriteable();
DELETENULL(info);
}
return ret;
}
protected:
virtual void Action(void)
{
if(FileName && File && Dest)
{
char *buffer = NULL;
asprintf(&buffer, "%s/%s", Dest, FileName);
cFileCMD::Rn(File, buffer);
free(buffer);
}
delete(this);
};
public:
cFileMoveThread(const char *file, char *dest)
{
FileName = NULL;
File = NULL;
Dest = NULL;
Ok = false;
if(!RightCheck(file) || !RightCheck(dest))
OsdMsg(mtError,tr("no Rights to move"));
else
{
Ok = true;
if(file)
{
cFileInfo *info = new cFileInfo(file);
FileName = strdup(info->FileName());
DELETENULL(info);
asprintf(&File, "%s.smove", file);
cFileCMD::Rn(file, File);
}
Dest = dest ? strdup(dest) : NULL;
}
}
~cFileMoveThread(void)
{
free(FileName);
free(File);
free(Dest);
}
bool OK(void) { return Ok; };
};
#endif // __TOOLS_DVDSWITCH_H
|