// frmSearchAccounts.cpp - frmSearchAccounts form. // // (c) 2012-2015 Xestia Software Development. // // This file is part of Xestia Address Book. // // Xestia Address Book is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by the // Free Software Foundation, version 3 of the license. // // Xestia Address Book is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License along // with Xestia Address Book. If not, see #include "frmSearchAccounts.h" #include "../frmMain.h" frmSearchAccounts::frmSearchAccounts( wxWindow* parent ) : frmSearchAccountsADT( parent ) { } frmSearchAccounts::~frmSearchAccounts(){ } void frmSearchAccounts::LoadSearchAccounts(std::map *SearchAccounts, std::map *SearchAccountsList) { // Load the list of accounts to the accounts list in the window. SAPtr = SearchAccounts; SALPtr = SearchAccountsList; std::map::iterator SALiter; wxString AccDir; // Load the search accounts into the Checklist. wxArrayString AccList; for (std::map::iterator iter = SAPtr->begin(); iter != SAPtr->end(); ++iter){ SALiter = SALPtr->find(iter->first); AccList.Add(SALiter->second, 1); } chlAccounts->Append(AccList); // Check if each account is selected. for (int i = 0; i < chlAccounts->GetCount(); i++){ AccDir = chlAccounts->GetString(i); for (std::map::iterator iter = SAPtr->begin(); iter != SAPtr->end(); ++iter){ SALiter = SALPtr->find(iter->first); if (AccDir == SALiter->second){ chlAccounts->Check(i, iter->second); } } } } void frmSearchAccounts::UpdateSelectedAccounts( wxCommandEvent& event ) { // Process each of the items in the Checklist box. // Compare each with the ones in the std::map // and adjust the bool value accordingly. wxString AccDir; std::map::iterator SALiter; for (int i = 0; i < chlAccounts->GetCount(); i++){ AccDir = chlAccounts->GetString(i); for (std::map::iterator iter = SAPtr->begin(); iter != SAPtr->end(); ++iter){ SALiter = SALPtr->find(iter->first); if (AccDir == SALiter->second){ iter->second = chlAccounts->IsChecked(i); } } } this->Close(); } void frmSearchAccounts::CloseWindow( wxCommandEvent& event ) { // Close this window. this->Close(); }