+// frmContact.cpp - Contact information 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 <http://www.gnu.org/licenses/>
+
#include "frmContact.h"
#include "common/getcontactinfo.h"
#include "frmMain.h"
void frmContact::CloseWindow( wxCommandEvent& event ){
+ // Close this window.
+
this->Close();
}
wxFileSystem::AddHandler(new wxMemoryFSHandler);
- if (MemoryFSListPtr->find(SessionID) == MemoryFSListPtr->end()){
+ // Check if frmContact is the main window, if not
+ // then do some clear up.
+
+ if (StartupMode == false){
+
+ if (MemoryFSListPtr->find(SessionID) == MemoryFSListPtr->end()){
+
+ } else {
- } else {
+ std::map<wxString, wxString>::iterator striter;
- std::map<wxString, wxString>::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){
+ // Setup the contact information.
+
wxFileSystem::AddHandler(new wxMemoryFSHandler);
for (std::map<wxString, wxString>::iterator striter = MemoryFSListPtr->begin();
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"));
+
+ if (FNList.PropCount > 0){
+ FNList.PropValues[0].Trim();
+ SetTitle(FNList.PropValues[0]);
+ }
+
+ if (StartupMode == false){
+
+ WindowData *WData = new WindowData;
- WindowData *WData = new WindowData;
+ vCardFilename = vCardObj->GetFilename();
- vCardFilename = vCardObj->GetFilename();
+ WData->DataType = 0;
+ WData->WindowPointer = this;
+ WData->WindowID = ContactUID;
+
+ wxCommandEvent editevent(WINDOW_EDIT);
+ editevent.SetClientData(WData);
+ wxPostEvent(GetParent(), editevent);
+
+ }
- WData->DataType = 0;
- WData->WindowPointer = this;
- WData->WindowID = ContactUID;
+ return TRUE;
+}
- wxCommandEvent editevent(WINDOW_EDIT);
- editevent.SetClientData(WData);
- wxPostEvent(GetParent(), editevent);
+void frmContact::SetMode(bool StartupModeIn){
- return TRUE;
+ // Set the mode which frmContact will be operating.
+
+ StartupMode = StartupModeIn;
+
}
void frmContact::SetupPointers(std::map<wxString,wxString> *MemoryFSListIncPtr){
+ // Set the pointer for the Memory Filesystem map.
+
MemoryFSListPtr = MemoryFSListIncPtr;
}
void frmContact::SetUID(int UID){
+ // Set the UID of the contact window.
+
ContactUID = UID;
}
wxString frmContact::GetFilename(){
+ // Get the filename of the contact being displayed.
+
return vCardFilename;
}
\ No newline at end of file