From 40157039b4a5606e361f9c9da52a3d514c26f9f4 Mon Sep 17 00:00:00 2001 From: malte_langkabel Date: Thu, 11 May 2017 16:30:14 +0200 Subject: [PATCH] src: use FilePath in FileSystem::getFileNamesFromDirectory --- src/lib/utility/file/FileSystem.cpp | 6 +++--- src/lib/utility/file/FileSystem.h | 2 +- src/lib/utility/utility.h | 16 +++++++++++++++ src/lib_gui/qt/utility/utilityQt.cpp | 6 +++--- .../QtProjectWizzardContentPreferences.cpp | 7 +------ src/lib_java/project/SourceGroupJava.cpp | 13 ++++++------ src/test/FileSystemTestSuite.h | 20 ++++++++++++------- 7 files changed, 43 insertions(+), 27 deletions(-) diff --git a/src/lib/utility/file/FileSystem.cpp b/src/lib/utility/file/FileSystem.cpp index 99d962cf..af67e2b9 100644 --- a/src/lib/utility/file/FileSystem.cpp +++ b/src/lib/utility/file/FileSystem.cpp @@ -5,11 +5,11 @@ #include "boost/date_time.hpp" #include "boost/filesystem.hpp" -std::vector FileSystem::getFileNamesFromDirectory( +std::vector FileSystem::getFilePathsFromDirectory( const FilePath& path, const std::vector& extensions ){ std::set ext(extensions.begin(), extensions.end()); - std::vector files; + std::vector files; if (boost::filesystem::is_directory(path.path())) { @@ -30,7 +30,7 @@ std::vector FileSystem::getFileNamesFromDirectory( if (boost::filesystem::is_regular_file(*it) && ext.find(it->path().extension().string()) != ext.end()) { - files.push_back(it->path().generic_string()); + files.push_back(FilePath(it->path().generic_string())); } ++it; } diff --git a/src/lib/utility/file/FileSystem.h b/src/lib/utility/file/FileSystem.h index 99ba8c95..066ddaa1 100644 --- a/src/lib/utility/file/FileSystem.h +++ b/src/lib/utility/file/FileSystem.h @@ -10,7 +10,7 @@ class FileSystem { public: - static std::vector getFileNamesFromDirectory( + static std::vector getFilePathsFromDirectory( const FilePath& path, const std::vector& extensions); static FileInfo getFileInfoForPath(const FilePath& filePath); diff --git a/src/lib/utility/utility.h b/src/lib/utility/utility.h index 2b9842aa..0234ed71 100644 --- a/src/lib/utility/utility.h +++ b/src/lib/utility/utility.h @@ -4,8 +4,10 @@ #include #include #include +#include #include #include +#include #include #include "boost/date_time/posix_time/posix_time.hpp" @@ -58,6 +60,9 @@ namespace utility template std::vector createVectorFromElements(const Args&... args); + template + std::vector convert(const std::vector& sourceContainer, std::function conversion); + template std::vector toStrings(const std::vector& d); template<> @@ -198,6 +203,17 @@ std::vector utility::createVectorFromElements(const Args&... args) return v; } +template +std::vector utility::convert(const std::vector& sourceContainer, std::function conversion) +{ + std::vector targetContainer; + for (const SourceType& sourceElement: sourceContainer) + { + targetContainer.push_back(conversion(sourceElement)); + } + return targetContainer; +} + template std::vector utility::toStrings(const std::vector& d) { diff --git a/src/lib_gui/qt/utility/utilityQt.cpp b/src/lib_gui/qt/utility/utilityQt.cpp index 7148e28d..0e83615b 100644 --- a/src/lib_gui/qt/utility/utilityQt.cpp +++ b/src/lib_gui/qt/utility/utilityQt.cpp @@ -40,13 +40,13 @@ namespace utility { std::vector extensions; extensions.push_back(extension); - std::vector fontFileNames = FileSystem::getFileNamesFromDirectory(path, extensions); + std::vector fontFilePaths = FileSystem::getFilePathsFromDirectory(path, extensions); std::set loadedFontIds; - for (const std::string& fontFileName: fontFileNames) + for (const FilePath& fontFilePath: fontFilePaths) { - QFile file(fontFileName.c_str()); + QFile file(fontFilePath.str().c_str()); if (file.open(QIODevice::ReadOnly)) { int id = QFontDatabase::addApplicationFontFromData(file.readAll()); diff --git a/src/lib_gui/qt/window/project_wizzard/QtProjectWizzardContentPreferences.cpp b/src/lib_gui/qt/window/project_wizzard/QtProjectWizzardContentPreferences.cpp index 877f34b7..a514c540 100644 --- a/src/lib_gui/qt/window/project_wizzard/QtProjectWizzardContentPreferences.cpp +++ b/src/lib_gui/qt/window/project_wizzard/QtProjectWizzardContentPreferences.cpp @@ -16,12 +16,7 @@ QtProjectWizzardContentPreferences::QtProjectWizzardContentPreferences( , m_oldColorSchemeIndex(-1) , m_newColorSchemeIndex(-1) { - std::vector colorSchemePaths = - FileSystem::getFileNamesFromDirectory(ResourcePaths::getColorSchemesPath(), std::vector(1, ".xml")); - for (const std::string& colorScheme : colorSchemePaths) - { - m_colorSchemePaths.push_back(FilePath(colorScheme)); - } + m_colorSchemePaths = FileSystem::getFilePathsFromDirectory(ResourcePaths::getColorSchemesPath(), std::vector(1, ".xml")); } QtProjectWizzardContentPreferences::~QtProjectWizzardContentPreferences() diff --git a/src/lib_java/project/SourceGroupJava.cpp b/src/lib_java/project/SourceGroupJava.cpp index 5438dd96..fefa1e5a 100644 --- a/src/lib_java/project/SourceGroupJava.cpp +++ b/src/lib_java/project/SourceGroupJava.cpp @@ -187,14 +187,13 @@ std::vector SourceGroupJava::getClassPath() if (m_settings->getAbsoluteMavenDependenciesDirectory().exists()) { - const std::vector dependencies = FileSystem::getFileNamesFromDirectory( - m_settings->getAbsoluteMavenDependenciesDirectory(), - utility::createVectorFromElements(".jar") + utility::append( + classPath, + FileSystem::getFilePathsFromDirectory( + m_settings->getAbsoluteMavenDependenciesDirectory(), + utility::createVectorFromElements(".jar") + ) ); - for (const std::string& dependency: dependencies) - { - classPath.push_back(FilePath(dependency)); - } } for (FilePath rootDirectory: fetchRootDirectories()) diff --git a/src/test/FileSystemTestSuite.h b/src/test/FileSystemTestSuite.h index 00714060..fde275b2 100644 --- a/src/test/FileSystemTestSuite.h +++ b/src/test/FileSystemTestSuite.h @@ -7,7 +7,7 @@ #include "utility/file/FileSystem.h" -class FileSystemTestSuite : public CxxTest::TestSuite +class FileSystemTestSuite: public CxxTest::TestSuite { public: void test_find_cpp_files() @@ -15,8 +15,10 @@ public: std::vector extensions; extensions.push_back(".cpp"); - std::vector cppFiles = - FileSystem::getFileNamesFromDirectory(FilePath("data/FileSystemTestSuite"), extensions); + std::vector cppFiles = utility::convert( + FileSystem::getFilePathsFromDirectory(FilePath("data/FileSystemTestSuite"), extensions), + [](const FilePath& filePath){ return filePath.str(); } + ); TS_ASSERT_EQUALS(cppFiles.size(), 4); TS_ASSERT(isInVector(cppFiles, "data/FileSystemTestSuite/main.cpp")); @@ -30,8 +32,10 @@ public: std::vector extensions; extensions.push_back(".h"); - std::vector headerFiles = - FileSystem::getFileNamesFromDirectory(FilePath("data/FileSystemTestSuite"), extensions); + std::vector headerFiles = utility::convert( + FileSystem::getFilePathsFromDirectory(FilePath("data/FileSystemTestSuite"), extensions), + [](const FilePath& filePath){ return filePath.str(); } + ); TS_ASSERT_EQUALS(headerFiles.size(), 3); TS_ASSERT(isInVector(headerFiles, "data/FileSystemTestSuite/tictactoe.h")); @@ -46,8 +50,10 @@ public: extensions.push_back(".hpp"); extensions.push_back(".cpp"); - std::vector sourceFiles = - FileSystem::getFileNamesFromDirectory(FilePath("data/FileSystemTestSuite"), extensions); + std::vector sourceFiles = utility::convert( + FileSystem::getFilePathsFromDirectory(FilePath("data/FileSystemTestSuite"), extensions), + [](const FilePath& filePath){ return filePath.str(); } + ); TS_ASSERT_EQUALS(sourceFiles.size(), 8); }