From d4a3b50aae4237e9b5a0f4b3bd0a2eb4e8b69c3c Mon Sep 17 00:00:00 2001 From: Steve Brokenshire Date: Wed, 6 Jan 2016 17:57:43 +0000 Subject: [PATCH] Yet more enhancements for IMPP in frmContactEditorIM. --- source/contacteditor/frmContactEditorIM.cpp | 77 +++++++++++---------- 1 file changed, 39 insertions(+), 38 deletions(-) diff --git a/source/contacteditor/frmContactEditorIM.cpp b/source/contacteditor/frmContactEditorIM.cpp index adffd15..40bfef1 100644 --- a/source/contacteditor/frmContactEditorIM.cpp +++ b/source/contacteditor/frmContactEditorIM.cpp @@ -37,6 +37,7 @@ frmContactEditorIMADT( parent ) cmbIMType->Append(wxT("Skype")); cmbIMType->Append(wxT("XMPP")); cmbIMType->Append(wxT("Yahoo")); + cmbIMType->Append(_("Other")); } @@ -81,8 +82,7 @@ void frmContactEditorIM::ProcessAction( wxCommandEvent& event ) // Add the address to the list (maps). wxString strIMAddress; - wxString strValue; - + // Strip out the colons. strIMAddress.Replace(wxT(":"), wxT(""), TRUE); @@ -93,38 +93,36 @@ void frmContactEditorIM::ProcessAction( wxCommandEvent& event ) if (strIMTypeValue == wxT("AIM")){ - strIMAddress.Append(wxT("aim:")); + strIMAddress.Append(wxT("aim")); } else if (strIMTypeValue == wxT("Gadu-Gadu")){ - strIMAddress.Append(wxT("gg:")); + strIMAddress.Append(wxT("gg")); } else if (strIMTypeValue == wxT("ICQ")){ - strIMAddress.Append(wxT("icq:")); + strIMAddress.Append(wxT("icq")); } else if (strIMTypeValue == wxT("Skype")){ - strIMAddress.Append(wxT("skype:")); + strIMAddress.Append(wxT("skype")); } else if (strIMTypeValue == wxT("XMPP")){ - strIMAddress.Append(wxT("xmpp:")); + strIMAddress.Append(wxT("xmpp")); } else if (strIMTypeValue == wxT("Yahoo")){ - strIMAddress.Append(wxT("yahoo:")); + strIMAddress.Append(wxT("yahoo")); } else { - strIMAddress.Append(strIMTypeValue + wxT(":")); + strIMAddress.Append(strIMTypeValue); } - strIMAddress.Append(strValue); - strIMAddress.Append(txtUsername->GetValue()); - - IMListPtr->insert(std::make_pair(IMListIndex, strIMAddress)); + IMListTypeInfoPtr->insert(std::make_pair(IMListIndex, strIMAddress)); + IMListPtr->insert(std::make_pair(IMListIndex, txtUsername->GetValue())); // Set the type. @@ -178,52 +176,47 @@ void frmContactEditorIM::ProcessAction( wxCommandEvent& event ) // Edit the address in the list. wxString strIMAddress; - wxString strValue; long longSelected = -1; - // Strip out the colons. - - strIMAddress.Replace(wxT(":"), wxT(""), TRUE); - // Specify the type. strIMTypeValue = cmbIMType->GetString(cmbIMType->GetSelection()); - + if (strIMTypeValue == wxT("AIM")){ - strIMAddress.Append(wxT("aim:")); + strIMAddress.Append(wxT("aim")); } else if (strIMTypeValue == wxT("Gadu-Gadu")){ - strIMAddress.Append(wxT("gg:")); + strIMAddress.Append(wxT("gg")); } else if (strIMTypeValue == wxT("ICQ")){ - strIMAddress.Append(wxT("icq:")); + strIMAddress.Append(wxT("icq")); } else if (strIMTypeValue == wxT("Skype")){ - strIMAddress.Append(wxT("skype:")); + strIMAddress.Append(wxT("skype")); } else if (strIMTypeValue == wxT("XMPP")){ - strIMAddress.Append(wxT("xmpp:")); + strIMAddress.Append(wxT("xmpp")); } else if (strIMTypeValue == wxT("Yahoo")){ - strIMAddress.Append(wxT("yahoo:")); + strIMAddress.Append(wxT("yahoo")); } else { - strIMAddress.Append(strIMTypeValue + wxT(":")); + strIMAddress.Append(strIMTypeValue); } - - strIMAddress.Append(strValue); - strIMAddress.Append(txtUsername->GetValue()); - + IMListPtr->erase(IMListIndex); - IMListPtr->insert(std::make_pair(IMListIndex, strIMAddress)); + IMListPtr->insert(std::make_pair(IMListIndex, txtUsername->GetValue())); + + IMListTypeInfoPtr->erase(IMListIndex); + IMListTypeInfoPtr->insert(std::make_pair(IMListIndex, strIMAddress)); // Set the priority. @@ -296,8 +289,8 @@ void frmContactEditorIM::SetEditorMode(bool EditMode, SectionType SectType) wxString strValue; wxString strIMType; wxString strIMUser; - - // Setup the IM Type. + + // Setup the IM Type. striter = IMListPtr->find(IMListIndex); @@ -305,39 +298,45 @@ void frmContactEditorIM::SetEditorMode(bool EditMode, SectionType SectType) strValue = striter->second; - } + } - wxStringTokenizer IMAddressToken(strValue, wxT(":")); - strIMType = IMAddressToken.GetNextToken(); - strIMUser = IMAddressToken.GetNextToken(); + strIMUser = IMListPtr->find(IMListIndex)->second; + strIMType = IMListTypeInfoPtr->find(IMListIndex)->second; if (strIMType == wxT("aim")){ cmbIMType->SetValue(wxT("AIM")); + cmbIMType->SetSelection(0); } else if (strIMType == wxT("gg")){ cmbIMType->SetValue(wxT("Gadu-Gadu")); + cmbIMType->SetSelection(1); } else if (strIMType == wxT("icq")){ cmbIMType->SetValue(wxT("ICQ")); + cmbIMType->SetSelection(2); } else if (strIMType == wxT("skype")){ cmbIMType->SetValue(wxT("Skype")); + cmbIMType->SetSelection(3); } else if (strIMType == wxT("xmpp")){ - cmbIMType->SetValue(wxT("XMPP")); + cmbIMType->SetValue(wxT("XMPP")); + cmbIMType->SetSelection(4); } else if (strIMType == wxT("yahoo")){ cmbIMType->SetValue(wxT("Yahoo")); + cmbIMType->SetSelection(5); } else { cmbIMType->SetValue(strIMType); + cmbIMType->SetSelection(6); } @@ -367,6 +366,7 @@ void frmContactEditorIM::SetupPointers( std::map *IMList, std::map *IMListAltID, std::map *IMListPID, std::map *IMListType, + std::map *IMListTypeInfo, std::map *IMListTokens, std::map *IMListMediatype, std::map *IMListPref, @@ -378,6 +378,7 @@ void frmContactEditorIM::SetupPointers( std::map *IMList, IMListAltIDPtr = IMListAltID; IMListPIDPtr = IMListPID; IMListTypePtr = IMListType; + IMListTypeInfoPtr = IMListTypeInfo; IMListTokensPtr = IMListTokens; IMListMediatypePtr = IMListMediatype; IMListPrefPtr = IMListPref; -- 2.39.2