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