From 00eb16189b9c1ba4bef1c9a7e60c60d3642ba386 Mon Sep 17 00:00:00 2001 From: Andrew Belt Date: Sat, 3 Jul 2021 07:11:36 -0400 Subject: [PATCH] Use "directory/dir" terminology instead of "folder" except for UI text. --- adapters/standalone.cpp | 2 +- include/asset.hpp | 4 +-- include/engine/Module.hpp | 7 +++-- include/patch.hpp | 2 +- include/plugin.hpp | 2 +- include/system.hpp | 50 ++++++++++++++++++------------------ src/app/MenuBar.cpp | 13 +++++----- src/app/ModuleWidget.cpp | 26 +++++++++++-------- src/asset.cpp | 10 ++++---- src/engine/Module.cpp | 2 +- src/patch.cpp | 20 +++++++-------- src/plugin.cpp | 14 +++++----- src/system.cpp | 54 +++++++++++++++++++-------------------- src/window.cpp | 4 +-- 14 files changed, 109 insertions(+), 101 deletions(-) diff --git a/adapters/standalone.cpp b/adapters/standalone.cpp index 09017459..e34779ea 100644 --- a/adapters/standalone.cpp +++ b/adapters/standalone.cpp @@ -157,7 +157,7 @@ int main(int argc, char* argv[]) { // Check existence of the system res/ directory std::string resDir = asset::system("res"); - if (!system::isDirectory(resDir)) { + if (!system::isDir(resDir)) { std::string message = string::f("Rack's resource directory \"%s\" does not exist. Make sure Rack is correctly installed and launched.", resDir.c_str()); osdialog_message(OSDIALOG_ERROR, OSDIALOG_OK, message.c_str()); exit(1); diff --git a/include/asset.hpp b/include/asset.hpp index 61f616a6..f7cb1a22 100644 --- a/include/asset.hpp +++ b/include/asset.hpp @@ -26,10 +26,10 @@ std::string system(std::string filename = ""); /** Returns the path of a user asset. Can read and write files to this location. */ std::string user(std::string filename = ""); -/** Returns the path of a asset in the plugin's folder. +/** Returns the path of a asset in the plugin's dir. Plugin assets should be read-only by plugins. Examples: - asset::plugin(pluginInstance, "samples/00.wav") // "/path/to/Rack/user/folder/plugins/MyPlugin/samples/00.wav" + asset::plugin(pluginInstance, "samples/00.wav") // "/path/to/Rack/user/dir/plugins/MyPlugin/samples/00.wav" */ std::string plugin(plugin::Plugin* plugin, std::string filename = ""); diff --git a/include/engine/Module.hpp b/include/engine/Module.hpp index 75a7aac6..f61970f5 100644 --- a/include/engine/Module.hpp +++ b/include/engine/Module.hpp @@ -218,8 +218,11 @@ struct Module { bypassRoutes.push_back(br); } - /** Creates and returns the module's patch storage folder path. - Since the folder is created when this is called, do not call it frequently or in an audio/engine thread such as process(). + /** Creates and returns the module's patch storage directory path. + Since the directory is created when this is called, do not call it frequently or in an audio/engine thread such as process(). + + The Module must be added to Engine before this can be called, so it cannot be called in your Module constructor. + Override onAdd() instead. */ std::string createPatchStorageDir(); std::string getPatchStorageDir(); diff --git a/include/patch.hpp b/include/patch.hpp index 82a9cc33..9fd59ccb 100644 --- a/include/patch.hpp +++ b/include/patch.hpp @@ -13,7 +13,7 @@ struct PatchManager { /** The currently loaded patch file path */ std::string path; - /** Path to autosave folder */ + /** Path to autosave dir */ std::string autosavePath; /** Path to user template patch */ std::string templatePath; diff --git a/include/plugin.hpp b/include/plugin.hpp index 668d60e3..2a826093 100644 --- a/include/plugin.hpp +++ b/include/plugin.hpp @@ -28,7 +28,7 @@ bool isSlugValid(const std::string& slug); std::string normalizeSlug(const std::string& slug); -/** Path to plugins installation folder */ +/** Path to plugins installation dir */ extern std::string pluginsPath; extern std::vector plugins; diff --git a/include/system.hpp b/include/system.hpp index 6fb3db28..62001391 100644 --- a/include/system.hpp +++ b/include/system.hpp @@ -32,21 +32,21 @@ bool exists(const std::string& path); /** Returns whether the given path is a file. */ bool isFile(const std::string& path); /** Returns whether the given path is a directory. */ -bool isDirectory(const std::string& path); +bool isDir(const std::string& path); uint64_t getFileSize(const std::string& path); -/** Moves a file or folder. +/** Moves a file or directory. Does not overwrite the destination. If this behavior is needed, use remove() or removeRecursively() before moving. */ void rename(const std::string& srcPath, const std::string& destPath); -/** Copies a file or folder recursively. */ +/** Copies a file or directory recursively. */ void copy(const std::string& srcPath, const std::string& destPath); /** Creates a directory. The parent directory must exist. */ -bool createDirectory(const std::string& path); +bool createDir(const std::string& path); /** Creates all directories up to the path. */ -bool createDirectories(const std::string& path); +bool createDirs(const std::string& path); /** Deletes a file or empty directory. Returns whether the deletion was successful. */ @@ -55,8 +55,8 @@ bool remove(const std::string& path); Returns the number of files and directories that were deleted. */ int removeRecursively(const std::string& path); -std::string getWorkingDirectory(); -void setWorkingDirectory(const std::string& path); +std::string getWorkingDir(); +void setWorkingDir(const std::string& path); std::string getTempDir(); /** Returns the absolute path beginning with "/". */ std::string getAbsolute(const std::string& path); @@ -68,11 +68,11 @@ Examples: std::string getCanonical(const std::string& path); /** Extracts the parent directory of the path. Examples: - getDirectory("/var/tmp/example.txt") // "/var/tmp" - getDirectory("/") // "" - getDirectory("/var/tmp/.") // "/var/tmp" + getDir("/var/tmp/example.txt") // "/var/tmp" + getDir("/") // "" + getDir("/var/tmp/.") // "/var/tmp" */ -std::string getDirectory(const std::string& path); +std::string getDir(const std::string& path); /** Extracts the filename of the path. Examples: getFilename("/foo/bar.txt") // "bar.txt" @@ -87,9 +87,9 @@ Examples: std::string getFilename(const std::string& path); /** Extracts the portion of a filename without the extension. Examples: - getExtension("/foo/bar.txt") // "bar" - getExtension("/foo/.bar") // "" - getExtension("/foo/foo.bar.baz.tar") // "foo.bar.baz" + getStem("/foo/bar.txt") // "bar" + getStem("/foo/.bar") // "" + getStem("/foo/foo.tar.ztd") // "foo.tar" */ std::string getStem(const std::string& path); /** Extracts the extension of a filename, including the dot. @@ -106,21 +106,21 @@ Examples: */ std::string getExtension(const std::string& path); -/** Compresses the contents of a folder (recursively) to an archive. +/** Compresses the contents of a directory (recursively) to an archive. Uses the Unix Standard TAR + Zstandard format (.tar.zst). An equivalent shell command is - ZSTD_CLEVEL=1 tar -cf archivePath --zstd -C folderPath . + ZSTD_CLEVEL=1 tar -cf archivePath --zstd -C dirPath . */ -void archiveFolder(const std::string& archivePath, const std::string& folderPath, int compressionLevel = 1); -std::vector archiveFolder(const std::string& folderPath, int compressionLevel = 1); -/** Extracts an archive into a folder. +void archiveDir(const std::string& archivePath, const std::string& dirPath, int compressionLevel = 1); +std::vector archiveDir(const std::string& dirPath, int compressionLevel = 1); +/** Extracts an archive into a directory. An equivalent shell command is - tar -xf archivePath --zstd -C folderPath + tar -xf archivePath --zstd -C dirPath */ -void unarchiveToFolder(const std::string& archivePath, const std::string& folderPath); -void unarchiveToFolder(const std::vector& archiveData, const std::string& folderPath); +void unarchiveToDir(const std::string& archivePath, const std::string& dirPath); +void unarchiveToDir(const std::vector& archiveData, const std::string& dirPath); // Threading @@ -145,13 +145,13 @@ std::string getOperatingSystemInfo(); // Applications -/** Opens a URL, also happens to work with PDFs and folders. +/** Opens a URL in a browser. Shell injection is possible, so make sure the URL is trusted or hard coded. May block, so open in a new thread. */ void openBrowser(const std::string& url); -/** Opens Windows Explorer, Finder, etc at the folder location. */ -void openFolder(const std::string& path); +/** Opens Windows Explorer, Finder, etc at a directory location. */ +void openDir(const std::string& path); /** Runs an executable without blocking. The launched process will continue running if the current process is closed. */ diff --git a/src/app/MenuBar.cpp b/src/app/MenuBar.cpp index e69306e8..a66aa116 100644 --- a/src/app/MenuBar.cpp +++ b/src/app/MenuBar.cpp @@ -70,11 +70,11 @@ struct UrlItem : ui::MenuItem { } }; -struct FolderItem : ui::MenuItem { +struct DirItem : ui::MenuItem { std::string path; void onAction(const ActionEvent& e) override { std::thread t([=] { - system::openFolder(path); + system::openDir(path); }); t.detach(); } @@ -1041,14 +1041,15 @@ struct HelpButton : MenuButton { menu->addChild(checkAppUpdateItem); } - FolderItem* folderItem = new FolderItem; - folderItem->text = "Open user folder"; - folderItem->path = asset::user(""); - menu->addChild(folderItem); + DirItem* dirItem = new DirItem; + dirItem->text = "Open user folder"; + dirItem->path = asset::user(""); + menu->addChild(dirItem); menu->addChild(new ui::MenuSeparator); menu->addChild(createMenuLabel(APP_VARIANT)); + menu->addChild(createMenuLabel(APP_VERSION)); } diff --git a/src/app/ModuleWidget.cpp b/src/app/ModuleWidget.cpp index 9c0d471f..73874de6 100644 --- a/src/app/ModuleWidget.cpp +++ b/src/app/ModuleWidget.cpp @@ -29,16 +29,20 @@ static const char PRESET_FILTERS[] = "VCV Rack module preset (.vcvm):vcvm"; struct ModuleUrlItem : ui::MenuItem { std::string url; void onAction(const ActionEvent& e) override { - std::thread t(system::openBrowser, url); + std::thread t([=]() { + system::openBrowser(url); + }); t.detach(); } }; -struct ModuleFolderItem : ui::MenuItem { +struct ModuleDirItem : ui::MenuItem { std::string path; void onAction(const ActionEvent& e) override { - std::thread t(system::openFolder, path); + std::thread t([=]() { + system::openDir(path); + }); t.detach(); } }; @@ -147,7 +151,7 @@ struct ModuleInfoItem : ui::MenuItem { // plugin folder if (model->plugin->path != "") { - ModuleFolderItem* pathItem = new ModuleFolderItem; + ModuleDirItem* pathItem = new ModuleDirItem; pathItem->text = "Open plugin folder"; pathItem->path = model->plugin->path; menu->addChild(pathItem); @@ -284,14 +288,14 @@ struct ModulePresetDirItem : ui::MenuItem { static void appendPresetItems(ui::Menu* menu, WeakPtr moduleWidget, std::string presetDir) { bool hasPresets = false; // Note: This is not cached, so opening this menu each time might have a bit of latency. - if (system::isDirectory(presetDir)) { + if (system::isDir(presetDir)) { for (const std::string& path : system::getEntries(presetDir)) { std::string name = system::getStem(path); // Remove "1_", "42_", "001_", etc at the beginning of preset filenames std::regex r("^\\d*_"); name = std::regex_replace(name, r, ""); - if (system::isDirectory(path)) { + if (system::isDir(path)) { hasPresets = true; ModulePresetDirItem* dirItem = new ModulePresetDirItem; @@ -843,13 +847,13 @@ void ModuleWidget::loadTemplate() { void ModuleWidget::loadDialog() { std::string presetDir = model->getUserPresetDir(); - system::createDirectories(presetDir); + system::createDirs(presetDir); // Delete directories if empty DEFER({ try { system::remove(presetDir); - system::remove(system::getDirectory(presetDir)); + system::remove(system::getDir(presetDir)); } catch (Exception& e) { // Ignore exceptions if directory cannot be removed. @@ -894,7 +898,7 @@ void ModuleWidget::save(std::string filename) { void ModuleWidget::saveTemplate() { std::string presetDir = model->getUserPresetDir(); - system::createDirectories(presetDir); + system::createDirs(presetDir); std::string templatePath = system::join(presetDir, "template.vcvm"); save(templatePath); } @@ -929,13 +933,13 @@ void ModuleWidget::clearTemplateDialog() { void ModuleWidget::saveDialog() { std::string presetDir = model->getUserPresetDir(); - system::createDirectories(presetDir); + system::createDirs(presetDir); // Delete directories if empty DEFER({ try { system::remove(presetDir); - system::remove(system::getDirectory(presetDir)); + system::remove(system::getDir(presetDir)); } catch (Exception& e) { // Ignore exceptions if directory cannot be removed. diff --git a/src/asset.cpp b/src/asset.cpp index 2b8b81a3..d49e876e 100644 --- a/src/asset.cpp +++ b/src/asset.cpp @@ -34,7 +34,7 @@ static void initSystemDir() { return; if (settings::devMode) { - systemDir = system::getWorkingDirectory(); + systemDir = system::getWorkingDir(); return; } @@ -65,13 +65,13 @@ static void initSystemDir() { wchar_t moduleBufW[MAX_PATH] = L""; DWORD length = GetModuleFileNameW(NULL, moduleBufW, LENGTHOF(moduleBufW)); assert(length > 0); - // Get folder of executable + // Get directory of executable PathRemoveFileSpecW(moduleBufW); systemDir = string::UTF16toUTF8(moduleBufW); #endif #if defined ARCH_LIN // Use the current working directory as the default path on Linux. - systemDir = system::getWorkingDirectory(); + systemDir = system::getWorkingDir(); #endif } @@ -86,7 +86,7 @@ static void initUserDir() { } #if defined ARCH_WIN - // Get "My Documents" folder + // Get "My Documents" path wchar_t documentsBufW[MAX_PATH] = L"."; HRESULT result = SHGetFolderPathW(NULL, CSIDL_MYDOCUMENTS, NULL, SHGFP_TYPE_CURRENT, documentsBufW); assert(result == S_OK); @@ -114,7 +114,7 @@ void init() { initSystemDir(); initUserDir(); - system::createDirectory(userDir); + system::createDir(userDir); } diff --git a/src/engine/Module.cpp b/src/engine/Module.cpp index 89cf2e09..eec44d60 100644 --- a/src/engine/Module.cpp +++ b/src/engine/Module.cpp @@ -84,7 +84,7 @@ void Module::config(int numParams, int numInputs, int numOutputs, int numLights) std::string Module::createPatchStorageDir() { std::string path = getPatchStorageDir(); - system::createDirectories(path); + system::createDirs(path); return path; } diff --git a/src/patch.cpp b/src/patch.cpp index db37a1d3..9738ffb6 100644 --- a/src/patch.cpp +++ b/src/patch.cpp @@ -100,7 +100,7 @@ void PatchManager::save(std::string path) { double startTime = system::getTime(); // Set compression level to 1 so that a 500MB/s SSD is almost bottlenecked - system::archiveFolder(path, autosavePath, 1); + system::archiveDir(path, autosavePath, 1); double endTime = system::getTime(); INFO("Archived patch in %lf seconds", (endTime - startTime)); } @@ -131,11 +131,11 @@ void PatchManager::saveAsDialog() { std::string filename; if (this->path == "") { dir = asset::user("patches"); - system::createDirectories(dir); + system::createDirs(dir); filename = "Untitled.vcv"; } else { - dir = system::getDirectory(this->path); + dir = system::getDir(this->path); filename = system::getFilename(this->path); } @@ -196,7 +196,7 @@ void PatchManager::saveAutosave() { DEFER({json_decref(rootJ);}); // Write to temporary path and then rename it to the correct path - system::createDirectories(autosavePath); + system::createDirs(autosavePath); std::string tmpPath = patchPath + ".tmp"; FILE* file = std::fopen(tmpPath.c_str(), "w"); if (!file) { @@ -212,9 +212,9 @@ void PatchManager::saveAutosave() { void PatchManager::cleanAutosave() { - // Remove files and folders in the `autosave/modules` folder that doesn't match a module in the rack. + // Remove files and directories in the `autosave/modules` directory that doesn't match a module in the rack. std::string modulesDir = system::join(autosavePath, "modules"); - if (system::isDirectory(modulesDir)) { + if (system::isDir(modulesDir)) { for (const std::string& entry : system::getEntries(modulesDir)) { try { int64_t moduleId = std::stol(system::getFilename(entry)); @@ -249,7 +249,7 @@ void PatchManager::load(std::string path) { INFO("Loading patch %s", path.c_str()); system::removeRecursively(autosavePath); - system::createDirectories(autosavePath); + system::createDirs(autosavePath); if (isPatchLegacyV1(path)) { // Copy the .vcv file directly to "patch.json". @@ -258,7 +258,7 @@ void PatchManager::load(std::string path) { else { // Extract the .vcv file as a .tar.zst archive. double startTime = system::getTime(); - system::unarchiveToFolder(path, autosavePath); + system::unarchiveToDir(path, autosavePath); double endTime = system::getTime(); INFO("Unarchived patch in %lf seconds", (endTime - startTime)); } @@ -349,10 +349,10 @@ void PatchManager::loadDialog() { std::string dir; if (this->path == "") { dir = asset::user("patches"); - system::createDirectory(dir); + system::createDir(dir); } else { - dir = system::getDirectory(this->path); + dir = system::getDir(this->path); } osdialog_filters* filters = osdialog_filters_parse(PATCH_FILTERS); diff --git a/src/plugin.cpp b/src/plugin.cpp index 1a515664..99598f93 100644 --- a/src/plugin.cpp +++ b/src/plugin.cpp @@ -53,10 +53,10 @@ static void* loadLibrary(std::string libraryPath) { } #else // As of Rack v2.0, plugins are linked with `-rpath=.` so change current directory so it can find libRack. - std::string cwd = system::getWorkingDirectory(); - system::setWorkingDirectory(asset::systemDir); + std::string cwd = system::getWorkingDir(); + system::setWorkingDir(asset::systemDir); // Change it back when we're finished - DEFER({system::setWorkingDirectory(cwd);}); + DEFER({system::setWorkingDir(cwd);}); // Load library with dlopen void* handle = dlopen(libraryPath.c_str(), RTLD_NOW | RTLD_LOCAL); if (!handle) @@ -166,7 +166,7 @@ static Plugin* loadPlugin(std::string path) { static void loadPlugins(std::string path) { for (std::string pluginPath : system::getEntries(path)) { - if (!system::isDirectory(pluginPath)) + if (!system::isDir(pluginPath)) continue; if (!loadPlugin(pluginPath)) { // Ignore bad plugins. They are reported in the log. @@ -187,7 +187,7 @@ static void extractPackages(std::string path) { // Extract package INFO("Extracting package %s", packagePath.c_str()); try { - system::unarchiveToFolder(packagePath, path); + system::unarchiveToDir(packagePath, path); } catch (Exception& e) { WARN("Plugin package %s failed to extract: %s", packagePath.c_str(), e.what()); @@ -221,7 +221,7 @@ void init() { } // Get user plugins directory - system::createDirectory(pluginsPath); + system::createDir(pluginsPath); // Extract packages and load plugins extractPackages(pluginsPath); @@ -232,7 +232,7 @@ void init() { std::string fundamentalDir = system::join(pluginsPath, "Fundamental"); if (!settings::devMode && !getPlugin("Fundamental") && system::isFile(fundamentalSrc)) { INFO("Extracting bundled Fundamental package"); - system::unarchiveToFolder(fundamentalSrc.c_str(), pluginsPath.c_str()); + system::unarchiveToDir(fundamentalSrc.c_str(), pluginsPath.c_str()); loadPlugin(fundamentalDir); } } diff --git a/src/system.cpp b/src/system.cpp index 73ea039c..17b2944f 100644 --- a/src/system.cpp +++ b/src/system.cpp @@ -100,7 +100,7 @@ bool isFile(const std::string& path) { } -bool isDirectory(const std::string& path) { +bool isDir(const std::string& path) { try { return fs::is_directory(fs::u8path(path)); } @@ -140,7 +140,7 @@ void copy(const std::string& srcPath, const std::string& destPath) { } -bool createDirectory(const std::string& path) { +bool createDir(const std::string& path) { try { return fs::create_directory(fs::u8path(path)); } @@ -150,7 +150,7 @@ bool createDirectory(const std::string& path) { } -bool createDirectories(const std::string& path) { +bool createDirs(const std::string& path) { try { return fs::create_directories(fs::u8path(path)); } @@ -180,7 +180,7 @@ int removeRecursively(const std::string& path) { } -std::string getWorkingDirectory() { +std::string getWorkingDir() { try { return fs::current_path().generic_u8string(); } @@ -190,7 +190,7 @@ std::string getWorkingDirectory() { } -void setWorkingDirectory(const std::string& path) { +void setWorkingDir(const std::string& path) { try { fs::current_path(fs::u8path(path)); } @@ -230,7 +230,7 @@ std::string getCanonical(const std::string& path) { } -std::string getDirectory(const std::string& path) { +std::string getDir(const std::string& path) { try { return fs::u8path(path).parent_path().generic_u8string(); } @@ -300,7 +300,7 @@ static la_ssize_t archiveWriteVectorCallback(struct archive* a, void* client_dat } -static void archiveFolder(const std::string& archivePath, std::vector* archiveData, const std::string& folderPath, int compressionLevel) { +static void archiveDir(const std::string& archivePath, std::vector* archiveData, const std::string& dirPath, int compressionLevel) { // Based on minitar.c create() in libarchive examples int r; @@ -330,19 +330,19 @@ static void archiveFolder(const std::string& archivePath, std::vector* } DEFER({archive_write_close(a);}); - // Open folder for reading + // Open dir for reading struct archive* disk = archive_read_disk_new(); DEFER({archive_read_free(disk);}); #if defined ARCH_WIN - r = archive_read_disk_open_w(disk, string::UTF8toUTF16(folderPath).c_str()); + r = archive_read_disk_open_w(disk, string::UTF8toUTF16(dirPath).c_str()); #else - r = archive_read_disk_open(disk, folderPath.c_str()); + r = archive_read_disk_open(disk, dirPath.c_str()); #endif if (r < ARCHIVE_OK) - throw Exception("Archiver could not open folder %s for reading: %s", folderPath.c_str(), archive_error_string(a)); + throw Exception("Archiver could not open dir %s for reading: %s", dirPath.c_str(), archive_error_string(a)); DEFER({archive_read_close(a);}); - // Iterate folder + // Iterate dir for (;;) { struct archive_entry* entry = archive_entry_new(); DEFER({archive_entry_free(entry);}); @@ -363,7 +363,7 @@ static void archiveFolder(const std::string& archivePath, std::vector* #else entryPath = archive_entry_pathname(entry); #endif - entryPath = getRelativePath(entryPath, folderPath); + entryPath = getRelativePath(entryPath, dirPath); #if defined ARCH_WIN // FIXME This doesn't seem to set UTF-8 paths on Windows. archive_entry_copy_pathname_w(entry, string::UTF8toUTF16(entryPath).c_str()); @@ -392,13 +392,13 @@ static void archiveFolder(const std::string& archivePath, std::vector* } } -void archiveFolder(const std::string& archivePath, const std::string& folderPath, int compressionLevel) { - archiveFolder(archivePath, NULL, folderPath, compressionLevel); +void archiveDir(const std::string& archivePath, const std::string& dirPath, int compressionLevel) { + archiveDir(archivePath, NULL, dirPath, compressionLevel); } -std::vector archiveFolder(const std::string& folderPath, int compressionLevel) { +std::vector archiveDir(const std::string& dirPath, int compressionLevel) { std::vector archiveData; - archiveFolder("", &archiveData, folderPath, compressionLevel); + archiveDir("", &archiveData, dirPath, compressionLevel); return archiveData; } @@ -420,7 +420,7 @@ static la_ssize_t archiveReadVectorCallback(struct archive *a, void* client_data return len; } -static void unarchiveToFolder(const std::string& archivePath, const std::vector* archiveData, const std::string& folderPath) { +static void unarchiveToDir(const std::string& archivePath, const std::vector* archiveData, const std::string& dirPath) { // Based on minitar.c extract() in libarchive examples int r; @@ -450,7 +450,7 @@ static void unarchiveToFolder(const std::string& archivePath, const std::vector< } DEFER({archive_read_close(a);}); - // Open folder for writing + // Open dir for writing struct archive* disk = archive_write_disk_new(); DEFER({archive_write_free(disk);}); int flags = ARCHIVE_EXTRACT_TIME; @@ -467,11 +467,11 @@ static void unarchiveToFolder(const std::string& archivePath, const std::vector< if (r < ARCHIVE_OK) throw Exception("Unarchiver could not read entry from archive: %s", archive_error_string(a)); - // Convert relative pathname to absolute based on folderPath + // Convert relative pathname to absolute based on dirPath std::string entryPath = archive_entry_pathname(entry); if (!fs::u8path(entryPath).is_relative()) throw Exception("Unarchiver does not support absolute tar paths: %s", entryPath.c_str()); - entryPath = (fs::u8path(folderPath) / fs::u8path(entryPath)).generic_u8string(); + entryPath = (fs::u8path(dirPath) / fs::u8path(entryPath)).generic_u8string(); #if defined ARCH_WIN archive_entry_copy_pathname_w(entry, string::UTF8toUTF16(entryPath).c_str()); #else @@ -481,7 +481,7 @@ static void unarchiveToFolder(const std::string& archivePath, const std::vector< // Write entry to disk r = archive_write_header(disk, entry); if (r < ARCHIVE_OK) - throw Exception("Unarchiver could not write file to folder: %s", archive_error_string(disk)); + throw Exception("Unarchiver could not write file to dir: %s", archive_error_string(disk)); // Copy data to file for (;;) { @@ -508,12 +508,12 @@ static void unarchiveToFolder(const std::string& archivePath, const std::vector< } } -void unarchiveToFolder(const std::string& archivePath, const std::string& folderPath) { - unarchiveToFolder(archivePath, NULL, folderPath); +void unarchiveToDir(const std::string& archivePath, const std::string& dirPath) { + unarchiveToDir(archivePath, NULL, dirPath); } -void unarchiveToFolder(const std::vector& archiveData, const std::string& folderPath) { - unarchiveToFolder("", &archiveData, folderPath); +void unarchiveToDir(const std::vector& archiveData, const std::string& dirPath) { + unarchiveToDir("", &archiveData, dirPath); } @@ -687,7 +687,7 @@ void openBrowser(const std::string& url) { } -void openFolder(const std::string& path) { +void openDir(const std::string& path) { #if defined ARCH_LIN std::string command = "xdg-open \"" + path + "\""; (void) std::system(command.c_str()); diff --git a/src/window.cpp b/src/window.cpp index ba5235c8..a38fb795 100644 --- a/src/window.cpp +++ b/src/window.cpp @@ -507,10 +507,10 @@ void Window::screenshot(const std::string& screenshotPath) { void Window::screenshotModules(const std::string& screenshotsDir, float zoom) { // Iterate plugins and create directories - system::createDirectories(screenshotsDir); + system::createDirs(screenshotsDir); for (plugin::Plugin* p : plugin::plugins) { std::string dir = system::join(screenshotsDir, p->slug); - system::createDirectory(dir); + system::createDir(dir); for (plugin::Model* model : p->models) { std::string filename = system::join(dir, model->slug + ".png");