X-Git-Url: http://Server1/repobrowser/?a=blobdiff_plain;f=source%2Fcontacteditor%2FfrmContactEditorGroups.cpp;h=01cd5005ef56d8026e3ed7f739f63047ae235f68;hb=ee9b71949005734012f18251774807c38b989ae2;hp=46a825335c1255f46fc9f9fb4e9545d9cb0e44d2;hpb=45729fca56479bd9158486e0cda0c4a94b4dd1dc;p=xestiaab%2F.git diff --git a/source/contacteditor/frmContactEditorGroups.cpp b/source/contacteditor/frmContactEditorGroups.cpp index 46a8253..01cd500 100755 --- a/source/contacteditor/frmContactEditorGroups.cpp +++ b/source/contacteditor/frmContactEditorGroups.cpp @@ -1,13 +1,35 @@ +// frmContactEditorGroups.cpp - frmContactEditorGroups 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 "frmContactEditorGroups.h" #include #include #include "../vcard/vcard.h" #include "../common/dirs.h" +#include "../frmMain.h" frmContactEditorGroup::frmContactEditorGroup( wxWindow* parent ) : frmContactEditorGroupsADT( parent ) { + + // Setup the window. + EditorMode = FALSE; } @@ -18,158 +40,156 @@ void frmContactEditorGroup::FetchContacts( wxInitDialogEvent& event ) // Ignore contacts which have KIND:group set. - wxString AccountDirFinal = GetAccountDir(AccName, FALSE); + wxString AccountDirFinal = GetAccountDir(AccName, FALSE); - //wxString vcardfilenamewxs; - wxString vCardFilename; - wxString vCardFilenameFull; - wxString vCardDataString; - //wxStringTokenizer vcardfileline; - wxString lwxs; - wxString setname, setvalue; - //vCardNames = new std::map>; - std::multimap> vCardNamesAsc; - std::multimap> vCardNamesDsc; - int ContactIndex = 0; + wxString vCardFilename; + wxString vCardFilenameFull; + wxString vCardDataString; + wxString lwxs; + wxString setname, setvalue; + std::multimap> vCardNamesAsc; + std::multimap> vCardNamesDsc; + int ContactIndex = 0; - wxDir vcardaccdir(AccountDirFinal); + wxDir vcardaccdir(AccountDirFinal); - bool ProcFiles = vcardaccdir.GetFirst(&vCardFilename, wxEmptyString, wxDIR_FILES); - while(ProcFiles){ + bool ProcFiles = vcardaccdir.GetFirst(&vCardFilename, wxEmptyString, wxDIR_FILES); + while(ProcFiles){ - if (vCardFilename.Right(4) == wxT(".vcf") || - vCardFilename.Right(4) == wxT(".VCF") || - vCardFilename.Right(5) == wxT(".vcard") || - vCardFilename.Right(5) == wxT(".VCARD")){ + if (vCardFilename.Right(4) == wxT(".vcf") || + vCardFilename.Right(4) == wxT(".VCF") || + vCardFilename.Right(5) == wxT(".vcard") || + vCardFilename.Right(5) == wxT(".VCARD")){ - vCard Person; + vCard Person; - vCardFilenameFull.Append(AccountDirFinal); - vCardFilenameFull.Append(wxT("/")); - vCardFilenameFull.Append(vCardFilename); + vCardFilenameFull.Append(AccountDirFinal); + vCardFilenameFull.Append(wxT("/")); + vCardFilenameFull.Append(vCardFilename); - Person.LoadFile(vCardFilenameFull); + Person.LoadFile(vCardFilenameFull); - if (Person.MeetBaseSpecification()){ + if (Person.MeetBaseSpecification()){ - wxString KindStatus = Person.Get(wxT("KIND")); + wxString KindStatus = Person.Get(wxT("KIND")); - if (KindStatus == wxT("group")){ + if (KindStatus == wxT("group")){ - vCardFilename.Clear(); - vCardFilenameFull.Clear(); - vCardDataString.Clear(); - ProcFiles = vcardaccdir.GetNext(&vCardFilename); - continue; - - } + vCardFilename.Clear(); + vCardFilenameFull.Clear(); + vCardDataString.Clear(); + ProcFiles = vcardaccdir.GetNext(&vCardFilename); + continue; - wxString PersonName = Person.Get(wxT("N")); - wxString PersonUID = Person.Get(wxT("UID")); - wxString PersonFilename = vCardFilenameFull; + } - ContactData PersonData; + wxString PersonName = Person.Get(wxT("N")); + wxString PersonUID = Person.Get(wxT("UID")); + wxString PersonFilename = vCardFilenameFull; - PersonData.ContactName = PersonName; - PersonData.ContactUID = PersonUID; - PersonData.ContactFilename = PersonFilename; + ContactData PersonData; - //ContactsNames.insert(std::make_pair(PersonName, ContactIndex)); - //ContactsUIDs.insert(std::make_pair(ContactIndex, PersonUID)); + PersonData.ContactName = PersonName; + PersonData.ContactUID = PersonUID; + PersonData.ContactFilename = PersonFilename; - if (XVMData.SortMode == 1){ + if (XVMData.SortMode == 1){ - // Split the name into sections. + // Split the name into sections. - vCardDataString = Person.Get(wxT("N")); + vCardDataString = Person.Get(wxT("N")); - vCardName NameData = Person.GetName(); + vCardName NameData = Person.GetName(); - vCardDataString = NameData.Forename + wxT(" ") + NameData.Surname; + vCardDataString = NameData.Forename + wxT(" ") + NameData.Surname; - } else if (XVMData.SortMode == 2){ + } else if (XVMData.SortMode == 2){ - // Split the name into sections. + // Split the name into sections. - vCardName NameData = Person.GetName(); + vCardName NameData = Person.GetName(); - vCardDataString = NameData.Surname + wxT(", ") + NameData.Forename; + vCardDataString = NameData.Surname + wxT(", ") + NameData.Forename; - } else if (XVMData.SortMode == 3){ + } else if (XVMData.SortMode == 3){ - // Check and make sure that the top most nickname is used. + // Check and make sure that the top most nickname is used. - vCardDataString = Person.Get(wxT("NICKNAME")); + vCardDataString = Person.Get(wxT("NICKNAME")); - if (vCardDataString.IsEmpty()){ + if (vCardDataString.IsEmpty()){ - vCardDataString = wxT("(no nickname)"); + vCardDataString = wxT("(no nickname)"); - } + } - } else if (XVMData.SortMode == 4){ + } else if (XVMData.SortMode == 4){ - vCardDataString = Person.Get(wxT("FN")); + vCardDataString = Person.Get(wxT("FN")); - } + } - if (XVMData.AscendingMode == TRUE){ - vCardNamesAsc.insert(std::make_pair(vCardDataString, PersonData)); - } else { - vCardNamesDsc.insert(std::make_pair(vCardDataString, PersonData)); - } + if (XVMData.AscendingMode == TRUE){ + + vCardNamesAsc.insert(std::make_pair(vCardDataString, PersonData)); + + } else { + + vCardNamesDsc.insert(std::make_pair(vCardDataString, PersonData)); + + } - } else { + } else { - } - + } + } - } - - vCardFilename.Clear(); - vCardFilenameFull.Clear(); - vCardDataString.Clear(); - ProcFiles = vcardaccdir.GetNext(&vCardFilename); + vCardFilename.Clear(); + vCardFilenameFull.Clear(); + vCardDataString.Clear(); + ProcFiles = vcardaccdir.GetNext(&vCardFilename); - } + } - if (XVMData.AscendingMode == TRUE){ + if (XVMData.AscendingMode == TRUE){ - for (std::map::iterator iter = vCardNamesAsc.begin(); - iter != vCardNamesAsc.end(); ++iter){ + for (std::map::iterator iter = vCardNamesAsc.begin(); + iter != vCardNamesAsc.end(); ++iter){ - chkContacts->InsertItems(1, &iter->first, 0); + chkContacts->InsertItems(1, &iter->first, 0); - ContactNamesData.insert(std::make_pair(ContactIndex, iter->second)); + ContactNamesData.insert(std::make_pair(ContactIndex, iter->second)); - ContactIndex++; + ContactIndex++; - } + } - } else { + } else { - ContactIndex = vCardNamesDsc.size() - 1; + ContactIndex = (int)(vCardNamesDsc.size() - 1); - for (std::map::iterator iter = vCardNamesDsc.begin(); - iter != vCardNamesDsc.end(); ++iter){ + for (std::map::iterator iter = vCardNamesDsc.begin(); + iter != vCardNamesDsc.end(); ++iter){ - chkContacts->InsertItems(1, &iter->first, 0); + chkContacts->InsertItems(1, &iter->first, 0); - ContactNamesData.insert(std::make_pair(ContactIndex, iter->second)); - - ContactIndex--; + ContactNamesData.insert(std::make_pair(ContactIndex, iter->second)); + + ContactIndex--; - } + } - } + } } void frmContactEditorGroup::ProcessData( wxCommandEvent& event ) { + // Process action. + for (int i = 0; i < chkContacts->GetCount(); i++){ if (chkContacts->IsChecked(i) == TRUE){ @@ -192,8 +212,6 @@ void frmContactEditorGroup::ProcessData( wxCommandEvent& event ) } - std::map::iterator CDataIter = ContactNamesData.find(i); - wxListItem ItemData; ItemData.SetId(0); ItemData.SetText(chkContacts->GetString(i)); @@ -238,6 +256,8 @@ void frmContactEditorGroup::SetupPointers(std::map *GroupsList, int GroupIndex) { + // Setup the pointers. + GroupsListCtrlPtr = GroupsListCtrl; GroupsListPtr = GroupsList; AccName = AccountName; @@ -248,6 +268,8 @@ void frmContactEditorGroup::SetupPointers(std::map *GroupsList, void frmContactEditorGroup::SetEditorMode(bool EditMode, XABViewMode XVMIn) { + // Setup the editor mode. + EditorMode = EditMode; XVMData = XVMIn; @@ -258,5 +280,9 @@ void frmContactEditorGroup::SetEditorMode(bool EditMode, XABViewMode XVMIn) void frmContactEditorGroup::CloseWindow( wxCommandEvent& event ) { + + // Close this window. + this->Close(); + }