From 6ec0ce32dde9e2fa973f72dc131003018c2ec5cd Mon Sep 17 00:00:00 2001 From: Steve Brokenshire Date: Sun, 8 Nov 2015 10:50:17 +0000 Subject: [PATCH] Added support to directly edit a contact using the -e command switch. --- source/contacteditor/frmContactEditor.cpp | 8 +++++- source/main.cpp | 30 ++++++++++++++++------- 2 files changed, 28 insertions(+), 10 deletions(-) diff --git a/source/contacteditor/frmContactEditor.cpp b/source/contacteditor/frmContactEditor.cpp index ca769cb..48ea549 100644 --- a/source/contacteditor/frmContactEditor.cpp +++ b/source/contacteditor/frmContactEditor.cpp @@ -611,7 +611,7 @@ void frmContactEditor::UpdateMembersTab( wxCommandEvent &event ){ if (cmbType->GetCurrentSelection() == 2){ - tabMembers->Show(); + tabMembers->Show(); } else { @@ -625,4 +625,10 @@ void frmContactEditor::SetUID(int UID){ ContactEditorUID = UID; +} + +void frmContactEditor::SetMode(bool StartupEditModeIn){ + + StartupEditMode = StartupEditModeIn; + } \ No newline at end of file diff --git a/source/main.cpp b/source/main.cpp index c900927..1c4ccb1 100644 --- a/source/main.cpp +++ b/source/main.cpp @@ -16,6 +16,7 @@ #include "frmSearch.h" #include "common/timers.h" #include "common/defaults.h" +#include "common/dirs.h" class XestiaABApp: public wxApp { @@ -49,8 +50,8 @@ 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_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"), @@ -88,21 +89,31 @@ bool XestiaABApp::OnInit() } - /*if (XABArgs.Found(wxT("e"), &wxSContactFilename)){ - Xestia Gelforn Project Repositories - xestiaab/.git/tree - source/vcard/ + 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); @@ -113,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); @@ -123,7 +135,7 @@ bool XestiaABApp::OnInit() return true; - }*/ + } // Setup default settings and accounts if they don't exist. -- 2.39.2