bool COptionsPageInterface::SavePage() { SetOptionFromCheck(XRCID("ID_FILEPANESWAP"), OPTION_FILEPANE_SWAP); m_pOptions->SetOption(OPTION_FILEPANE_LAYOUT, GetChoice(XRCID("ID_FILEPANELAYOUT"))); m_pOptions->SetOption(OPTION_MESSAGELOG_POSITION, GetChoice(XRCID("ID_MESSAGELOGPOS"))); #ifndef __WXMAC__ SetOptionFromCheck(XRCID("ID_MINIMIZE_TRAY"), OPTION_MINIMIZE_TRAY); #endif SetOptionFromCheck(XRCID("ID_PREVENT_IDLESLEEP"), OPTION_PREVENT_IDLESLEEP); return true; }
bool COptionsPageEdit::SavePage() { COptions* pOptions = COptions::Get(); if (GetRCheck(XRCID("ID_DEFAULT_CUSTOM"))) pOptions->SetOption(OPTION_EDIT_DEFAULTEDITOR, _T("2") + GetText(XRCID("ID_EDITOR"))); else pOptions->SetOption(OPTION_EDIT_DEFAULTEDITOR, GetRCheck(XRCID("ID_DEFAULT_TEXT")) ? _T("1") : _T("0")); if (GetRCheck(XRCID("ID_USEDEFAULT"))) pOptions->SetOption(OPTION_EDIT_ALWAYSDEFAULT, 1); else pOptions->SetOption(OPTION_EDIT_ALWAYSDEFAULT, 0); SetOptionFromCheck(XRCID("ID_EDIT_TRACK_LOCAL"), OPTION_EDIT_TRACK_LOCAL); SetOptionFromCheck(XRCID("ID_EDIT_BYPASS_PROMPT"), OPTION_EDIT_BYPASS_PROMPT); return true; }
bool COptionsPageSizeFormatting::SavePage() { m_pOptions->SetOption(OPTION_SIZE_FORMAT, GetFormat()); SetOptionFromCheck(XRCID("ID_SIZEFORMAT_SEPARATE_THOUTHANDS"), OPTION_SIZE_USETHOUSANDSEP); m_pOptions->SetOption(OPTION_SIZE_DECIMALPLACES, XRCCTRL(*this, "ID_SIZEFORMAT_DECIMALPLACES", wxSpinCtrl)->GetValue()); return true; }
bool COptionsPageConnectionActive::SavePage() { SetOptionFromCheck(XRCID("ID_LIMITPORTS"), OPTION_LIMITPORTS); SetIntOptionFromText(XRCID("ID_LOWESTPORT"), OPTION_LIMITPORTS_LOW); SetIntOptionFromText(XRCID("ID_HIGHESTPORT"), OPTION_LIMITPORTS_HIGH); int mode; if (GetRCheck(XRCID("ID_ACTIVEMODE1"))) mode = 0; else mode = GetRCheck(XRCID("ID_ACTIVEMODE2")) ? 1 : 2; m_pOptions->SetOption(OPTION_EXTERNALIPMODE, mode); if (mode == 1) SetOptionFromText(XRCID("ID_ACTIVEIP"), OPTION_EXTERNALIP); else if (mode == 2) SetOptionFromText(XRCID("ID_ACTIVERESOLVER"), OPTION_EXTERNALIPRESOLVER); SetOptionFromCheck(XRCID("ID_NOEXTERNALONLOCAL"), OPTION_NOEXTERNALONLOCAL); return true; }
bool COptionsPageInterface::SavePage() { SetOptionFromCheck(XRCID("ID_FILEPANESWAP"), OPTION_FILEPANE_SWAP); m_pOptions->SetOption(OPTION_FILEPANE_LAYOUT, GetChoice(XRCID("ID_FILEPANELAYOUT"))); m_pOptions->SetOption(OPTION_MESSAGELOG_POSITION, GetChoice(XRCID("ID_MESSAGELOGPOS"))); #ifndef __WXMAC__ SetOptionFromCheck(XRCID("ID_MINIMIZE_TRAY"), OPTION_MINIMIZE_TRAY); #endif SetOptionFromCheck(XRCID("ID_PREVENT_IDLESLEEP"), OPTION_PREVENT_IDLESLEEP); SetOptionFromCheck(XRCID("ID_SPEED_DISPLAY"), OPTION_SPEED_DISPLAY); // Start of @td bool enablingEnc = false; // Tells us if we are "ENABLING" encryption (disabled before, enabled now) if (GetCheck(XRCID("ID_ENCRYPT_PASSWORDS")) != m_pOptions->GetOptionVal(OPTION_ENCRYPT_PASSWORDS)) { LOG("SavePage(): Option OPTION_ENCRYPT_PASSWORDS has switched value"); if (!GetCheck(XRCID("ID_ENCRYPT_PASSWORDS"))) // We are DISABLING encryption, let's decrypt everything already stored:m_pOptions-> { LOG("SavePage(): Disabling encryption..."); CInterProcessMutex mutex(MUTEX_SITEMANAGER); CXmlFile file(_T("sitemanager")); TiXmlElement* pDocument = file.Load(); if (!pDocument) { LOG("SavePage(): Sitemanager.xml could not be loaded."); wxMessageBox(file.GetError(), _("Error loading xml file"), wxICON_ERROR); } TiXmlElement* pElement = pDocument->FirstChildElement("Servers"); if (pElement) { LOG("SavePage(): Found \"Servers\" element. Beginning foreach...."); for (TiXmlElement* pServer = pElement->FirstChildElement("Server"); pServer; pServer = pServer->NextSiblingElement("Server")) { LOG("SavePage(): Found a Server element."); CServer s; if (::GetServer(pServer, s)) { LOG("SavePage(): Server element loaded up from XML. \"Converting\" it."); wxString pass = s.GetPass(); // decrypts before returning LOG("SavePage(): 1."); m_pOptions->SetOption(OPTION_ENCRYPT_PASSWORDS, 0); //* Disabling encryption so that SetPass() does not encrypt the passwd LOG("SavePage(): 2."); s.SetPass(pass); // will not encrypt LOG("SavePage(): 3."); ::SetServer(pServer, s); LOG("SavePage(): 5."); m_pOptions->SetOption(OPTION_ENCRYPT_PASSWORDS, 1); //* Enabling encryption so that next GetPass() does decrypt the pass before returning it LOG("SavePage(): 6."); } } file.Save(); } m_pOptions->SetOption(OPTION_MASTER_PASSWORD, _T(""));// Resetting the master password when encryption is disabled CCrypto::SetMasterPassword(_T("")); } else { enablingEnc = true; } SetOptionFromCheck(XRCID("ID_ENCRYPT_PASSWORDS"), OPTION_ENCRYPT_PASSWORDS); } wxString defaultval = wxString(DEFAULTVALUE, wxConvUTF8); wxString newPassword = GetText(XRCID("ID_MASTER_PASSWORD")); if(GetCheck(XRCID("ID_ENCRYPT_PASSWORDS")) && newPassword != defaultval) { LOG("SavePage(): The new password is not empty."); wxString currentMPasswd = CCrypto::GetMasterPassword(); if (newPassword != _T("") && newPassword != currentMPasswd) // We just changed the master password (and it is not empty), so we have to "migrate" the existing encrypted password from former encryption to new one { LOG("SavePage(): The new password is different from the former one."); CInterProcessMutex mutex(MUTEX_SITEMANAGER); CXmlFile file(_T("sitemanager")); TiXmlElement* pDocument = file.Load(); if (!pDocument) { LOG("SavePage(): Sitemanager.xml could not be loaded."); wxMessageBox(file.GetError(), _("Error loading xml file"), wxICON_ERROR); } TiXmlElement* pElement = pDocument->FirstChildElement("Servers"); if (pElement) { LOG("SavePage(): Found \"Servers\" element. Beginning foreach...."); for (TiXmlElement* pServer = pElement->FirstChildElement("Server"); pServer; pServer = pServer->NextSiblingElement("Server")) { LOG("SavePage(): Found a Server element."); CServer s; if (enablingEnc) { //* Encryption was previously disabled, so, disable it just the time to LOAD up the data m_pOptions->SetOption(OPTION_ENCRYPT_PASSWORDS, 0); } if (::GetServer(pServer, s)) { LOG("SavePage(): Server element loaded up from XML. \"Converting\" it."); wxString pass = s.GetPass(); // uses current master passwd LOG("SavePage(): 1."); CCrypto::SetMasterPassword(newPassword); LOG("SavePage(): 2."); //* Ensure encryption is enabled when we SAVE m_pOptions->SetOption(OPTION_ENCRYPT_PASSWORDS, 1); LOG("SavePage(): 3."); s.SetPass(pass); // will encrypt using new master password LOG("SavePage(): 4."); CCrypto::SetMasterPassword(currentMPasswd); // back to former one for next loop LOG("SavePage(): 5."); ::SetServer(pServer, s); LOG("SavePage(): 6."); } } file.Save(); } } LOG("SavePage(): Setting new master password..."); CCrypto::SetMasterPassword(newPassword); wxString passwdEncrypted = wxString(CCrypto::Encrypt(newPassword).c_str(), wxConvUTF8); m_pOptions->SetOption(OPTION_MASTER_PASSWORD, passwdEncrypted); } // End of @td if (!m_pOptions->OptionFromFzDefaultsXml(OPTION_DEFAULT_KIOSKMODE) && m_pOptions->GetOptionVal(OPTION_DEFAULT_KIOSKMODE) != 2) SetOptionFromCheck(XRCID("ID_DONT_SAVE_PASSWORDS"), OPTION_DEFAULT_KIOSKMODE); SetOptionFromCheck(XRCID("ID_INTERFACE_SITEMANAGER_ON_STARTUP"), OPTION_INTERFACE_SITEMANAGER_ON_STARTUP); return true; }