X-Git-Url: http://Server1/repobrowser/?a=blobdiff_plain;f=source%2FfrmSearch.cpp;h=73ca64df9aecc1b524815027aa412b776a165682;hb=c31cb9c171e80cfb02d26b6753576c4066edab90;hp=50d8b5c3ce170ff10f26077c992589424e17d8d1;hpb=45729fca56479bd9158486e0cda0c4a94b4dd1dc;p=xestiaab%2F.git diff --git a/source/frmSearch.cpp b/source/frmSearch.cpp index 50d8b5c..73ca64d 100644 --- a/source/frmSearch.cpp +++ b/source/frmSearch.cpp @@ -1,5 +1,6 @@ #include "frmSearch.h" #include "frmMain.h" +#include "frmContact.h" #include "search/XABSearchPanel.h" #include "search/frmSearchAccounts.h" #include "common/preferences.h" @@ -7,6 +8,7 @@ #include "vcard/vcard.h" #include +#include /*#include #include #include */ @@ -21,6 +23,9 @@ DEFINE_EVENT_TYPE(SE_SBUPDATE); DEFINE_EVENT_TYPE(SE_SEARCHFINISHED); DEFINE_EVENT_TYPE(SE_UPDATERESULT); DEFINE_EVENT_TYPE(SE_DELETERESULT); +DEFINE_EVENT_TYPE(SE_OPENCONTACT); +DEFINE_EVENT_TYPE(SE_EDITCONTACT); +DEFINE_EVENT_TYPE(SE_REVEALCONTACT); BEGIN_EVENT_TABLE(frmSearch, wxFrame) EVT_COMMAND(wxID_ANY, SE_ADDSEARCHSETTING, frmSearch::AddSearchSetting) @@ -31,6 +36,9 @@ BEGIN_EVENT_TABLE(frmSearch, wxFrame) EVT_COMMAND(wxID_ANY, SE_SEARCHFINISHED, frmSearch::SearchFinished) EVT_COMMAND(wxID_ANY, SE_UPDATERESULT, frmSearch::UpdateResult) EVT_COMMAND(wxID_ANY, SE_DELETERESULT, frmSearch::DeleteResult) + EVT_COMMAND(wxID_ANY, SE_OPENCONTACT, frmSearch::OpenContact) + EVT_COMMAND(wxID_ANY, SE_EDITCONTACT, frmSearch::EditContact) + EVT_COMMAND(wxID_ANY, SE_REVEALCONTACT, frmSearch::RevealContact) END_EVENT_TABLE() //namespace boostfs = boost::filesystem; @@ -213,43 +221,9 @@ void frmSearch::SearchContactsThread(){ vCardFilenameFull.Append(AccountDir); vCardFilenameFull.Append(vCardFilename); - Person.LoadFile(vCardFilenameFull); - - /*if (boostfs::path(vcarddir_iter->path()).extension() == ".vcf" || - boostfs::path(vcarddir_iter->path()).extension() == ".VCF" || - boostfs::path(vcarddir_iter->path()).extension() == ".vcard" || - boostfs::path(vcarddir_iter->path()).extension() == ".VCARD"){*/ vcardfilenamewxs = vCardFilenameFull; - - /*vCard Person; - std::fstream vcardfile; - - vcardfilename = boostfs::path(vcarddir_iter->path()).filename(); - vcardfilenamewxs.Append(AccountDir); - vcardfilenamewxs.Append(wxString::FromUTF8(vcardfilename.c_str())); - - // Open the vCard file up and get the setting names and values from the - // file. - - vcardfile.open(vcardfilenamewxs.mb_str(), std::ios::in); - - while(getline(vcardfile, l)){ - - lwxs.Clear(); - setname.Clear(); - setvalue.Clear(); - lwxs.Append(wxString::FromUTF8(l.c_str())); - vcardfileline.SetString(lwxs, wxT(":")); - setname = vcardfileline.GetNextToken(); - setvalue = vcardfileline.GetString(); - - Person.Add(setname, setvalue, TRUE); - - } - - vcardfile.close();*/ // Check if file has version 4.0, first name (FN) // begin and end vCard portions. @@ -1242,6 +1216,8 @@ void frmSearch::RemoveSearchSetting( wxCommandEvent& event ) void frmSearch::ReloadAccountList( wxCommandEvent& event ){ + // Currently unimplemented. + } void frmSearch::AddResult( wxCommandEvent& event ){ @@ -1366,14 +1342,40 @@ void frmSearch::OpenContact( wxCommandEvent& event ){ intContactSeekNum = lstResults->GetItemData(intSelected); - UCNotif *uc = new UCNotif; + if (SearchMode == TRUE){ + + wxMessageBox(SearchResultFilename[intContactSeekNum]); + + vCard Person; + + Person.LoadFile(SearchResultFilename[intContactSeekNum]); + + wxMemoryInputStream istream(bigimgs_contactpersonicon48_png, sizeof(bigimgs_contactpersonicon48_png)); + wxImage bigimgs_contactpersonicon48i(istream, wxBITMAP_TYPE_PNG); + wxBitmap contacticonbmp(bigimgs_contactpersonicon48i, -1); + wxIcon contacticon; + contacticon.CopyFromBitmap(contacticonbmp); + + frmContact *Contact = new frmContact( this ); + + Contact->SetupPointers(&SearchModeMemoryFSPtr); + Contact->SetupContactData(&Person); + + Contact->SetIcon(contacticon); + Contact->Show(true); - uc->ContactAccount = SearchResultAccount[intContactSeekNum]; - uc->ContactFilename = SearchResultFilename[intContactSeekNum]; + } else { - wxCommandEvent oc(CE_OPENCONTACT); - oc.SetClientData(uc); - wxPostEvent(this->GetParent(), oc); + UCNotif *uc = new UCNotif; + + uc->ContactAccount = SearchResultAccount[intContactSeekNum]; + uc->ContactFilename = SearchResultFilename[intContactSeekNum]; + + wxCommandEvent oc(CE_OPENCONTACT); + oc.SetClientData(uc); + wxPostEvent(this->GetParent(), oc); + + } } @@ -1665,4 +1667,57 @@ void frmSearch::SetUID(int UID){ SearchUID = UID; +} + +void frmSearch::SetSearchMode(bool SearchModeIn){ + + SearchMode = SearchModeIn; + + if (SearchMode == TRUE){ + + mnuContactEdit->Enable(FALSE); + mnuContactReveal->Enable(FALSE); + + wxFileSystem::AddHandler(new wxMemoryFSHandler); + wxImage ciicon_png; + + wxMemoryInputStream ciptostream(icons_cipto_png, sizeof(icons_cipto_png)); + ciicon_png.LoadFile(ciptostream, wxBITMAP_TYPE_PNG); + wxMemoryFSHandler::AddFile(wxT("cipto.png"), ciicon_png, wxBITMAP_TYPE_PNG); + + wxMemoryInputStream cilogstream(icons_cilog_png, sizeof(icons_cilog_png)); + ciicon_png.LoadFile(cilogstream, wxBITMAP_TYPE_PNG); + wxMemoryFSHandler::AddFile(wxT("cilog.png"), ciicon_png, wxBITMAP_TYPE_PNG); + + wxMemoryInputStream cisndstream(icons_cisnd_png, sizeof(icons_cisnd_png)); + ciicon_png.LoadFile(cisndstream, wxBITMAP_TYPE_PNG); + wxMemoryFSHandler::AddFile(wxT("cisnd.png"), ciicon_png, wxBITMAP_TYPE_PNG); + + wxMemoryInputStream cikeystream(icons_cikey_png, sizeof(icons_cikey_png)); + ciicon_png.LoadFile(cikeystream, wxBITMAP_TYPE_PNG); + wxMemoryFSHandler::AddFile(wxT("cikey.png"), ciicon_png, wxBITMAP_TYPE_PNG); + + wxMemoryInputStream civenstream(icons_civen_png, sizeof(icons_civen_png)); + ciicon_png.LoadFile(civenstream, wxBITMAP_TYPE_PNG); + wxMemoryFSHandler::AddFile(wxT("civen.png"), ciicon_png, wxBITMAP_TYPE_PNG); + + wxMemoryInputStream ciextstream(icons_ciext_png, sizeof(icons_ciext_png)); + ciicon_png.LoadFile(ciextstream, wxBITMAP_TYPE_PNG); + wxMemoryFSHandler::AddFile(wxT("ciext.png"), ciicon_png, wxBITMAP_TYPE_PNG); + + } else { + + mnuContactEdit->Enable(TRUE); + mnuContactReveal->Enable(TRUE); + + } + +} + +void frmSearch::ShowContactMenu( wxMouseEvent& event ){ + + ContactMenu->SetupPointers(this, lstResults); + + PopupMenu(ContactMenu->MenuPointer(), wxDefaultPosition); + } \ No newline at end of file