From 8d1a72aa472b0930d2204dad74cc6db9f39ffb44 Mon Sep 17 00:00:00 2001 From: Steve Brokenshire Date: Sun, 6 Mar 2016 17:25:46 +0000 Subject: [PATCH] If StartupMode is true, ignore doing any MemoryFS clean ups. --- source/frmContact.cpp | 71 +++++++++++++++++++++++-------------------- 1 file changed, 38 insertions(+), 33 deletions(-) diff --git a/source/frmContact.cpp b/source/frmContact.cpp index ed8f2fb..a94c876 100644 --- a/source/frmContact.cpp +++ b/source/frmContact.cpp @@ -50,47 +50,49 @@ void frmContact::CloseWindow( wxCloseEvent& event ){ wxFileSystem::AddHandler(new wxMemoryFSHandler); - if (MemoryFSListPtr->find(SessionID) == MemoryFSListPtr->end()){ + if (StartupMode == false){ + + if (MemoryFSListPtr->find(SessionID) == MemoryFSListPtr->end()){ - } else { + } else { - std::map::iterator striter; + std::map::iterator striter; - for (striter = MemoryFSListPtr->begin(); striter != MemoryFSListPtr->end(); striter++){ + for (striter = MemoryFSListPtr->begin(); striter != MemoryFSListPtr->end(); striter++){ - if (SessionID == striter->second){ + if (SessionID == striter->second){ - // Delete the references from the wxMemoryFSHandler - // and the entry from the map. + // Delete the references from the wxMemoryFSHandler + // and the entry from the map. - wxMemoryFSHandler::RemoveFile(striter->first); + wxMemoryFSHandler::RemoveFile(striter->first); - break; + break; - } + } - } + } - MemoryFSListPtr->erase(striter); + MemoryFSListPtr->erase(striter); - } + } - WindowData *WData = new WindowData; + WindowData *WData = new WindowData; - WData->DataType = 0; - WData->WindowPointer = this; - WData->WindowID = ContactUID; + WData->DataType = 0; + WData->WindowPointer = this; + WData->WindowID = ContactUID; - wxCommandEvent delevent(WINDOW_CLOSE); - delevent.SetClientData(WData); - wxPostEvent(GetParent(), delevent); + wxCommandEvent delevent(WINDOW_CLOSE); + delevent.SetClientData(WData); + wxPostEvent(GetParent(), delevent); + } + Destroy(); } - - bool frmContact::SetupContactData(vCard *vCardObj){ wxFileSystem::AddHandler(new wxMemoryFSHandler); @@ -113,7 +115,6 @@ bool frmContact::SetupContactData(vCard *vCardObj){ OldSessionID = SessionID; SessionID = wxString::Format(wxT("%i"), rand() % 32768); LoadContactData(vCardObj, htmContactData, SessionID, OldSessionID, MemoryFSListPtr); - SetTitle(vCardObj->Get(wxT("FN"))); ArrayvCardOutData FNList; FNList = vCardObj->GetByPartial(wxT("FN")); @@ -121,18 +122,22 @@ bool frmContact::SetupContactData(vCard *vCardObj){ FNList.PropValues[0].Trim(); SetTitle(FNList.PropValues[0]); } + + if (StartupMode == false){ + + WindowData *WData = new WindowData; - WindowData *WData = new WindowData; - - vCardFilename = vCardObj->GetFilename(); - - WData->DataType = 0; - WData->WindowPointer = this; - WData->WindowID = ContactUID; + vCardFilename = vCardObj->GetFilename(); - wxCommandEvent editevent(WINDOW_EDIT); - editevent.SetClientData(WData); - wxPostEvent(GetParent(), editevent); + WData->DataType = 0; + WData->WindowPointer = this; + WData->WindowID = ContactUID; + + wxCommandEvent editevent(WINDOW_EDIT); + editevent.SetClientData(WData); + wxPostEvent(GetParent(), editevent); + + } return TRUE; } -- 2.39.5