#include "frmSearch.h"
#include "frmMain.h"
+#include "frmContact.h"
#include "search/XABSearchPanel.h"
#include "search/frmSearchAccounts.h"
#include "common/preferences.h"
#include "vcard/vcard.h"
#include <thread>
+#include <wx/fs_mem.h>
/*#include <boost/filesystem.hpp>
#include <boost/filesystem/fstream.hpp>
#include <boost/filesystem/path.hpp>*/
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)
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;
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.
void frmSearch::ReloadAccountList( wxCommandEvent& event ){
+ // Currently unimplemented.
+
}
void frmSearch::AddResult( 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);
+
+ }
}
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