Home | News | Projects | Releases
Bugs | RFE | Repositories | Help
Added support to directly edit a contact using the -e command switch.
[xestiaab/.git] / source / main.cpp
index ed4e656..1c4ccb1 100644 (file)
 #include "bitmaps.h"
 #include "version.h"
 #include "frmActivityMgr.h"
+#include "frmSearch.h"
 #include "common/timers.h"
 #include "common/defaults.h"
+#include "common/dirs.h"
 
 class XestiaABApp: public wxApp
 {
@@ -26,19 +28,18 @@ IMPLEMENT_APP(XestiaABApp);
 bool XestiaABApp::OnInit()
 {
 
-       // Check that on Win32 systems that.
+       // Setup the locale.
 
-#if defined(__WIN32__)
+       wxLocale locale;
+       locale.Init(wxLANGUAGE_DEFAULT, wxLOCALE_LOAD_DEFAULT);
 
-#include <xestiacc.h>
+#if defined(__WIN32__)
 
-       XCCVer XCCRequiredVer;
-       XCCRequiredVer.MajorVer = 1;
-       XCCRequiredVer.MinorVer = 0;
+       // Check that the minimum version of Xestia Common Components is installed on the system.
 
-       XCCVer XCCRetrievedVer = GetXCCLibraryVersion();
+#include <xestiaccdll.h>
 
-       if (XCCRetrievedVer < XCCRequiredVer){
+       if (!CheckXCCVersion(1, 0, 0)){
                MessageBox(0, L"The version of Xestia Common Components installed is an older version not supported by this version of Xestia Address Book.\n\nPlease visit http://xestia.co.uk/commoncomponents and follow the page instructions to download the version required.", L"Older version of Xestia Common Components installed", MB_OK|MB_ICONSTOP);
                this->Exit();
        }
@@ -50,7 +51,7 @@ 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_SWITCH, wxT_2("v"), wxT_2("version"), wxTRANSLATE("Displays version number"),
@@ -70,27 +71,49 @@ 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)){
+
        // Check if the filename exists.
-       
-       //wxImage::AddHandler(new wxPNGHandler);
 
        wxFileName contactfile(wxSContactFilename);
        
        if (!contactfile.FileExists()){
        
+               wxMessageBox(_("The file with the filename given does not exist."), _("Error loading contact"), wxICON_ERROR);
                return false;
        
        }
        
-       curl_global_init(CURL_GLOBAL_ALL);
+       // Check if file is in the user's Xestia Address Book data storage
+       // path. If it is, refuse to open it.
+       
+       wxString UserDir = GetUserDir();
+       long UserDirLength = UserDir.Len();
+       
+       if (UserDir == contactfile.GetFullPath().Mid(0, UserDirLength)){
+       
+               wxMessageBox(_("The file with the filename given is in the directories that Xestia Address Book stores it's data and cannot be opened directly."), _("Error loading contact"), wxICON_ERROR);
+               return false;
+       
+       }
        
        wxMemoryInputStream istream(bigimgs_contactpersonicon48_png, sizeof(bigimgs_contactpersonicon48_png));
        wxImage bigimgs_contactpersonicon48i(istream, wxBITMAP_TYPE_PNG);
@@ -101,7 +124,8 @@ bool XestiaABApp::OnInit()
        // Get the filename of the selected contact.
 
        frmContactEditor *ContactEditor = new frmContactEditor( NULL );
-       ContactEditor->SetupHeaders();    
+       ContactEditor->SetupHeaders();
+       ContactEditor->SetMode(TRUE);
        ContactEditor->LoadContact(wxSContactFilename);
        //ContactEditor->SetupContact(ActiveAccount);
        ContactEditor->SetIcon(contacticon);
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