mirror of
https://github.com/J-D-K/JKSV.git
synced 2026-03-21 17:24:37 -05:00
1. Remove error message translations. 2. Using format string in json file instead of using C++ strings. 3. More accurate naming for translation entries 4. Added the initial strings for newly added translation items in json.
297 lines
8.4 KiB
C++
297 lines
8.4 KiB
C++
#include <switch.h>
|
|
#include <SDL.h>
|
|
|
|
#include "ui.h"
|
|
#include "file.h"
|
|
#include "sett.h"
|
|
#include "cfg.h"
|
|
#include "util.h"
|
|
|
|
ui::menu *ui::settMenu;
|
|
static ui::slideOutPanel *blEditPanel;
|
|
static ui::menu *blEditMenu;
|
|
|
|
//This is the name of strings used here
|
|
static const char *settMenuStr = "settingsMenu";
|
|
|
|
static unsigned optHelpX = 0;
|
|
|
|
static inline std::string getBoolText(const bool& b)
|
|
{
|
|
return b ? ui::getUIString("settingsOn", 0) : ui::getUIString("settingsOff", 0);
|
|
}
|
|
|
|
static inline void toggleBool(bool& b)
|
|
{
|
|
if(b)
|
|
b = false;
|
|
else
|
|
b = true;
|
|
}
|
|
|
|
//Declaration, implementation further down
|
|
static void blEditMenuPopulate();
|
|
|
|
static void settMenuCallback(void *a)
|
|
{
|
|
switch(ui::padKeysDown())
|
|
{
|
|
case HidNpadButton_B:
|
|
ui::usrMenu->setActive(true);
|
|
ui::settMenu->setActive(false);
|
|
ui::changeState(USR_SEL);
|
|
break;
|
|
|
|
case HidNpadButton_X:
|
|
cfg::resetConfig();
|
|
break;
|
|
}
|
|
}
|
|
|
|
static void settMenuDeleteAllBackups_t(void *a)
|
|
{
|
|
threadInfo *t = (threadInfo *)a;
|
|
t->status->setStatus(ui::getUICString("threadStatusDeletingFile", 0));
|
|
|
|
fs::dirList *jksvDir = new fs::dirList(fs::getWorkDir());
|
|
for(unsigned i = 0; i < jksvDir->getCount(); i++)
|
|
{
|
|
if(jksvDir->isDir(i))
|
|
{
|
|
std::string delTarget = fs::getWorkDir() + jksvDir->getItem(i) + "/";
|
|
fs::delDir(delTarget);
|
|
}
|
|
}
|
|
delete jksvDir;
|
|
t->finished = true;
|
|
}
|
|
|
|
static void settMenuDeleteAllBackups(void *a)
|
|
{
|
|
ui::confirmArgs *send = ui::confirmArgsCreate(true, settMenuDeleteAllBackups_t, NULL, true, ui::getUICString("confirmDeleteBackupsAll", 0));
|
|
ui::confirm(send);
|
|
}
|
|
|
|
static void blEditDrawFunc(void *a)
|
|
{
|
|
SDL_Texture *target = (SDL_Texture *)a;
|
|
blEditMenu->draw(target, &ui::txtCont, true);
|
|
}
|
|
|
|
static void blEditMenuCallback(void *a)
|
|
{
|
|
switch(ui::padKeysDown())
|
|
{
|
|
case HidNpadButton_B:
|
|
ui::updateInput();
|
|
blEditMenu->setActive(false);
|
|
ui::settMenu->setActive(true);
|
|
blEditPanel->closePanel();
|
|
break;
|
|
}
|
|
}
|
|
|
|
static void blEditMenuRemoveTitle(void *a)
|
|
{
|
|
uint64_t remTID = cfg::blacklist[blEditMenu->getSelected()];
|
|
cfg::removeTitleFromBlacklist(remTID);
|
|
if(cfg::blacklist.size() > 0)
|
|
blEditMenuPopulate();
|
|
else
|
|
{
|
|
blEditMenu->setActive(false);
|
|
ui::settMenu->setActive(true);
|
|
blEditPanel->closePanel();
|
|
}
|
|
}
|
|
|
|
static void blEditMenuPopulate()
|
|
{
|
|
blEditMenu->reset();
|
|
for(unsigned i = 0; i < cfg::blacklist.size(); i++)
|
|
{
|
|
blEditMenu->addOpt(NULL, data::getTitleNameByTID(cfg::blacklist[i]));
|
|
blEditMenu->optAddButtonEvent(i, HidNpadButton_A, blEditMenuRemoveTitle, NULL);
|
|
}
|
|
}
|
|
|
|
//Todo: this different
|
|
static void toggleOpt(void *a)
|
|
{
|
|
switch(ui::settMenu->getSelected())
|
|
{
|
|
case 0:
|
|
fs::delDir(fs::getWorkDir() + "_TRASH_/");
|
|
mkdir(std::string(fs::getWorkDir() + "_TRASH_").c_str(), 777);
|
|
ui::showPopMessage(POP_FRAME_DEFAULT, ui::getUICString("infoStatus", 11));
|
|
break;
|
|
|
|
case 1:
|
|
ui::newThread(util::checkForUpdate, NULL, NULL);
|
|
break;
|
|
|
|
case 2:
|
|
{
|
|
std::string oldWD = fs::getWorkDir();
|
|
std::string getWD = util::getStringInput(SwkbdType_QWERTY, fs::getWorkDir(), ui::getUIString("swkbdSetWorkDir", 0), 64, 0, NULL);
|
|
if(!getWD.empty())
|
|
{
|
|
if(getWD[getWD.length() - 1] != '/')
|
|
getWD += "/";
|
|
|
|
rename(oldWD.c_str(), getWD.c_str());
|
|
fs::setWorkDir(getWD);
|
|
}
|
|
}
|
|
break;
|
|
|
|
case 3:
|
|
if(cfg::blacklist.size() > 0)
|
|
{
|
|
blEditMenuPopulate();
|
|
ui::settMenu->setActive(false);
|
|
blEditMenu->setActive(true);
|
|
blEditPanel->openPanel();
|
|
}
|
|
break;
|
|
|
|
case 4:
|
|
settMenuDeleteAllBackups(NULL);
|
|
break;
|
|
|
|
case 5:
|
|
toggleBool(cfg::config["incDev"]);
|
|
break;
|
|
|
|
case 6:
|
|
toggleBool(cfg::config["autoBack"]);
|
|
break;
|
|
|
|
case 7:
|
|
toggleBool(cfg::config["autoName"]);
|
|
break;
|
|
|
|
case 8:
|
|
toggleBool(cfg::config["ovrClk"]);
|
|
break;
|
|
|
|
case 9:
|
|
toggleBool(cfg::config["holdDel"]);
|
|
break;
|
|
|
|
case 10:
|
|
toggleBool(cfg::config["holdRest"]);
|
|
break;
|
|
|
|
case 11:
|
|
toggleBool(cfg::config["holdOver"]);
|
|
break;
|
|
|
|
case 12:
|
|
toggleBool(cfg::config["forceMount"]);
|
|
break;
|
|
|
|
case 13:
|
|
toggleBool(cfg::config["accSysSave"]);
|
|
break;
|
|
|
|
case 14:
|
|
toggleBool(cfg::config["sysSaveWrite"]);
|
|
break;
|
|
|
|
case 15:
|
|
toggleBool(cfg::config["directFsCmd"]);
|
|
break;
|
|
|
|
case 16:
|
|
toggleBool(cfg::config["zip"]);
|
|
break;
|
|
|
|
case 17:
|
|
toggleBool(cfg::config["langOverride"]);
|
|
break;
|
|
|
|
case 18:
|
|
toggleBool(cfg::config["trashBin"]);
|
|
break;
|
|
|
|
case 19:
|
|
if(++cfg::sortType > 2)
|
|
cfg::sortType = 0;
|
|
data::loadUsersTitles(false);
|
|
ui::ttlRefresh();
|
|
break;
|
|
|
|
case 20:
|
|
ui::animScale += 0.5f;
|
|
if(ui::animScale > 8)
|
|
ui::animScale = 1;
|
|
break;
|
|
}
|
|
}
|
|
|
|
static void updateMenuText()
|
|
{
|
|
ui::settMenu->editOpt(5, NULL, ui::getUIString(settMenuStr, 5) + getBoolText(cfg::config["incDev"]));
|
|
ui::settMenu->editOpt(6, NULL, ui::getUIString(settMenuStr, 6) + getBoolText(cfg::config["autoBack"]));
|
|
ui::settMenu->editOpt(7, NULL, ui::getUIString(settMenuStr, 7) + getBoolText(cfg::config["autoName"]));
|
|
ui::settMenu->editOpt(8, NULL, ui::getUIString(settMenuStr, 8) + getBoolText(cfg::config["ovrClk"]));
|
|
ui::settMenu->editOpt(9, NULL, ui::getUIString(settMenuStr, 9) + getBoolText(cfg::config["holdDel"]));
|
|
ui::settMenu->editOpt(10, NULL, ui::getUIString(settMenuStr, 10) + getBoolText(cfg::config["holdRest"]));
|
|
ui::settMenu->editOpt(11, NULL, ui::getUIString(settMenuStr, 11) + getBoolText(cfg::config["holdOver"]));
|
|
ui::settMenu->editOpt(12, NULL, ui::getUIString(settMenuStr, 12) + getBoolText(cfg::config["forceMount"]));
|
|
ui::settMenu->editOpt(13, NULL, ui::getUIString(settMenuStr, 13) + getBoolText(cfg::config["accSysSave"]));
|
|
ui::settMenu->editOpt(14, NULL, ui::getUIString(settMenuStr, 14) + getBoolText(cfg::config["sysSaveWrite"]));
|
|
ui::settMenu->editOpt(15, NULL, ui::getUIString(settMenuStr, 15) + getBoolText(cfg::config["directFsCmd"]));
|
|
ui::settMenu->editOpt(16, NULL, ui::getUIString(settMenuStr, 16) + getBoolText(cfg::config["zip"]));
|
|
ui::settMenu->editOpt(17, NULL, ui::getUIString(settMenuStr, 17) + getBoolText(cfg::config["langOverride"]));
|
|
ui::settMenu->editOpt(18, NULL, ui::getUIString(settMenuStr, 18) + getBoolText(cfg::config["trashBin"]));
|
|
ui::settMenu->editOpt(19, NULL, ui::getUIString(settMenuStr, 19) + ui::getUICString("sortType", cfg::sortType));
|
|
|
|
char tmp[16];
|
|
sprintf(tmp, "%.1f", ui::animScale);
|
|
ui::settMenu->editOpt(20, NULL, ui::getUIString(settMenuStr, 20) + std::string(tmp));
|
|
}
|
|
|
|
void ui::settInit()
|
|
{
|
|
ui::settMenu = new ui::menu(200, 24, 1002, 24, 4);
|
|
ui::settMenu->setCallback(settMenuCallback, NULL);
|
|
ui::settMenu->setActive(false);
|
|
|
|
blEditPanel = new ui::slideOutPanel(512, 720, 0, ui::SLD_RIGHT, blEditDrawFunc);
|
|
blEditMenu = new ui::menu(8, 32, 492, 20, 6);
|
|
blEditMenu->setCallback(blEditMenuCallback, NULL);
|
|
blEditMenu->setActive(false);
|
|
ui::registerPanel(blEditPanel);
|
|
|
|
optHelpX = 1220 - gfx::getTextWidth(ui::getUICString("helpSettings", 0), 18);
|
|
|
|
for(unsigned i = 0; i < 21; i++)
|
|
{
|
|
ui::settMenu->addOpt(NULL, ui::getUIString("settingsMenu", i));
|
|
ui::settMenu->optAddButtonEvent(i, HidNpadButton_A, toggleOpt, NULL);
|
|
}
|
|
}
|
|
|
|
void ui::settExit()
|
|
{
|
|
delete ui::settMenu;
|
|
delete blEditMenu;
|
|
delete blEditPanel;
|
|
}
|
|
|
|
void ui::settUpdate()
|
|
{
|
|
blEditMenu->update();
|
|
ui::settMenu->update();
|
|
}
|
|
|
|
void ui::settDraw(SDL_Texture *target)
|
|
{
|
|
updateMenuText();
|
|
ui::settMenu->draw(target, &ui::txtCont, true);
|
|
if(ui::mstate == OPT_MNU)
|
|
gfx::drawTextf(NULL, 18, optHelpX, 673, &ui::txtCont, ui::getUICString("helpSettings", 0));
|
|
}
|