limit number of file attributes

This commit is contained in:
heckflosse
2016-01-28 14:35:08 +01:00
parent d734372ffa
commit 80085787a1
2 changed files with 7 additions and 7 deletions

View File

@@ -111,15 +111,15 @@ Glib::RefPtr<Gio::FileInfo> safe_next_file (Glib::RefPtr<Gio::FileEnumerator> &d
return info; return info;
} }
# define SAFE_ENUMERATOR_CODE_START \ # define SAFE_ENUMERATOR_CODE_START(attributes) \
do{try { if ((dirList = dir->enumerate_children ())) \ do{try { if ((dirList = dir->enumerate_children ((attributes)))) \
for (Glib::RefPtr<Gio::FileInfo> info = safe_next_file(dirList); info; info = safe_next_file(dirList)) { for (Glib::RefPtr<Gio::FileInfo> info = safe_next_file(dirList); info; info = safe_next_file(dirList)) {
# define SAFE_ENUMERATOR_CODE_END \ # define SAFE_ENUMERATOR_CODE_END \
}} catch (Glib::Exception& ex) { printf ("%s\n", ex.what().c_str()); }}while(0) }} catch (Glib::Exception& ex) { printf ("%s\n", ex.what().c_str()); }}while(0)
/* /*
* safe_build_file_list can now filter out at the source all files that doesn't have the extensions specified (if provided) * safe_build_file_list can now filter out at the source all files that don't have the extensions specified (if provided)
*/ */
void safe_build_file_list (Glib::RefPtr<Gio::File> &dir, std::vector<Glib::ustring> &names, const Glib::ustring &directory, const std::vector<Glib::ustring> *extensions) void safe_build_file_list (Glib::RefPtr<Gio::File> &dir, std::vector<Glib::ustring> &names, const Glib::ustring &directory, const std::vector<Glib::ustring> *extensions)
{ {
@@ -127,7 +127,7 @@ void safe_build_file_list (Glib::RefPtr<Gio::File> &dir, std::vector<Glib::ustri
if (dir) { if (dir) {
if (!extensions) { if (!extensions) {
SAFE_ENUMERATOR_CODE_START SAFE_ENUMERATOR_CODE_START("standard::name")
names.push_back (Glib::build_filename (directory, info->get_name())); names.push_back (Glib::build_filename (directory, info->get_name()));
SAFE_ENUMERATOR_CODE_END; SAFE_ENUMERATOR_CODE_END;
} else { } else {
@@ -138,7 +138,7 @@ void safe_build_file_list (Glib::RefPtr<Gio::File> &dir, std::vector<Glib::ustri
lcExtensions.push_back ((*extensions)[i].lowercase()); lcExtensions.push_back ((*extensions)[i].lowercase());
} }
SAFE_ENUMERATOR_CODE_START SAFE_ENUMERATOR_CODE_START("standard::name")
// convert the current filename to lowercase in a new ustring // convert the current filename to lowercase in a new ustring
Glib::ustring fname = Glib::ustring(info->get_name()).lowercase(); Glib::ustring fname = Glib::ustring(info->get_name()).lowercase();
@@ -174,7 +174,7 @@ void safe_build_subdir_list (Glib::RefPtr<Gio::File> &dir, std::vector<Glib::ust
return; return;
} }
SAFE_ENUMERATOR_CODE_START SAFE_ENUMERATOR_CODE_START("standard::name,standard::type,standard::is_hidden")
if (info->get_file_type() == Gio::FILE_TYPE_DIRECTORY && (!info->is_hidden() || add_hidden)) { if (info->get_file_type() == Gio::FILE_TYPE_DIRECTORY && (!info->is_hidden() || add_hidden)) {
subDirs.push_back (info->get_name()); subDirs.push_back (info->get_name());

View File

@@ -351,7 +351,7 @@ void CacheManager::applyCacheSizeLimitation () const
const auto dirName = Glib::build_filename (baseDir, "data"); const auto dirName = Glib::build_filename (baseDir, "data");
const auto dir = Gio::File::create_for_path (dirName); const auto dir = Gio::File::create_for_path (dirName);
auto enumerator = dir->enumerate_children ("standard::*,time::*"); auto enumerator = dir->enumerate_children ("standard::name,time::modified");
while (auto file = enumerator->next_file ()) { while (auto file = enumerator->next_file ()) {
files.emplace_back (file->get_name (), file->modification_time ()); files.emplace_back (file->get_name (), file->modification_time ());