diff options
-rw-r--r-- | backends/fs/abstract-fs.h | 3 | ||||
-rw-r--r-- | backends/fs/posix/posix-fs.cpp | 8 | ||||
-rw-r--r-- | common/fs.cpp | 4 | ||||
-rw-r--r-- | common/fs.h | 5 |
4 files changed, 10 insertions, 10 deletions
diff --git a/backends/fs/abstract-fs.h b/backends/fs/abstract-fs.h index fed2b9b4c5..371c38a495 100644 --- a/backends/fs/abstract-fs.h +++ b/backends/fs/abstract-fs.h @@ -89,10 +89,11 @@ public: * * @param list List to put the contents of the directory in. * @param mode Mode to use while listing the directory. + * @param hidden Whether to include hidden files or not in the results. * * @return true if succesful, false otherwise (e.g. when the directory does not exist). */ - virtual bool getChildren(AbstractFSList &list, ListMode mode) const = 0; + virtual bool getChildren(AbstractFSList &list, ListMode mode, bool hidden) const = 0; /** * Returns a human readable path string. diff --git a/backends/fs/posix/posix-fs.cpp b/backends/fs/posix/posix-fs.cpp index fb5c9dc5d7..c976830402 100644 --- a/backends/fs/posix/posix-fs.cpp +++ b/backends/fs/posix/posix-fs.cpp @@ -71,7 +71,7 @@ public: virtual bool isWritable() const { return access(_path.c_str(), W_OK) == 0; } virtual AbstractFilesystemNode *getChild(const String &n) const; - virtual bool getChildren(AbstractFSList &list, ListMode mode) const; + virtual bool getChildren(AbstractFSList &list, ListMode mode, bool hidden) const; virtual AbstractFilesystemNode *getParent() const; private: @@ -162,7 +162,7 @@ AbstractFilesystemNode *POSIXFilesystemNode::getChild(const String &n) const { return new POSIXFilesystemNode(newPath, true); } -bool POSIXFilesystemNode::getChildren(AbstractFSList &myList, ListMode mode) const { +bool POSIXFilesystemNode::getChildren(AbstractFSList &myList, ListMode mode, bool hidden) const { assert(_isDirectory); DIR *dirp = opendir(_path.c_str()); @@ -173,8 +173,8 @@ bool POSIXFilesystemNode::getChildren(AbstractFSList &myList, ListMode mode) con // loop over dir entries using readdir while ((dp = readdir(dirp)) != NULL) { - // Skip 'invisible' files - if (dp->d_name[0] == '.') + // Skip 'invisible' files if necessary + if (dp->d_name[0] == '.' && !hidden) continue; String newPath(_path); diff --git a/common/fs.cpp b/common/fs.cpp index fc091262d7..6eaa35e67f 100644 --- a/common/fs.cpp +++ b/common/fs.cpp @@ -105,13 +105,13 @@ FilesystemNode FilesystemNode::getChild(const Common::String &n) const { return FilesystemNode(node); } -bool FilesystemNode::getChildren(FSList &fslist, ListMode mode) const { +bool FilesystemNode::getChildren(FSList &fslist, ListMode mode, bool hidden) const { if (!_realNode || !_realNode->isDirectory()) return false; AbstractFSList tmp; - if (!_realNode->getChildren(tmp, mode)) + if (!_realNode->getChildren(tmp, mode, hidden)) return false; fslist.clear(); diff --git a/common/fs.h b/common/fs.h index 328bebb15b..7291fb75fc 100644 --- a/common/fs.h +++ b/common/fs.h @@ -67,7 +67,6 @@ class FilesystemNode { private: int *_refCount; AbstractFilesystemNode *_realNode; - FilesystemNode(AbstractFilesystemNode *realNode); public: @@ -136,14 +135,14 @@ public: * that does not represent a directory, false is returned. * * @return true if succesful, false otherwise (e.g. when the directory does not exist). - * @todo Rename this to listChildren or getChildren. */ - virtual bool getChildren(FSList &fslist, ListMode mode = kListDirectoriesOnly) const; + virtual bool getChildren(FSList &fslist, ListMode mode = kListDirectoriesOnly, bool hidden = false) const; /** * Return a human readable string for this node, usable for display (e.g. * in the GUI code). Do *not* rely on it being usable for anything else, * like constructing paths! + * * @return the display name */ virtual Common::String getDisplayName() const; |