X-Git-Url: http://Server1/repobrowser/?a=blobdiff_plain;f=source%2Fcontacteditor%2FfrmContactEditorTelephone.cpp;h=0df8d2bce72d3b426b50fb5cea5ee5bfa58d8cd4;hb=bfe817b5bfae33a1eb666c463643ec119cd1d66d;hp=d3ac34530f4dfac1ccb491d56943b7193eb3f72e;hpb=45729fca56479bd9158486e0cda0c4a94b4dd1dc;p=xestiaab%2F.git diff --git a/source/contacteditor/frmContactEditorTelephone.cpp b/source/contacteditor/frmContactEditorTelephone.cpp index d3ac345..0df8d2b 100644 --- a/source/contacteditor/frmContactEditorTelephone.cpp +++ b/source/contacteditor/frmContactEditorTelephone.cpp @@ -1,3 +1,21 @@ +// frmContactEditorTelephone.cpp - frmContactEditorTelephone 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 "frmContactEditorTelephone.h" #include "../common/textprocessing.h" #include @@ -6,21 +24,32 @@ frmContactEditorTelephone::frmContactEditorTelephone( wxWindow* parent ) : frmContactEditorTelephoneADT( parent ) { + + // Setup the window. + EditorMode = FALSE; sliPriority->Disable(); + } void frmContactEditorTelephone::EnablePriority( wxCommandEvent& event ) { + + // Enable/disable the priority setting. + if (chkUsePref->IsChecked()){ sliPriority->Enable(); } else { sliPriority->Disable(); } + } void frmContactEditorTelephone::ProcessAction( wxCommandEvent& event ) { + + // Process action. + long ListCtrlIndex; if (EditorMode == FALSE){ @@ -157,7 +186,9 @@ void frmContactEditorTelephone::ProcessAction( wxCommandEvent& event ) } - TelephoneListTypePtr->insert(std::make_pair(TelephoneListIndex, strTelTypes)); + TelephoneListTypePtr->insert(std::make_pair(TelephoneListIndex, strTelTypes)); + + TelephoneListTypeInfoPtr->insert(std::make_pair(TelephoneListIndex, strTelTypes)); // Add Telephone Priority. @@ -333,6 +364,9 @@ void frmContactEditorTelephone::ProcessAction( wxCommandEvent& event ) TelephoneListTypePtr->erase(TelephoneListIndex); TelephoneListTypePtr->insert(std::make_pair(TelephoneListIndex, strTelTypes)); + TelephoneListTypeInfoPtr->erase(TelephoneListIndex); + TelephoneListTypeInfoPtr->insert(std::make_pair(TelephoneListIndex, strTelTypes)); + // Edit the Telephone Priority. TelephoneListPrefPtr->erase(TelephoneListIndex); @@ -379,12 +413,17 @@ void frmContactEditorTelephone::ProcessAction( wxCommandEvent& event ) void frmContactEditorTelephone::CloseWindow( wxCommandEvent& event ) { + // Close the window. + this->Close(); } void frmContactEditorTelephone::SetEditorMode(bool EditMode, SectionType SectType) { + + // Set the editor mode. + // Set if the editor is adding or editing an address. // FALSE = Add // TRUE = Edit @@ -421,13 +460,19 @@ void frmContactEditorTelephone::SetEditorMode(bool EditMode, SectionType SectTyp // Get the phone types in. - striter = TelephoneListTypePtr->find(TelephoneListIndex); + + if (TelephoneListTypeInfoPtr->find(TelephoneListIndex) != + TelephoneListTypeInfoPtr->end()){ + + striter = TelephoneListTypeInfoPtr->find(TelephoneListIndex); - if (striter->first == TelephoneListIndex){ + if (striter->first == TelephoneListIndex){ - strValue = striter->second; + strValue = striter->second; - } + } + + } wxStringTokenizer TelephonePrefToken (strValue, wxT(",")); @@ -493,7 +538,8 @@ void frmContactEditorTelephone::SetEditorMode(bool EditMode, SectionType SectTyp intiter = TelephoneListPrefPtr->find(TelephoneListIndex); - if (intiter->first == TelephoneListIndex && intiter->second > 0){ + if (intiter->first == TelephoneListIndex && intiter->second > 0 && + intiter != TelephoneListPrefPtr->end()){ sliPriority->SetValue(intiter->second); sliPriority->Enable(); @@ -511,16 +557,20 @@ void frmContactEditorTelephone::SetupPointers(std::map *Telephone std::map *TelephoneListAltID, std::map *TelephoneListPID, std::map *TelephoneListType, + std::map *TelephoneListTypeInfo, std::map *TelephoneListTokens, std::map *TelephoneListPref, wxListCtrl *TelephoneListCtrl, int TelephoneIndex ) { + // Setup the pointers. + TelephoneListPtr = TelephoneList; TelephoneListAltIDPtr = TelephoneListAltID; TelephoneListPIDPtr = TelephoneListPID; TelephoneListTypePtr = TelephoneListType; + TelephoneListTypeInfoPtr = TelephoneListTypeInfo; TelephoneListTokensPtr = TelephoneListTokens; TelephoneListPrefPtr = TelephoneListPref; TelephoneListCtrlPtr = TelephoneListCtrl;