Home | News | Projects | Releases
Bugs | RFE | Repositories | Help
frmContactEditor: Stop XAB crashing when pressing Modify/Delete
[xestiaab/.git] / source / contacteditor / frmContactEditor-Other.cpp
index a0ab8e3..171b3ae 100644 (file)
+// frmContactEditor-Other.cpp - frmContactEditor Other tab subroutines.
+//
+// (c) 2012-2016 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 <http://www.gnu.org/licenses/>
+
 #include "frmContactEditor.h"
 #include "frmContactEditorVendor.h"
 #include "frmContactEditorXToken.h"
 
 void frmContactEditor::AddVendorNamespace( wxCommandEvent& event )
 {
-    int intResult = 0;
+       
+       // Bring up the window for adding vendor namespace data.
     
-    frmContactEditorVendor *frameCEVen = new frmContactEditorVendor ( this );
-    frameCEVen->SetEditorMode(FALSE);
-    intResult = GetLastInt(&VendorList);
-    frameCEVen->SetupPointers(&VendorList,
-                              &VendorListPEN,
-                              &VendorListElement,
-                              lboVendorNamespace,
-                              (intValueSeek));
-    frameCEVen->ShowModal();
-    delete frameCEVen;
-    frameCEVen = NULL;
+       frmContactEditorVendor *frameCEVen = new frmContactEditorVendor ( this );
+       frameCEVen->SetEditorMode(FALSE);
+       frameCEVen->SetupPointers(&ContactEditorData.VendorList,
+               &ContactEditorData.VendorListPEN,
+                &ContactEditorData.VendorListElement,
+                lboVendorNamespace,
+                (intValueSeek));
+       frameCEVen->ShowModal();
+       delete frameCEVen;
+       frameCEVen = NULL;
+       
 }
 
 void frmContactEditor::ModifyVendorNamespace( wxCommandEvent& event )
 {
-    long longSelected = -1;
-    int intSelectedData = 0;
+       
+       // Bring up the window for modifying vendor namespace data.
+       
+       long longSelected = -1;
+       int intSelectedData = 0;
     
-    if (!GetSelectedItem(lboVendorNamespace,
-                         &longSelected,
-                         &intSelectedData)){
-        return;
-    }
+       if (lboVendorNamespace->GetItemCount() == 0 || !GetSelectedItem(lboVendorNamespace,
+               &longSelected,
+               &intSelectedData)){
+               return;
+       }
     
-    frmContactEditorVendor *frameCEVen = new frmContactEditorVendor ( this );
-    frameCEVen->SetupPointers(&VendorList,
-                              &VendorListPEN,
-                              &VendorListElement,
-                              lboVendorNamespace,
-                              intSelectedData);
-    frameCEVen->SetEditorMode(TRUE);
-    frameCEVen->ShowModal();
-    delete frameCEVen;
-    frameCEVen = NULL;
+       frmContactEditorVendor *frameCEVen = new frmContactEditorVendor ( this );
+       frameCEVen->SetupPointers(&ContactEditorData.VendorList,
+               &ContactEditorData.VendorListPEN,
+               &ContactEditorData.VendorListElement,
+               lboVendorNamespace,
+               intSelectedData);
+       frameCEVen->SetEditorMode(TRUE);
+       frameCEVen->ShowModal();
+       delete frameCEVen;
+       frameCEVen = NULL;
+       
 }
 
 void frmContactEditor::DeleteVendorNamespace( wxCommandEvent& event )
 {
-    long longSelected = -1;
-    int intSelectedData = 0;
-    
-    if (!GetSelectedItem(lboVendorNamespace,
-                         &longSelected,
-                         &intSelectedData)){
-        return;
-    }
+       
+       // Bring up the window for deleting vendor namespace data.
+       
+       long longSelected = -1;
+       int intSelectedData = 0;
     
-    lboVendorNamespace->DeleteItem(longSelected);
+       if (lboVendorNamespace->GetItemCount() == 0 || !GetSelectedItem(lboVendorNamespace,
+               &longSelected,
+                &intSelectedData)){
+               return;
+       }
     
-    DeleteMapData(intSelectedData, &VendorList, &VendorListPEN,
-                  &VendorListElement);
+       lboVendorNamespace->DeleteItem(longSelected);
     
+       DeleteMapData(intSelectedData, &ContactEditorData.VendorList, &ContactEditorData.VendorListPEN,
+               &ContactEditorData.VendorListElement);
+
 }
 
 void frmContactEditor::AddXToken( wxCommandEvent& event )
 {
-    int intResult = 0;
-    
-    frmContactEditorXToken *frameCEXT = new frmContactEditorXToken ( this );
-    frameCEXT->SetEditorMode(FALSE);
-    intResult = GetLastInt(&XTokenList);
-    frameCEXT->SetupPointers(&XTokenList,
-                             &XTokenListTokens,
-                             lboXToken,
-                             (intValueSeek));
-    frameCEXT->ShowModal();
-    delete frameCEXT;
-    frameCEXT = NULL;
+       
+       // Bring up the window for adding extended data.
+           
+       frmContactEditorXToken *frameCEXT = new frmContactEditorXToken ( this );
+       frameCEXT->SetEditorMode(FALSE);
+       frameCEXT->SetupPointers(&ContactEditorData.XTokenList,
+               &ContactEditorData.XTokenListTokens,
+                lboXToken,
+                (intValueSeek));
+       frameCEXT->ShowModal();
+       delete frameCEXT;
+       frameCEXT = NULL;
+       
 }
 
 void frmContactEditor::ModifyXToken( wxCommandEvent& event )
 {
-    long longSelected = -1;
-    int intSelectedData = 0;
+       
+       // Bring up the window for modifying extended data.
+       
+       long longSelected = -1;
+       int intSelectedData = 0;
     
-    if (!GetSelectedItem(lboXToken,
-                         &longSelected,
-                         &intSelectedData)){
-        return;
-    }
+       if (lboXToken->GetItemCount() == 0 || !GetSelectedItem(lboXToken,
+       
+               &longSelected,
+                &intSelectedData)){
+               return;
+               
+       }
     
-    frmContactEditorXToken *frameCEXT = new frmContactEditorXToken ( this );
-    frameCEXT->SetupPointers(&XTokenList,
-                             &XTokenListTokens,
-                             lboXToken,
-                             intSelectedData);
-    frameCEXT->SetEditorMode(TRUE);
-    frameCEXT->ShowModal();
-    delete frameCEXT;
-    frameCEXT = NULL;
+       frmContactEditorXToken *frameCEXT = new frmContactEditorXToken ( this );
+       frameCEXT->SetupPointers(&ContactEditorData.XTokenList,
+               &ContactEditorData.XTokenListTokens,
+                lboXToken,
+                intSelectedData);
+       frameCEXT->SetEditorMode(TRUE);
+       frameCEXT->ShowModal();
+       delete frameCEXT;
+       frameCEXT = NULL;
+       
 }
 
 void frmContactEditor::DeleteXToken( wxCommandEvent& event )
 {
-    long longSelected = -1;
-    int intSelectedData = 0;
+       
+       // Bring up the window for deleting extended data.
+       
+       long longSelected = -1;
+       int intSelectedData = 0;
     
-    if (!GetSelectedItem(lboXToken,
-                         &longSelected,
-                         &intSelectedData)){
-        return;
-    }
+       if (lboXToken->GetItemCount() == 0 || !GetSelectedItem(lboXToken,
+               &longSelected,
+                &intSelectedData)){
+               return;
+       }
     
-    lboXToken->DeleteItem(longSelected);
+       lboXToken->DeleteItem(longSelected);
     
-    DeleteMapData(intSelectedData, &XTokenList, &XTokenListTokens);
+       DeleteMapData(intSelectedData, &ContactEditorData.XTokenList, &ContactEditorData.XTokenListTokens);
     
 }
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