void ColoursAndFontsManager::Save() { ColoursAndFontsManager::Map_t::const_iterator iter = m_lexersMap.begin(); for(; iter != m_lexersMap.end(); ++iter) { const ColoursAndFontsManager::Vec_t& lexers = iter->second; for(size_t i = 0; i < lexers.size(); ++i) { Save(lexers.at(i)); } } SaveGlobalSettings(); clCommandEvent event(wxEVT_CMD_COLOURS_FONTS_UPDATED); EventNotifier::Get()->AddPendingEvent(event); }
void ColoursAndFontsManager::Save() { ColoursAndFontsManager::Map_t::const_iterator iter = m_lexersMap.begin(); JSONRoot root(cJSON_Array); JSONElement element = root.toElement(); for(; iter != m_lexersMap.end(); ++iter) { const ColoursAndFontsManager::Vec_t& lexers = iter->second; for(size_t i = 0; i < lexers.size(); ++i) { element.arrayAppend(lexers.at(i)->ToJSON()); } } wxFileName lexerFiles(clStandardPaths::Get().GetUserDataDir(), "lexers.json"); lexerFiles.AppendDir("lexers"); root.save(lexerFiles); SaveGlobalSettings(); clCommandEvent event(wxEVT_CMD_COLOURS_FONTS_UPDATED); EventNotifier::Get()->AddPendingEvent(event); }
void LoadGlobalSettings() { bool fNew = false; char szInstallDir[MAX_PATH]; GetInstallDir(szInstallDir, sizeof szInstallDir); lstrcat(szInstallDir, "\\"); char szKey[MAX_PATH]; lstrcpy(szKey, REG_BASEKEY); lstrcat(szKey, "\\"); lstrcat(szKey, REG_GLOBALS); HKEY hKey = 0; if ( RegOpenKeyEx(HKEY_CURRENT_USER, szKey, 0, KEY_QUERY_VALUE, &hKey)!=ERROR_SUCCESS ) hKey = 0; rc_option* opts[10]; int sp = 0; char szValue[4096]; opts[sp] = ::opts; while ( sp>=0 ) { switch ( opts[sp]->type ) { case rc_bool: case rc_string: case rc_int: case rc_float: if ( !IsGlobalSetting(opts[sp]->name) || IgnoreSetting(opts[sp]->name) ) break; char szDefault[512]; lstrcpy(szDefault, ""); if ( IsPathOrFile(opts[sp]->name) ) lstrcpy(szDefault, szInstallDir); lstrcat(szDefault, opts[sp]->deflt); fNew |= RegLoadOpts(hKey, opts[sp], szDefault, szValue); rc_set_option3(opts[sp], szValue, 0); break; case rc_end: sp--; continue; case rc_link: opts[sp+1] = (rc_option*) opts[sp]->dest; opts[sp]++; sp++; continue; } opts[sp]++; } if ( hKey ) RegCloseKey(hKey); if ( fNew ) SaveGlobalSettings(); }