// 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();
}