Home | News | Projects | Releases
Bugs | RFE | Repositories | Help
Implemented search mode support using the -s/--search switch on the command line.
authorSteve Brokenshire <sbrokenshire@xestia.co.uk>
Sat, 10 Oct 2015 09:15:13 +0000 (10:15 +0100)
committerSteve Brokenshire <sbrokenshire@xestia.co.uk>
Sat, 10 Oct 2015 09:15:13 +0000 (10:15 +0100)
source/frmSearch.cpp
source/frmSearch.h
source/main.cpp

index 50d8b5c..f3ae077 100644 (file)
@@ -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 <thread>
+#include <wx/fs_mem.h>
 /*#include <boost/filesystem.hpp>
 #include <boost/filesystem/fstream.hpp>
 #include <boost/filesystem/path.hpp>*/
@@ -1242,6 +1244,8 @@ void frmSearch::RemoveSearchSetting( wxCommandEvent& event )
 
 void frmSearch::ReloadAccountList( wxCommandEvent& event ){
 
+       // Currently unimplemented.
+
 }
 
 void frmSearch::AddResult( wxCommandEvent& event ){
@@ -1366,14 +1370,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 {
+
+               UCNotif *uc = new UCNotif;
+
+               uc->ContactAccount = SearchResultAccount[intContactSeekNum];
+               uc->ContactFilename = SearchResultFilename[intContactSeekNum];
 
-       wxCommandEvent oc(CE_OPENCONTACT);
-       oc.SetClientData(uc);
-       wxPostEvent(this->GetParent(), oc);
+               wxCommandEvent oc(CE_OPENCONTACT);
+               oc.SetClientData(uc);
+               wxPostEvent(this->GetParent(), oc);
+
+       }
 
 }
 
@@ -1665,4 +1695,49 @@ 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);
+       
+       }
+       
 }
\ No newline at end of file
index 4153719..c167f0c 100644 (file)
@@ -42,10 +42,12 @@ class frmSearch : public frmSearchADT
                std::map<wxString, wxString> SearchAccountsPaths;
                std::map<long, wxString> SearchResultAccount;
                std::map<long, wxString> SearchResultFilename;
+               std::map<wxString, wxString> SearchModeMemoryFSPtr;
                int ScrollGen = 0;
                int SearchUID = 0;
                bool SearchEnabled = FALSE;
                bool StopMode = FALSE;
+               bool SearchMode = FALSE;
                bool CheckDuplicate(wxString Filename, 
                        wxString Account,
                        std::map<long,wxString> *SRAcc,
@@ -74,6 +76,7 @@ class frmSearch : public frmSearchADT
                /** Constructor */
                frmSearch( wxWindow* parent );
                void SetUID(int UID);
+               void SetSearchMode(bool SearchModeIn);
                DECLARE_EVENT_TABLE()
        //// end generated class members
        
index 386e30d..c900927 100644 (file)
@@ -13,6 +13,7 @@
 #include "bitmaps.h"
 #include "version.h"
 #include "frmActivityMgr.h"
+#include "frmSearch.h"
 #include "common/timers.h"
 #include "common/defaults.h"
 
@@ -49,9 +50,9 @@ bool XestiaABApp::OnInit()
          { wxCMD_LINE_SWITCH, wxT_2("h"), wxT_2("help"), wxTRANSLATE("Displays help on command line parameters"),
              wxCMD_LINE_VAL_NONE, wxCMD_LINE_OPTION_HELP },
          /*{ wxCMD_LINE_OPTION, wxT_2("e"), wxT_2("edit"), wxTRANSLATE("Edit a vCard 4.0 formatted contact"),
-             wxCMD_LINE_VAL_STRING, wxCMD_LINE_PARAM_OPTIONAL }, 
+             wxCMD_LINE_VAL_STRING, wxCMD_LINE_PARAM_OPTIONAL },*/
          { wxCMD_LINE_SWITCH, wxT_2("s"), wxT_2("search"), wxTRANSLATE("Display the search window instead of starting normally"),
-             wxCMD_LINE_VAL_NONE, wxCMD_LINE_PARAM_OPTIONAL },*/
+             wxCMD_LINE_VAL_NONE, wxCMD_LINE_PARAM_OPTIONAL },
          { wxCMD_LINE_SWITCH, wxT_2("v"), wxT_2("version"), wxTRANSLATE("Displays version number"),
              wxCMD_LINE_VAL_NONE, wxCMD_LINE_PARAM_OPTIONAL },
          { wxCMD_LINE_NONE }
@@ -69,14 +70,26 @@ bool XestiaABApp::OnInit()
     
     if (XABArgs.Found(wxT("v"))){
     
+       wxPuts(XSDAB_VERSION);
        exit(0);
     
     }
     
     wxInitAllImageHandlers();
     
-    /*if (XABArgs.Found(wxT("e"), &wxSContactFilename)){
+    if (XABArgs.Found(wxT("s"))){
+    
+       // Open up the search window.
        
+       frmSearch *frmSearchPtr = new frmSearch( NULL );
+       frmSearchPtr->Show(true);
+       frmSearchPtr->SetSearchMode(true);
+       return true;
+    
+    }
+    
+    /*if (XABArgs.Found(wxT("e"), &wxSContactFilename)){
+       Xestia Gelforn Project Repositories - xestiaab/.git/tree - source/vcard/
        // Check if the filename exists.
        
        //wxImage::AddHandler(new wxPNGHandler);
Xestia Software Development
Yn Maystri
© 2006 - 2019 Xestia Software Development
Software

Xestia Address Book
Xestia Calendar
Development

Xestia Gelforn
Everything else

About
News
Privacy Policy