limit number of file attributes
This commit is contained in:
@@ -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());
|
||||||
|
@@ -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 ());
|
||||||
|
Reference in New Issue
Block a user