From 3cb15a8f777bd9907d8dc4ba57774c762ec1f67f Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Mon, 6 Jan 2014 13:29:14 +0300 Subject: simplify files enumerate function usage. --- src/gui/theme.cpp | 29 +++-------------------------- src/utils/files.cpp | 13 ++++++++++++- src/utils/files.h | 4 ++++ 3 files changed, 19 insertions(+), 27 deletions(-) diff --git a/src/gui/theme.cpp b/src/gui/theme.cpp index 760169d07..f329ada74 100644 --- a/src/gui/theme.cpp +++ b/src/gui/theme.cpp @@ -33,6 +33,7 @@ #include "resources/resourcemanager.h" #include "utils/dtor.h" +#include "utils/files.h" #include "utils/physfstools.h" #include @@ -649,37 +650,13 @@ bool Theme::tryThemePath(const std::string &themeName) void Theme::fillSkinsList(StringVect &list) { - char **skins = PhysFs::enumerateFiles( - branding.getStringValue("guiThemePath").c_str()); - - for (char **i = skins; *i; i++) - { - if (PhysFs::isDirectory(( - branding.getStringValue("guiThemePath") + *i).c_str())) - { - list.push_back(*i); - } - } - - PhysFs::freeList(skins); + Files::getFiles(branding.getStringValue("guiThemePath"), list); } void Theme::fillFontsList(StringVect &list) { PHYSFS_permitSymbolicLinks(1); - char **fonts = PhysFs::enumerateFiles( - branding.getStringValue("fontsPath").c_str()); - - for (char **i = fonts; *i; i++) - { - if (!PhysFs::isDirectory(( - branding.getStringValue("fontsPath") + *i).c_str())) - { - list.push_back(*i); - } - } - - PhysFs::freeList(fonts); + Files::getFiles(branding.getStringValue("fontsPath"), list); PHYSFS_permitSymbolicLinks(0); } diff --git a/src/utils/files.cpp b/src/utils/files.cpp index 206a4d4bd..72a4b2cb5 100644 --- a/src/utils/files.cpp +++ b/src/utils/files.cpp @@ -22,10 +22,10 @@ #if defined(ANDROID) || defined(__native_client__) #include "resources/resourcemanager.h" -#include "utils/physfstools.h" #endif #include "utils/mkdir.h" +#include "utils/physfstools.h" #include "localconsts.h" @@ -196,3 +196,14 @@ int Files::copyFile(const std::string &restrict srcName, fclose(dstFile); return 0; } + +void Files::getFiles(const std::string &path, StringVect &list) +{ + char **fonts = PhysFs::enumerateFiles(path.c_str()); + for (char **i = fonts; *i; i++) + { + if (!PhysFs::isDirectory((path + *i).c_str())) + list.push_back(*i); + } + PhysFs::freeList(fonts); +} diff --git a/src/utils/files.h b/src/utils/files.h index cc578464a..b7b5bbc31 100644 --- a/src/utils/files.h +++ b/src/utils/files.h @@ -21,6 +21,8 @@ #ifndef UTILS_FILES_H #define UTILS_FILES_H +#include "utils/stringvector.h" + #include #include "localconsts.h" @@ -52,6 +54,8 @@ namespace Files int copyFile(const std::string &restrict pFrom, const std::string &restrict pTo); + + void getFiles(const std::string &path, StringVect &list); } // namespace Files #endif // UTILS_FILES_H -- cgit v1.2.3-60-g2f50