mirror of
https://github.com/J-D-K/JKSV.git
synced 2026-04-24 23:37:24 -05:00
Update fslib for range based Directory loops.
This commit is contained in:
parent
951707b372
commit
6bc3305340
|
|
@ -1 +1 @@
|
|||
Subproject commit a98a7f579e5ec78b315ad84832f708abca7ebf39
|
||||
Subproject commit 6e9443be6456f109b940da33a4ee10949ff6aa0e
|
||||
2
Makefile
2
Makefile
|
|
@ -39,7 +39,7 @@ INCLUDES := include ./Libraries/FsLib/Switch/FsLib/include ./Libraries/SDLLib/SD
|
|||
EXEFS_SRC := exefs_src
|
||||
APP_TITLE := JKSV
|
||||
APP_AUTHOR := JK
|
||||
APP_VERSION := 08.18.2025
|
||||
APP_VERSION := 08.19.2025
|
||||
ROMFS := romfs
|
||||
ICON := icon.jpg
|
||||
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ namespace
|
|||
/// @brief Build month.
|
||||
constexpr uint8_t BUILD_MON = 8;
|
||||
/// @brief Build day.
|
||||
constexpr uint8_t BUILD_DAY = 18;
|
||||
constexpr uint8_t BUILD_DAY = 19;
|
||||
/// @brief Year.
|
||||
constexpr uint16_t BUILD_YEAR = 2025;
|
||||
} // namespace
|
||||
|
|
|
|||
|
|
@ -126,11 +126,11 @@ void BackupMenuState::refresh()
|
|||
}
|
||||
}
|
||||
|
||||
const int64_t listingCount = m_directoryListing.get_count();
|
||||
for (int64_t i = 0; i < listingCount; i++)
|
||||
int index{};
|
||||
for (const fslib::DirectoryEntry &entry : m_directoryListing)
|
||||
{
|
||||
sm_backupMenu->add_option(m_directoryListing[i]);
|
||||
m_menuEntries.push_back({MenuEntryType::Local, static_cast<int>(i)});
|
||||
sm_backupMenu->add_option(entry.get_filename());
|
||||
m_menuEntries.push_back({MenuEntryType::Local, index});
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -268,7 +268,7 @@ void BackupMenuState::confirm_overwrite()
|
|||
else if (entry.type == MenuEntryType::Local)
|
||||
{
|
||||
m_dataStruct->path = m_directoryPath / m_directoryListing[entry.index];
|
||||
const char *targetName = m_directoryListing[entry.index];
|
||||
const char *targetName = m_directoryListing[entry.index].get_filename();
|
||||
const std::string query = stringutil::get_formatted_string(confirmTemplate, targetName);
|
||||
ProgressConfirm::create_push_fade(query, holdRequired, tasks::backup::overwrite_backup_local, m_dataStruct);
|
||||
}
|
||||
|
|
@ -305,8 +305,10 @@ void BackupMenuState::confirm_restore()
|
|||
ui::PopMessageManager::push_message(popTicks, popBackupEmpty);
|
||||
return;
|
||||
}
|
||||
m_dataStruct->path = target;
|
||||
const std::string query = stringutil::get_formatted_string(confirmTemplate, m_directoryListing[entry.index]);
|
||||
m_dataStruct->path = target;
|
||||
|
||||
const char *targetName = m_directoryListing[entry.index].get_filename();
|
||||
const std::string query = stringutil::get_formatted_string(confirmTemplate, targetName);
|
||||
|
||||
ProgressConfirm::create_push_fade(query, holdRequired, tasks::backup::restore_backup_local, m_dataStruct);
|
||||
}
|
||||
|
|
@ -332,7 +334,7 @@ void BackupMenuState::confirm_delete()
|
|||
if (entry.type == MenuEntryType::Local)
|
||||
{
|
||||
m_dataStruct->path = m_directoryPath / m_directoryListing[entry.index];
|
||||
const char *targetName = m_directoryListing[entry.index];
|
||||
const char *targetName = m_directoryListing[entry.index].get_filename();
|
||||
const std::string query = stringutil::get_formatted_string(confirmTemplate, targetName);
|
||||
|
||||
TaskConfirm::create_and_push(query, holdRequired, tasks::backup::delete_backup_local, m_dataStruct);
|
||||
|
|
@ -357,7 +359,7 @@ void BackupMenuState::upload_backup()
|
|||
const MenuEntry &entry = m_menuEntries[selected];
|
||||
if (entry.type != BackupMenuState::MenuEntryType::Local) { return; }
|
||||
|
||||
const char *targetName = m_directoryListing[entry.index];
|
||||
const char *targetName = m_directoryListing[entry.index].get_filename();
|
||||
fslib::Path target = m_directoryPath / targetName;
|
||||
const bool isDir = fslib::directory_exists(target);
|
||||
if (isDir)
|
||||
|
|
|
|||
|
|
@ -161,19 +161,17 @@ void data::DataContext::import_svi_files(sys::Task *task)
|
|||
const char *statusLoadingSvi = strings::get_by_name(strings::names::DATA_LOADING_STATUS, 3);
|
||||
|
||||
const fslib::Path sviPath{config::get_working_directory() / "svi"};
|
||||
const fslib::Directory sviDir{sviPath};
|
||||
fslib::Directory sviDir{sviPath};
|
||||
if (error::fslib(sviDir.is_open())) { return; }
|
||||
|
||||
task->set_status(statusLoadingSvi);
|
||||
|
||||
const int64_t sviCount = sviDir.get_count();
|
||||
for (int64_t i = 0; i < sviCount; i++)
|
||||
for (const fslib::DirectoryEntry &entry : sviDir)
|
||||
{
|
||||
const fslib::Path target = sviPath / sviDir[i];
|
||||
const fslib::Path target{sviPath / entry};
|
||||
fslib::File sviFile{target, FsOpenMode_Read};
|
||||
|
||||
const bool goodSvi = sviFile.is_open() && sviFile.get_size() == SIZE_SVI;
|
||||
if (!goodSvi) { continue; }
|
||||
const bool validSvi = sviFile.is_open() && sviFile.get_size() == SIZE_SVI;
|
||||
if (!validSvi) { continue; }
|
||||
|
||||
uint32_t magic{};
|
||||
uint64_t applicationID{};
|
||||
|
|
|
|||
|
|
@ -5,32 +5,31 @@
|
|||
uint64_t fs::get_directory_total_size(const fslib::Path &targetPath)
|
||||
{
|
||||
fslib::Directory targetDir{targetPath};
|
||||
if (!targetDir) { return 0; }
|
||||
if (!targetDir.is_open()) { return 0; }
|
||||
|
||||
const int64_t itemCount = targetDir.get_count();
|
||||
uint64_t directorySize = 0;
|
||||
for (int64_t i = 0; i < itemCount; i++)
|
||||
uint64_t directorySize = 0;
|
||||
for (const fslib::DirectoryEntry &entry : targetDir)
|
||||
{
|
||||
if (targetDir.is_directory(i))
|
||||
if (entry.is_directory())
|
||||
{
|
||||
fslib::Path newTarget = targetPath / targetDir[i];
|
||||
directorySize += get_directory_total_size(newTarget);
|
||||
const fslib::Path newTarget{targetPath / entry};
|
||||
directorySize += fs::get_directory_total_size(newTarget);
|
||||
}
|
||||
else { directorySize += targetDir.get_entry_size(i); }
|
||||
else { directorySize += entry.get_size(); }
|
||||
}
|
||||
|
||||
return directorySize;
|
||||
}
|
||||
|
||||
bool fs::directory_has_contents(const fslib::Path &directoryPath)
|
||||
{
|
||||
fslib::Directory testDir{directoryPath};
|
||||
if (!testDir) { return false; }
|
||||
if (!testDir.is_open()) { return false; }
|
||||
|
||||
// We don't want the save meta to throw this off.
|
||||
const int64_t itemCount = testDir.get_count();
|
||||
for (int64_t i = 0; i < itemCount; i++)
|
||||
for (const fslib::DirectoryEntry &entry : testDir)
|
||||
{
|
||||
if (testDir[i] != fs::NAME_SAVE_META) { return true; }
|
||||
if (entry.get_filename() != fs::NAME_SAVE_META) { return true; }
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -189,18 +189,19 @@ void fs::copy_directory(const fslib::Path &source, const fslib::Path &destinatio
|
|||
fslib::Directory sourceDir{source};
|
||||
if (error::fslib(sourceDir.is_open())) { return; }
|
||||
|
||||
const int64_t dirCount = sourceDir.get_count();
|
||||
for (int64_t i = 0; i < dirCount; i++)
|
||||
for (const fslib::DirectoryEntry &entry : sourceDir)
|
||||
{
|
||||
if (sourceDir[i] == fs::NAME_SAVE_META) { continue; }
|
||||
const char *filename = entry.get_filename();
|
||||
if (filename == fs::NAME_SAVE_META) { continue; }
|
||||
|
||||
const fslib::Path fullSource{source / sourceDir[i]};
|
||||
const fslib::Path fullDest{destination / sourceDir[i]};
|
||||
if (sourceDir.is_directory(i))
|
||||
const fslib::Path fullSource{source / filename};
|
||||
const fslib::Path fullDest{destination / filename};
|
||||
if (entry.is_directory())
|
||||
{
|
||||
const bool destExists = fslib::directory_exists(fullDest);
|
||||
const bool createError = !destExists && fslib::create_directory(fullDest);
|
||||
const bool createError = !destExists && error::fslib(fslib::create_directory(fullDest));
|
||||
if (!destExists && createError) { continue; }
|
||||
|
||||
fs::copy_directory(fullSource, fullDest, task);
|
||||
}
|
||||
else { fs::copy_file(fullSource, fullDest, task); }
|
||||
|
|
@ -216,14 +217,14 @@ void fs::copy_directory_commit(const fslib::Path &source,
|
|||
fslib::Directory sourceDir{source};
|
||||
if (error::fslib(sourceDir.is_open())) { return; }
|
||||
|
||||
const int64_t dirCount = sourceDir.get_count();
|
||||
for (int64_t i = 0; i < dirCount; i++)
|
||||
for (const fslib::DirectoryEntry &entry : sourceDir)
|
||||
{
|
||||
if (sourceDir[i] == fs::NAME_SAVE_META) { continue; } // We don't want or need to copy this to the save.
|
||||
const char *filename = entry.get_filename();
|
||||
if (filename == fs::NAME_SAVE_META) { continue; }
|
||||
|
||||
const fslib::Path fullSource{source / sourceDir[i]};
|
||||
const fslib::Path fullDest{destination / sourceDir[i]};
|
||||
if (sourceDir.is_directory(i))
|
||||
const fslib::Path fullSource{source / filename};
|
||||
const fslib::Path fullDest{destination / filename};
|
||||
if (entry.is_directory())
|
||||
{
|
||||
const bool destExists = fslib::directory_exists(fullDest);
|
||||
const bool createError = !destExists && error::fslib(fslib::create_directory(fullDest));
|
||||
|
|
|
|||
|
|
@ -100,11 +100,10 @@ void fs::copy_directory_to_zip(const fslib::Path &source, fs::MiniZip &dest, sys
|
|||
fslib::Directory sourceDir{source};
|
||||
if (error::fslib(sourceDir.is_open())) { return; }
|
||||
|
||||
const int64_t dirCount = sourceDir.get_count();
|
||||
for (int64_t i = 0; i < dirCount; i++)
|
||||
for (const fslib::DirectoryEntry &entry : sourceDir)
|
||||
{
|
||||
const fslib::Path fullSource{source / sourceDir[i]};
|
||||
if (sourceDir.is_directory(i)) { fs::copy_directory_to_zip(fullSource, dest, task); }
|
||||
const fslib::Path fullSource{source / entry};
|
||||
if (entry.is_directory()) { fs::copy_directory_to_zip(fullSource, dest, task); }
|
||||
else
|
||||
{
|
||||
fslib::File sourceFile{fullSource, FsOpenMode_Read};
|
||||
|
|
|
|||
|
|
@ -22,9 +22,9 @@ ui::Menu::Menu(int x, int y, int width, int fontSize, int renderTargetHeight)
|
|||
ui::TextScroll::create("", 16, 0, m_width, m_optionHeight, m_fontSize, colors::BLUE_GREEN, colors::TRANSPARENT))
|
||||
{
|
||||
// Create render target for options
|
||||
static int MENU_ID = 0;
|
||||
std::string menuTargetName = "MENU_" + std::to_string(MENU_ID++);
|
||||
m_optionTarget = sdl::TextureManager::load(menuTargetName, m_width, m_optionHeight, SDL_TEXTUREACCESS_TARGET);
|
||||
static int MENU_ID = 0;
|
||||
const std::string menuTargetName = "MENU_" + std::to_string(MENU_ID++);
|
||||
m_optionTarget = sdl::TextureManager::load(menuTargetName, m_width, m_optionHeight, SDL_TEXTUREACCESS_TARGET);
|
||||
|
||||
// Outside the initializer list because I'm tired and don't wanna deal with the headache.
|
||||
m_boundingBox = ui::BoundingBox::create(0, 0, m_width + 12, m_optionHeight + 12);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user