mirror of
https://github.com/J-D-K/JKSV.git
synced 2026-09-12 12:35:26 -05:00
SaveImportState progress.
This commit is contained in:
@@ -1,7 +1,12 @@
|
||||
#include "appstates/SaveImportState.hpp"
|
||||
|
||||
#include "appstates/BackupMenuState.hpp"
|
||||
#include "appstates/ConfirmState.hpp"
|
||||
#include "config/config.hpp"
|
||||
#include "input.hpp"
|
||||
#include "strings/strings.hpp"
|
||||
#include "stringutil.hpp"
|
||||
#include "tasks/saveimport.hpp"
|
||||
|
||||
SaveImportState::SaveImportState(data::User *user)
|
||||
: m_user(user)
|
||||
@@ -21,7 +26,7 @@ void SaveImportState::update()
|
||||
const bool aPressed = input::button_pressed(HidNpadButton_A);
|
||||
const bool bPressed = input::button_pressed(HidNpadButton_B);
|
||||
|
||||
if (aPressed) {}
|
||||
if (aPressed) { SaveImportState::import_backup(); }
|
||||
else if (bPressed) { sm_slidePanel->close(); }
|
||||
else if (sm_slidePanel->is_closed()) { SaveImportState::deactivate_state(); }
|
||||
}
|
||||
@@ -38,7 +43,9 @@ void SaveImportState::initialize_static_members()
|
||||
{
|
||||
static constexpr int SIZE_PANEL_WIDTH = 512;
|
||||
|
||||
if (sm_saveMenu && sm_slidePanel) { return; }
|
||||
if (sm_taskData && sm_saveMenu && sm_slidePanel) { return; }
|
||||
|
||||
sm_taskData = std::make_shared<SaveImportState::DataStruct>();
|
||||
|
||||
sm_saveMenu = ui::Menu::create(8, 8, 492, 22, 720);
|
||||
sm_slidePanel = ui::SlideOutPanel::create(SIZE_PANEL_WIDTH, ui::SlideOutPanel::Side::Right);
|
||||
@@ -56,6 +63,22 @@ void SaveImportState::initialize_directory_menu()
|
||||
for (const fslib::DirectoryEntry &entry : m_saveDir) { sm_saveMenu->add_option(entry.get_filename()); }
|
||||
}
|
||||
|
||||
void SaveImportState::import_backup()
|
||||
{
|
||||
const int selected = sm_saveMenu->get_selected();
|
||||
const bool holdRequired = config::get_by_key(config::keys::HOLD_FOR_RESTORATION);
|
||||
|
||||
const fslib::DirectoryEntry &target = m_saveDir[selected];
|
||||
const char *targetName = target.get_filename();
|
||||
sm_taskData->user = m_user;
|
||||
sm_taskData->path = config::get_working_directory() / "saves" / targetName;
|
||||
|
||||
const char *confirmFormat = strings::get_by_name(strings::names::BACKUPMENU_CONFS, 1);
|
||||
std::string query = stringutil::get_formatted_string(confirmFormat, targetName);
|
||||
|
||||
ConfirmProgress::create_and_push(query, holdRequired, tasks::saveimport::import_save_backup, sm_taskData);
|
||||
}
|
||||
|
||||
void SaveImportState::deactivate_state()
|
||||
{
|
||||
sm_saveMenu->reset();
|
||||
|
||||
Reference in New Issue
Block a user