1 #include <QtScript/QScriptEngine>
2 
3 #include "Directory.h"
4 #include "FileInformation.h"
5 
6 namespace ADM_qtScript
7 {
FileInformation(const QString & file)8     FileInformation::FileInformation(const QString& file)
9     {
10         _fileInfo = QFileInfo(file);
11     }
12 
FileInformation(const File & file)13     FileInformation::FileInformation(const File& file)
14     {
15         _fileInfo = QFileInfo(file._file);
16     }
17 
FileInformation(const Directory & directory,const QString & file)18     FileInformation::FileInformation(const Directory& directory, const QString& file)
19     {
20         _fileInfo = QFileInfo(directory._dir, file);
21     }
22 
FileInformation(const QFileInfo & fileInfo)23 	FileInformation::FileInformation(const QFileInfo& fileInfo)
24     {
25         _fileInfo = QFileInfo(fileInfo);
26     }
27 
constructor(QScriptContext * context,QScriptEngine * engine)28     QScriptValue FileInformation::constructor(QScriptContext *context, QScriptEngine *engine)
29     {
30         if (context->isCalledAsConstructor())
31         {
32             File *file = NULL;
33             Directory *directory = NULL;
34 
35             if (context->argumentCount() == 1)
36             {
37                 file = qobject_cast<File*>(context->argument(0).toQObject());
38             }
39             else if (context->argumentCount() == 2)
40             {
41                 directory = qobject_cast<Directory*>(context->argument(0).toQObject());
42             }
43 
44             if (context->argumentCount() == 1 && context->argument(0).isString())
45             {
46                 return engine->newQObject(
47                            new FileInformation(context->argument(0).toString()), QScriptEngine::ScriptOwnership);
48             }
49 
50             if (context->argumentCount() == 1 && file != NULL)
51             {
52                 return engine->newQObject(
53                            new FileInformation(*file), QScriptEngine::ScriptOwnership);
54             }
55             else if (context->argumentCount() == 2 && directory != NULL && context->argument(1).isString())
56             {
57                 return engine->newQObject(
58                            new FileInformation(*directory, context->argument(1).toString()), QScriptEngine::ScriptOwnership);
59             }
60             else
61             {
62                 return context->throwError("Invalid arguments passed to constructor");
63             }
64         }
65 
66         return engine->undefinedValue();
67     }
68 
exists()69     bool FileInformation::exists()
70     {
71         return _fileInfo.exists();
72     }
73 
isAbsolute()74     bool FileInformation::isAbsolute()
75     {
76         return _fileInfo.isAbsolute();
77     }
78 
isBundle()79     bool FileInformation::isBundle()
80     {
81         return _fileInfo.isBundle();
82     }
83 
isDirectory()84     bool FileInformation::isDirectory()
85     {
86         return _fileInfo.isDir();
87     }
88 
isExecutable()89     bool FileInformation::isExecutable()
90     {
91         return _fileInfo.isExecutable();
92     }
93 
isFile()94     bool FileInformation::isFile()
95     {
96         return _fileInfo.isFile();
97     }
98 
isHidden()99     bool FileInformation::isHidden()
100     {
101         return _fileInfo.isHidden();
102     }
103 
isReadable()104     bool FileInformation::isReadable()
105     {
106         return _fileInfo.isReadable();
107     }
108 
isRelative()109     bool FileInformation::isRelative()
110     {
111         return _fileInfo.isRelative();
112     }
113 
isRoot()114     bool FileInformation::isRoot()
115     {
116         return _fileInfo.isRoot();
117     }
118 
isSymLink()119     bool FileInformation::isSymLink()
120     {
121         return _fileInfo.isSymLink();
122     }
123 
isWritable()124     bool FileInformation::isWritable()
125     {
126         return _fileInfo.isWritable();
127     }
128 
makeAbsolute()129     bool FileInformation::makeAbsolute()
130     {
131         return _fileInfo.makeAbsolute();
132     }
133 
refresh()134     void FileInformation::refresh()
135     {
136         _fileInfo.refresh();
137     }
138 
getAbsoluteDirectory()139     QScriptValue FileInformation::getAbsoluteDirectory()
140     {
141         return this->engine()->newQObject(new Directory(_fileInfo.absolutePath()), QScriptEngine::ScriptOwnership);
142     }
143 
getAbsoluteFilePath()144     QString FileInformation::getAbsoluteFilePath()
145     {
146         return _fileInfo.absoluteFilePath();
147     }
148 
getAbsolutePath()149     QString FileInformation::getAbsolutePath()
150     {
151         return _fileInfo.absolutePath();
152     }
153 
getBaseName()154     QString FileInformation::getBaseName()
155     {
156         return _fileInfo.baseName();
157     }
158 
getBundleName()159     QString FileInformation::getBundleName()
160     {
161         return _fileInfo.bundleName();
162     }
163 
getCaching()164     bool FileInformation::getCaching()
165     {
166         return _fileInfo.caching();
167     }
168 
getCanonicalFilePath()169     QString FileInformation::getCanonicalFilePath()
170     {
171         return _fileInfo.canonicalFilePath();
172     }
173 
getCanonicalPath()174     QString FileInformation::getCanonicalPath()
175     {
176         return _fileInfo.canonicalPath();
177     }
178 
getCompleteBaseName()179     QString FileInformation::getCompleteBaseName()
180     {
181         return _fileInfo.completeBaseName();
182     }
183 
getCompleteSuffix()184     QString FileInformation::getCompleteSuffix()
185     {
186         return _fileInfo.completeSuffix();
187     }
188 
getCreated()189     QDateTime FileInformation::getCreated()
190     {
191         return _fileInfo.created();
192     }
193 
getDirectory()194     QScriptValue FileInformation::getDirectory()
195     {
196         return this->engine()->newQObject(new Directory(_fileInfo.path()), QScriptEngine::ScriptOwnership);
197     }
198 
getFileName()199     QString FileInformation::getFileName()
200     {
201         return _fileInfo.fileName();
202     }
203 
getFilePath()204     QString FileInformation::getFilePath()
205     {
206         return _fileInfo.filePath();
207     }
208 
getGroup()209     QString FileInformation::getGroup()
210     {
211         return _fileInfo.group();
212     }
213 
getGroupId()214     unsigned FileInformation::getGroupId()
215     {
216         return _fileInfo.groupId();
217     }
218 
getLastModified()219     QDateTime FileInformation::getLastModified()
220     {
221         return _fileInfo.lastModified();
222     }
223 
getLastRead()224     QDateTime FileInformation::getLastRead()
225     {
226         return _fileInfo.lastRead();
227     }
228 
getOwner()229     QString FileInformation::getOwner()
230     {
231         return _fileInfo.owner();
232     }
233 
getOwnerId()234     unsigned int FileInformation::getOwnerId()
235     {
236         return _fileInfo.ownerId();
237     }
238 
getPath()239     QString FileInformation::getPath()
240     {
241         return _fileInfo.path();
242     }
243 
getPermissions()244     File::Permissions FileInformation::getPermissions()
245     {
246         return File::getPermissions(_fileInfo.permissions());
247     }
248 
getSize()249     qint64 FileInformation::getSize()
250     {
251         return _fileInfo.size();
252     }
253 
getSuffix()254     QString FileInformation::getSuffix()
255     {
256         return _fileInfo.suffix();
257     }
258 
getSymLinkTarget()259     QString FileInformation::getSymLinkTarget()
260     {
261         return _fileInfo.symLinkTarget();
262     }
263 
permission(File::Permissions permissions)264     bool FileInformation::permission(File::Permissions permissions)
265     {
266         return _fileInfo.permission(File::getQPermissions(permissions));
267     }
268 
setCaching(bool caching)269     void FileInformation::setCaching(bool caching)
270     {
271         return _fileInfo.setCaching(caching);
272     }
273 }
274