X-Git-Url: http://Server1/repobrowser/?a=blobdiff_plain;f=source%2Fmain.cpp;h=9b998bce52484e3182754e4c5df0550ee264ae9c;hb=a73019906500e3a0fc306a61e4b7975f79725866;hp=386e30d92c17570c05249529568fa7034edeb9d0;hpb=ef6d8144760b931068ed4cedd1b4c7fc4176f655;p=xestiaab%2F.git
diff --git a/source/main.cpp b/source/main.cpp
index 386e30d..9b998bc 100644
--- a/source/main.cpp
+++ b/source/main.cpp
@@ -1,3 +1,21 @@
+// main.cpp - Main subroutine (application start).
+//
+// (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
+
#include
#include
@@ -13,8 +31,10 @@
#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
{
@@ -31,7 +51,7 @@ bool XestiaABApp::OnInit()
wxLocale locale;
locale.Init(wxLANGUAGE_DEFAULT, wxLOCALE_LOAD_DEFAULT);
-#if defined(__WIN32__)
+/*#if defined(__WIN32__)
// Check that the minimum version of Xestia Common Components is installed on the system.
@@ -42,99 +62,124 @@ bool XestiaABApp::OnInit()
this->Exit();
}
-#endif
-
- static const wxCmdLineEntryDesc g_cmdLineDesc [] =
- {
- { 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_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"),
- wxCMD_LINE_VAL_NONE, wxCMD_LINE_PARAM_OPTIONAL },
- { wxCMD_LINE_NONE }
- };
-
- wxString wxSContactFilename;
- wxCmdLineParser XABArgs (g_cmdLineDesc, argc, argv);
- XABArgs.Parse();
+#endif*/
+
+ static const wxCmdLineEntryDesc g_cmdLineDesc [] =
+ {
+ { 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_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"),
+ wxCMD_LINE_VAL_NONE, wxCMD_LINE_PARAM_OPTIONAL },
+ { wxCMD_LINE_NONE }
+ };
+
+ wxString wxSContactFilename;
+ wxCmdLineParser XABArgs (g_cmdLineDesc, argc, argv);
+ XABArgs.Parse();
- if (XABArgs.Found(wxT("h"))){
+ if (XABArgs.Found(wxT("h"))){
+
+ // Print out the list of help commands.
+
+ return false;
- return false;
+ }
- }
+ if (XABArgs.Found(wxT("v"))){
- if (XABArgs.Found(wxT("v"))){
+ // Print out the version number.
+
+ wxPuts(XSDAB_VERSION);
+ exit(0);
- exit(0);
+ }
- }
+ wxInitAllImageHandlers();
- wxInitAllImageHandlers();
+ if (XABArgs.Found(wxT("s"))){
- /*if (XABArgs.Found(wxT("e"), &wxSContactFilename)){
+ // Open up the search window.
- // Check if the filename exists.
-
- //wxImage::AddHandler(new wxPNGHandler);
+ frmSearch *frmSearchPtr = new frmSearch( NULL );
+ frmSearchPtr->Show(true);
+ frmSearchPtr->SetSearchMode(true);
+ return true;
+
+ }
+
+ if (XABArgs.Found(wxT("e"), &wxSContactFilename)){
+
+ // Check if the filename exists.
- wxFileName contactfile(wxSContactFilename);
+ wxFileName contactfile(wxSContactFilename);
- if (!contactfile.FileExists()){
+ if (!contactfile.FileExists()){
- return false;
+ 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.
- 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);
-
- // Get the filename of the selected contact.
-
- frmContactEditor *ContactEditor = new frmContactEditor( NULL );
- ContactEditor->SetupHeaders();
- ContactEditor->LoadContact(wxSContactFilename);
- //ContactEditor->SetupContact(ActiveAccount);
- ContactEditor->SetIcon(contacticon);
- ContactEditor->Show(true);
+ wxString UserDir = GetUserDir();
+ long UserDirLength = UserDir.Len();
- SetTopWindow(ContactEditor);
+ if (UserDir == contactfile.GetFullPath().Mid(0, UserDirLength)){
- return true;
+ 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);
+ wxBitmap contacticonbmp(bigimgs_contactpersonicon48i, -1);
+ wxIcon contacticon;
+ contacticon.CopyFromBitmap(contacticonbmp);
+
+ // Get the filename of the selected contact.
+
+ frmContactEditor *ContactEditor = new frmContactEditor( NULL );
+ ContactEditor->SetupHeaders();
+ ContactEditor->SetMode(TRUE);
+ ContactEditor->LoadContact(wxSContactFilename);
+ ContactEditor->SetIcon(contacticon);
+ ContactEditor->Show(true);
+
+ SetTopWindow(ContactEditor);
+
+ return true;
- }*/
+ }
- // Setup default settings and accounts if they don't exist.
+ // Setup default settings and accounts if they don't exist.
- SetupDirectories();
- SetupDefaultSettings();
- SetupDefaultAddressBook();
-
- //wxImage::AddHandler(new wxPNGHandler);
- wxMemoryInputStream istream(bigimgs_appicon48_png, sizeof(bigimgs_appicon_png));
- wxImage bigimgs_appicon48i(istream, wxBITMAP_TYPE_PNG);
- wxBitmap appiconbmp(bigimgs_appicon48i, -1);
- wxIcon appicon;
+ SetupDirectories();
+ SetupDefaultSettings();
+ SetupDefaultAddressBook();
+
+ wxMemoryInputStream istream(bigimgs_appicon48_png, sizeof(bigimgs_appicon_png));
+ wxImage bigimgs_appicon48i(istream, wxBITMAP_TYPE_PNG);
+ wxBitmap appiconbmp(bigimgs_appicon48i, -1);
+ wxIcon appicon;
- appicon.CopyFromBitmap(appiconbmp);
- frmMain *frame = new frmMain( NULL );
+ appicon.CopyFromBitmap(appiconbmp);
+ frmMain *frame = new frmMain( NULL );
frame->Show(true);
- frmActivityMgr *frameActMgr = new frmActivityMgr ( frame );
- frame->SetupPointers(frameActMgr);
- frame->SetupForm();
- frame->SetIcon(appicon);
+ frmActivityMgr *frameActMgr = new frmActivityMgr ( frame );
+ frame->SetupPointers(frameActMgr);
+ frame->SetupForm();
+ frame->SetIcon(appicon);
- SetTopWindow(frame);
+ SetTopWindow(frame);
- return true;
+ return true;
}