+// frmContactEditorGroups.cpp - frmContactEditorGroups form.\r
+//\r
+// (c) 2012-2015 Xestia Software Development.\r
+//\r
+// This file is part of Xestia Address Book.\r
+//\r
+// Xestia Address Book is free software: you can redistribute it and/or modify\r
+// it under the terms of the GNU General Public License as published by the\r
+// Free Software Foundation, version 3 of the license.\r
+//\r
+// Xestia Address Book is distributed in the hope that it will be useful,\r
+// but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
+// GNU General Public License for more details.\r
+//\r
+// You should have received a copy of the GNU General Public License along\r
+// with Xestia Address Book. If not, see <http://www.gnu.org/licenses/>\r
+\r
#include "frmContactEditorGroups.h"\r
#include <wx/wx.h>\r
#include <wx/dir.h>\r
:\r
frmContactEditorGroupsADT( parent )\r
{\r
+ \r
+ // Setup the window.\r
+ \r
EditorMode = FALSE;\r
}\r
\r
\r
// Ignore contacts which have KIND:group set.\r
\r
- wxString AccountDirFinal = GetAccountDir(AccName, FALSE);\r
+ wxString AccountDirFinal = GetAccountDir(AccName, FALSE);\r
\r
- //wxString vcardfilenamewxs;\r
- wxString vCardFilename;\r
- wxString vCardFilenameFull;\r
- wxString vCardDataString;\r
- //wxStringTokenizer vcardfileline;\r
- wxString lwxs;\r
- wxString setname, setvalue;\r
- //vCardNames = new std::map<wxString, wxString, std::greater<wxString>>;\r
- std::multimap<wxString, ContactData, std::greater<wxString>> vCardNamesAsc;\r
- std::multimap<wxString, ContactData, std::less<wxString>> vCardNamesDsc;\r
- int ContactIndex = 0;\r
+ wxString vCardFilename;\r
+ wxString vCardFilenameFull;\r
+ wxString vCardDataString;\r
+ wxString lwxs;\r
+ wxString setname, setvalue;\r
+ std::multimap<wxString, ContactData, std::greater<wxString>> vCardNamesAsc;\r
+ std::multimap<wxString, ContactData, std::less<wxString>> vCardNamesDsc;\r
+ int ContactIndex = 0;\r
\r
- wxDir vcardaccdir(AccountDirFinal);\r
+ wxDir vcardaccdir(AccountDirFinal);\r
\r
- bool ProcFiles = vcardaccdir.GetFirst(&vCardFilename, wxEmptyString, wxDIR_FILES);\r
- while(ProcFiles){\r
+ bool ProcFiles = vcardaccdir.GetFirst(&vCardFilename, wxEmptyString, wxDIR_FILES);\r
+ while(ProcFiles){\r
\r
- if (vCardFilename.Right(4) == wxT(".vcf") || \r
- vCardFilename.Right(4) == wxT(".VCF") || \r
- vCardFilename.Right(5) == wxT(".vcard") || \r
- vCardFilename.Right(5) == wxT(".VCARD")){\r
+ if (vCardFilename.Right(4) == wxT(".vcf") || \r
+ vCardFilename.Right(4) == wxT(".VCF") || \r
+ vCardFilename.Right(5) == wxT(".vcard") || \r
+ vCardFilename.Right(5) == wxT(".VCARD")){\r
\r
- vCard Person;\r
+ vCard Person;\r
\r
- vCardFilenameFull.Append(AccountDirFinal);\r
- vCardFilenameFull.Append(wxT("/"));\r
- vCardFilenameFull.Append(vCardFilename);\r
+ vCardFilenameFull.Append(AccountDirFinal);\r
+ vCardFilenameFull.Append(wxT("/"));\r
+ vCardFilenameFull.Append(vCardFilename);\r
\r
- Person.LoadFile(vCardFilenameFull);\r
+ Person.LoadFile(vCardFilenameFull);\r
\r
- if (Person.MeetBaseSpecification()){\r
+ if (Person.MeetBaseSpecification()){\r
\r
- wxString KindStatus = Person.Get(wxT("KIND"));\r
- \r
- if (KindStatus == wxT("group")){\r
+ wxString KindStatus = Person.Get(wxT("KIND"));\r
\r
- vCardFilename.Clear();\r
- vCardFilenameFull.Clear();\r
- vCardDataString.Clear();\r
- ProcFiles = vcardaccdir.GetNext(&vCardFilename);\r
- continue;\r
+ if (KindStatus == wxT("group")){\r
\r
- }\r
+ vCardFilename.Clear();\r
+ vCardFilenameFull.Clear();\r
+ vCardDataString.Clear();\r
+ ProcFiles = vcardaccdir.GetNext(&vCardFilename);\r
+ continue;\r
\r
- wxString PersonName = Person.Get(wxT("N"));\r
- wxString PersonUID = Person.Get(wxT("UID"));\r
- wxString PersonFilename = vCardFilenameFull;\r
+ } \r
\r
- ContactData PersonData;\r
+ wxString PersonName = Person.Get(wxT("N"));\r
+ wxString PersonUID = Person.Get(wxT("UID"));\r
+ wxString PersonFilename = vCardFilenameFull;\r
\r
- PersonData.ContactName = PersonName;\r
- PersonData.ContactUID = PersonUID;\r
- PersonData.ContactFilename = PersonFilename;\r
+ ContactData PersonData;\r
\r
- //ContactsNames.insert(std::make_pair(PersonName, ContactIndex));\r
- //ContactsUIDs.insert(std::make_pair(ContactIndex, PersonUID));\r
+ PersonData.ContactName = PersonName;\r
+ PersonData.ContactUID = PersonUID;\r
+ PersonData.ContactFilename = PersonFilename;\r
\r
- if (XVMData.SortMode == 1){\r
+ if (XVMData.SortMode == 1){\r
\r
- // Split the name into sections.\r
+ // Split the name into sections.\r
\r
- vCardDataString = Person.Get(wxT("N"));\r
+ vCardDataString = Person.Get(wxT("N"));\r
\r
- vCardName NameData = Person.GetName();\r
+ vCardName NameData = Person.GetName();\r
\r
- vCardDataString = NameData.Forename + wxT(" ") + NameData.Surname;\r
+ vCardDataString = NameData.Forename + wxT(" ") + NameData.Surname;\r
\r
- } else if (XVMData.SortMode == 2){\r
+ } else if (XVMData.SortMode == 2){\r
\r
- // Split the name into sections.\r
+ // Split the name into sections.\r
\r
- vCardName NameData = Person.GetName(); \r
+ vCardName NameData = Person.GetName(); \r
\r
- vCardDataString = NameData.Surname + wxT(", ") + NameData.Forename;\r
+ vCardDataString = NameData.Surname + wxT(", ") + NameData.Forename;\r
\r
- } else if (XVMData.SortMode == 3){\r
+ } else if (XVMData.SortMode == 3){\r
\r
- // Check and make sure that the top most nickname is used.\r
+ // Check and make sure that the top most nickname is used.\r
\r
- vCardDataString = Person.Get(wxT("NICKNAME"));\r
+ vCardDataString = Person.Get(wxT("NICKNAME"));\r
\r
- if (vCardDataString.IsEmpty()){\r
+ if (vCardDataString.IsEmpty()){\r
\r
- vCardDataString = wxT("(no nickname)");\r
+ vCardDataString = wxT("(no nickname)");\r
\r
- }\r
+ }\r
\r
- } else if (XVMData.SortMode == 4){\r
+ } else if (XVMData.SortMode == 4){\r
\r
- vCardDataString = Person.Get(wxT("FN"));\r
+ vCardDataString = Person.Get(wxT("FN"));\r
\r
- }\r
+ }\r
\r
- if (XVMData.AscendingMode == TRUE){\r
- vCardNamesAsc.insert(std::make_pair(vCardDataString, PersonData));\r
- } else {\r
- vCardNamesDsc.insert(std::make_pair(vCardDataString, PersonData));\r
- }\r
+ if (XVMData.AscendingMode == TRUE){\r
+ \r
+ vCardNamesAsc.insert(std::make_pair(vCardDataString, PersonData));\r
+ \r
+ } else {\r
+ \r
+ vCardNamesDsc.insert(std::make_pair(vCardDataString, PersonData));\r
+ \r
+ }\r
\r
- } else {\r
+ } else {\r
\r
- }\r
- \r
+ }\r
\r
+ }\r
\r
- }\r
- \r
- vCardFilename.Clear();\r
- vCardFilenameFull.Clear();\r
- vCardDataString.Clear();\r
- ProcFiles = vcardaccdir.GetNext(&vCardFilename);\r
+ vCardFilename.Clear();\r
+ vCardFilenameFull.Clear();\r
+ vCardDataString.Clear();\r
+ ProcFiles = vcardaccdir.GetNext(&vCardFilename);\r
\r
- }\r
+ }\r
\r
- if (XVMData.AscendingMode == TRUE){\r
+ if (XVMData.AscendingMode == TRUE){\r
\r
- for (std::map<wxString,ContactData>::iterator iter = vCardNamesAsc.begin(); \r
- iter != vCardNamesAsc.end(); ++iter){\r
+ for (std::map<wxString,ContactData>::iterator iter = vCardNamesAsc.begin(); \r
+ iter != vCardNamesAsc.end(); ++iter){\r
\r
- chkContacts->InsertItems(1, &iter->first, 0);\r
+ chkContacts->InsertItems(1, &iter->first, 0);\r
\r
- ContactNamesData.insert(std::make_pair(ContactIndex, iter->second)); \r
+ ContactNamesData.insert(std::make_pair(ContactIndex, iter->second)); \r
\r
- ContactIndex++;\r
+ ContactIndex++;\r
\r
- }\r
+ }\r
\r
\r
- } else {\r
+ } else {\r
\r
- ContactIndex = (int)(vCardNamesDsc.size() - 1);\r
+ ContactIndex = (int)(vCardNamesDsc.size() - 1);\r
\r
- for (std::map<wxString,ContactData>::iterator iter = vCardNamesDsc.begin();\r
- iter != vCardNamesDsc.end(); ++iter){\r
+ for (std::map<wxString,ContactData>::iterator iter = vCardNamesDsc.begin();\r
+ iter != vCardNamesDsc.end(); ++iter){\r
\r
- chkContacts->InsertItems(1, &iter->first, 0);\r
+ chkContacts->InsertItems(1, &iter->first, 0);\r
\r
- ContactNamesData.insert(std::make_pair(ContactIndex, iter->second));\r
- \r
- ContactIndex--;\r
+ ContactNamesData.insert(std::make_pair(ContactIndex, iter->second));\r
+ \r
+ ContactIndex--;\r
\r
- }\r
+ }\r
\r
- }\r
+ }\r
\r
}\r
\r
void frmContactEditorGroup::ProcessData( wxCommandEvent& event )\r
{\r
\r
+ // Process action.\r
+ \r
for (int i = 0; i < chkContacts->GetCount(); i++){\r
\r
if (chkContacts->IsChecked(i) == TRUE){\r
int GroupIndex)\r
{\r
\r
+ // Setup the pointers.\r
+ \r
GroupsListCtrlPtr = GroupsListCtrl;\r
GroupsListPtr = GroupsList;\r
AccName = AccountName;\r
void frmContactEditorGroup::SetEditorMode(bool EditMode, XABViewMode XVMIn)\r
{\r
\r
+ // Setup the editor mode.\r
+ \r
EditorMode = EditMode;\r
XVMData = XVMIn;\r
\r
\r
void frmContactEditorGroup::CloseWindow( wxCommandEvent& event )\r
{\r
+ \r
+ // Close this window.\r
+ \r
this->Close();\r
+ \r
}\r