From 12570608259fea045957d3eec6ec1bbd0dd11ade Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20G=C3=A2teau?= Date: Mon, 11 May 2015 09:38:30 +0200 Subject: [PATCH] Do not list hidden files in file lists This makes browsing $HOME a lot less cluttered. --- src/app/file_system.cpp | 12 ++++++++++++ src/app/file_system.h | 1 + src/app/ui/file_list.cpp | 4 +++- 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/app/file_system.cpp b/src/app/file_system.cpp index 16a965df6..5a4661aa4 100644 --- a/src/app/file_system.cpp +++ b/src/app/file_system.cpp @@ -84,6 +84,7 @@ public: bool isFolder() const; bool isBrowsable() const; + bool isHidden() const; std::string getKeyName() const; std::string getFileName() const; @@ -313,6 +314,17 @@ bool FileItem::isBrowsable() const return is_folder; } +bool FileItem::isHidden() const +{ + ASSERT(this->displayname != NOTINITIALIZED); + +#ifdef _WIN32 + return false; +#else + return this->displayname[0] == '.'; +#endif +} + std::string FileItem::getKeyName() const { ASSERT(this->keyname != NOTINITIALIZED); diff --git a/src/app/file_system.h b/src/app/file_system.h index dc10cc3ca..8f60748cc 100644 --- a/src/app/file_system.h +++ b/src/app/file_system.h @@ -68,6 +68,7 @@ namespace app { virtual bool isFolder() const = 0; virtual bool isBrowsable() const = 0; + virtual bool isHidden() const = 0; virtual std::string getKeyName() const = 0; virtual std::string getFileName() const = 0; diff --git a/src/app/ui/file_list.cpp b/src/app/ui/file_list.cpp index 0c3b0f7b8..0b68caac5 100644 --- a/src/app/ui/file_list.cpp +++ b/src/app/ui/file_list.cpp @@ -497,7 +497,9 @@ void FileList::regenerateList() it=m_list.begin(); it!=m_list.end(); ) { IFileItem* fileitem = *it; - if (!fileitem->isFolder() && + if (fileitem->isHidden()) + it = m_list.erase(it); + else if (!fileitem->isFolder() && !fileitem->hasExtension(m_exts.c_str())) { it = m_list.erase(it); }