MCPcopy Create free account
hub / github.com/LibreSprite/LibreSprite / scanFolder

Function scanFolder

src/app/script/script_menu.cpp:29–52  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

27using namespace ui;
28
29void scanFolder(const std::string& scriptsDir, Command* cmd_run_script, Menu* parent) {
30 auto fs = FileSystemModule::instance();
31 auto item = fs->getFileItemFromPath(base::fix_path_separators(scriptsDir));
32 if (!item)
33 return;
34 Params params;
35 FileItemList list = item->children();
36 for (auto child : list) {
37 bool isFolder = child->isFolder();
38 std::string fullPath = child->fileName();
39 if (!isFolder && !app::AppScripting::scanScript(fullPath)) {
40 continue;
41 }
42 auto cmd = isFolder ? nullptr : cmd_run_script;
43 params.set("filename", fullPath.c_str());
44 auto menuitem = new AppMenuItem(child->displayName().c_str(), cmd, params);
45 parent->addChild(menuitem);
46 if (isFolder) {
47 auto menu = new Menu();
48 scanFolder(fullPath, cmd_run_script, menu);
49 menuitem->setSubmenu(menu);
50 }
51 }
52}
53
54bool ScriptMenu::rebuildScriptsList(Menu* menu)
55{

Callers 1

rebuildScriptsListMethod · 0.85

Calls 9

instanceFunction · 0.85
fix_path_separatorsFunction · 0.85
getFileItemFromPathMethod · 0.80
displayNameMethod · 0.80
addChildMethod · 0.80
setSubmenuMethod · 0.80
isFolderMethod · 0.45
fileNameMethod · 0.45
setMethod · 0.45

Tested by

no test coverage detected