Migrate from old .ini to new .ini

This commit is contained in:
erorcun 2021-01-15 12:36:58 +03:00 committed by shfil
parent 448e41ecaa
commit deaaf3d22f
2 changed files with 27 additions and 1 deletions

View File

@ -429,6 +429,7 @@ void LoadINISettings()
#endif #endif
#ifdef CUSTOM_FRONTEND_OPTIONS #ifdef CUSTOM_FRONTEND_OPTIONS
bool migrate = cfg.category_size("FrontendOptions") != 0;
for (int i = 0; i < MENUPAGES; i++) { for (int i = 0; i < MENUPAGES; i++) {
for (int j = 0; j < NUM_MENUROWS; j++) { for (int j = 0; j < NUM_MENUROWS; j++) {
CMenuScreenCustom::CMenuEntry &option = aScreens[i].m_aEntries[j]; CMenuScreenCustom::CMenuEntry &option = aScreens[i].m_aEntries[j];
@ -438,7 +439,13 @@ void LoadINISettings()
// CFO check // CFO check
if (option.m_Action < MENUACTION_NOTHING && option.m_CFO->save) { if (option.m_Action < MENUACTION_NOTHING && option.m_CFO->save) {
// CFO only supports saving uint8 right now // CFO only supports saving uint8 right now
// Migrate from old .ini to new .ini
if (migrate && ReadIniIfExists("FrontendOptions", option.m_CFO->save, option.m_CFO->value))
cfg.remove("FrontendOptions", option.m_CFO->save);
else
ReadIniIfExists(option.m_CFO->saveCat, option.m_CFO->save, option.m_CFO->value); ReadIniIfExists(option.m_CFO->saveCat, option.m_CFO->save, option.m_CFO->value);
if (option.m_Action == MENUACTION_CFO_SELECT) { if (option.m_Action == MENUACTION_CFO_SELECT) {
option.m_CFOSelect->lastSavedValue = option.m_CFOSelect->displayedValue = *option.m_CFO->value; option.m_CFOSelect->lastSavedValue = option.m_CFOSelect->displayedValue = *option.m_CFO->value;
} }

View File

@ -158,6 +158,25 @@ namespace linb
/* Too lazy to continue this container... If you need more methods, just add it */ /* Too lazy to continue this container... If you need more methods, just add it */
// re3
void remove(const string_type& sect, const key_type& key)
{
auto it = this->find(sect);
if(it != this->end())
{
it->second.erase(key);
}
}
int category_size(const string_type& sect)
{
auto it = this->find(sect);
if(it != this->end())
{
return it->second.size();
}
return 0;
}
#if 1 #if 1
bool read_file(const char_type* filename) bool read_file(const char_type* filename)