X-Git-Url: http://Server1/repobrowser/?a=blobdiff_plain;f=source%2FfrmMain.cpp;h=14fc084b933928158deb0ff3928b7c6693f8a2bf;hb=a73019906500e3a0fc306a61e4b7975f79725866;hp=b9ae29121950074c70ea2b072dcaa36694127fe2;hpb=969329975a0af9d346c76dc34e9ff9cd54cc61ee;p=xestiaab%2F.git
diff --git a/source/frmMain.cpp b/source/frmMain.cpp
index b9ae291..14fc084 100644
--- a/source/frmMain.cpp
+++ b/source/frmMain.cpp
@@ -1,3 +1,21 @@
+// frmMain.cpp - Main window form.
+//
+// (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
#include
@@ -13,6 +31,7 @@
#include
#include
#include
+#include
//#include
// Include the forms.
@@ -28,6 +47,7 @@
#include "frmSearch.h"
#include "frmSSLCertificate.h"
#include "frmUpdate.h"
+#include "import/frmImportResults.h"
#include "bitmaps.h"
#include "common/preferences.h"
@@ -39,6 +59,7 @@
#include "contacteditor/frmContactEditor.h"
#include "import/import.h"
#include "export/export.h"
+#include "widgets/XABContactMenu.h"
#include "widgets/XABAccountView.h"
#include "version.h"
@@ -52,7 +73,10 @@ DEFINE_EVENT_TYPE(CE_UPDATECONTACTLIST);
DEFINE_EVENT_TYPE(CE_UPDATEACCOUNTLIST);
DEFINE_EVENT_TYPE(SE_UPDATECONTACTNOTIF);
DEFINE_EVENT_TYPE(CE_OPENCONTACT);
+DEFINE_EVENT_TYPE(CE_OPENCONTACTLIST);
+DEFINE_EVENT_TYPE(CE_NEWCONTACT);
DEFINE_EVENT_TYPE(CE_EDITCONTACT);
+DEFINE_EVENT_TYPE(CE_DELETECONTACT);
DEFINE_EVENT_TYPE(CE_REVEALCONTACT);
DEFINE_EVENT_TYPE(CE_REMOVECONTACT);
DEFINE_EVENT_TYPE(CE_REMOVESEARCH);
@@ -62,12 +86,14 @@ DEFINE_EVENT_TYPE(ACTMGR_SHUFFLE);
DEFINE_EVENT_TYPE(ACTMGR_STOP);
DEFINE_EVENT_TYPE(WINDOW_ADD);
DEFINE_EVENT_TYPE(WINDOW_EDIT);
-//DEFINE_EVENT_TYPE(WINDOW_DELETE);
DEFINE_EVENT_TYPE(WINDOW_CLOSE);
DEFINE_EVENT_TYPE(CONNSTAT_UPDATE);
DEFINE_EVENT_TYPE(INVALIDSSLCERT);
DEFINE_EVENT_TYPE(GETSELECTEDLIST);
DEFINE_EVENT_TYPE(SYNCACCOUNT);
+DEFINE_EVENT_TYPE(IMPORT_RESULTSSHOW);
+DEFINE_EVENT_TYPE(RELOADCONTACTLIST);
+DEFINE_EVENT_TYPE(REFRESHADDRESSBOOK);
BEGIN_EVENT_TABLE(frmMain, wxFrame)
EVT_COMMAND(wxID_ANY, wxEVT_COMMAND_BUTTON_CLICKED, frmMain::ConflictResolution)
@@ -75,7 +101,10 @@ EVT_COMMAND(wxID_ANY, CE_UPDATECONTACTLIST, frmMain::UpdateContactList)
EVT_COMMAND(wxID_ANY, CE_UPDATEACCOUNTLIST, frmMain::UpdateAccountList)
EVT_COMMAND(wxID_ANY, SE_UPDATECONTACTNOTIF, frmMain::UpdateSearchContactLists)
EVT_COMMAND(wxID_ANY, CE_OPENCONTACT, frmMain::OpenContactInfo)
+EVT_COMMAND(wxID_ANY, CE_OPENCONTACTLIST, frmMain::OpenContactInfoList)
+EVT_COMMAND(wxID_ANY, CE_NEWCONTACT, frmMain::ShowContactEditorNew)
EVT_COMMAND(wxID_ANY, CE_EDITCONTACT, frmMain::ShowContactEditorEdit)
+EVT_COMMAND(wxID_ANY, CE_DELETECONTACT, frmMain::DeleteContact)
EVT_COMMAND(wxID_ANY, CE_REVEALCONTACT, frmMain::RevealContact)
EVT_COMMAND(wxID_ANY, CE_REMOVESEARCH, frmMain::RemoveContactsWindowPointer)
EVT_COMMAND(wxID_ANY, SYNC_EMPTYSERVER, frmMain::EmptyServerDialog)
@@ -89,6 +118,9 @@ EVT_COMMAND(wxID_ANY, CONNSTAT_UPDATE, frmMain::UpdateConnectionStatus)
EVT_COMMAND(wxID_ANY, INVALIDSSLCERT, frmMain::InvalidSSLCertificate)
EVT_COMMAND(wxID_ANY, GETSELECTEDLIST, frmMain::GetSelectedList)
EVT_COMMAND(wxID_ANY, SYNCACCOUNT, frmMain::SyncAccount)
+EVT_COMMAND(wxID_ANY, IMPORT_RESULTSSHOW, frmMain::ShowImportResults)
+EVT_COMMAND(wxID_ANY, RELOADCONTACTLIST, frmMain::ReloadContactList)
+EVT_COMMAND(wxID_ANY, REFRESHADDRESSBOOK, frmMain::RefreshAddressBook)
END_EVENT_TABLE()
frmMain::frmMain( wxWindow* parent )
@@ -196,7 +228,6 @@ frmMainADT( parent )
AccCtrl->SetPopupMinWidth(250);
treAccounts->AssignImageList(AccImgList);
//bmpIcon->Hide();
- wxRect AccTextCtrlSize = AccCtrl->GetTextRect();
/*wxStaticBitmap* BeepBoop = new wxStaticBitmap(AccCtrl, wxID_ANY, wxNullBitmap, wxPoint(AccTextCtrlSize.GetX() + 3, AccTextCtrlSize.GetY() + 2), wxDefaultSize, 0);
@@ -323,9 +354,30 @@ frmMainADT( parent )
}
+void frmMain::QuitApp( wxCloseEvent& event )
+{
+
+ QuitApp();
+
+}
+
void frmMain::QuitApp( wxCommandEvent& event )
{
+
+ QuitApp();
+
+}
+
+void frmMain::QuitApp()
+{
+ //-------------------------------------------------------------------
+ // frmMain::QuitApp: Quits the application by simply closing this
+ // window which causes the exit as frmMain is the main window.
+ //
+ // wxCommandEvent Accepts a referenced event command.
//-------------------------------------------------------------------
+
+ //-------------------------------------------------------------------
// frmMain::QuitApp: Quits the application by simply closing this
// window which causes the exit as frmMain is the main window.
//
@@ -394,18 +446,7 @@ void frmMain::QuitApp( wxCommandEvent& event )
std::exit(0);
-}
-
-void frmMain::QuitApp()
-{
- //-------------------------------------------------------------------
- // frmMain::QuitApp: Quits the application by simply closing this
- // window which causes the exit as frmMain is the main window.
- //
- // wxCommandEvent Accepts a referenced event command.
- //-------------------------------------------------------------------
-
- Close(this);
+ Close();
}
@@ -523,7 +564,6 @@ void frmMain::LoadContactList( wxTreeEvent& event )
if (ActiveItemIcon == 2){
std::multimap::iterator AGTiter = AccountGroupTreeId.find(ActiveItemId);
- std::multimap::iterator AGFiter = AccountGroupFilename.find(AGTiter->second);
std::multimap::iterator AGLiter = AccountGroupList.find(AGTiter->second);
int ActiveAccountG = AGLiter->second;
@@ -759,7 +799,6 @@ void frmMain::LoadContactList( wxTreeEvent& event )
vCard Person;
vCardFilenameFull.Append(AccountDirFinal);
- vCardFilenameFull.Append(wxT("/"));
vCardFilenameFull.Append(vCardFilename);
Person.LoadFile(vCardFilenameFull);
@@ -869,7 +908,6 @@ void frmMain::ShowContactInfo( wxListEvent& event )
{
long intSelected = -1;
- int intSelectedData = 0;
long ContactSeekNum = -1;
// intSelected = lstContacts->GetSelection();
@@ -918,9 +956,9 @@ void frmMain::ShowContactInfo( wxListEvent& event )
wxString ContactLine;
vCard Person;
- int ContactLineLen;
+ size_t ContactLineLen;
bool ExtraLineSeek = FALSE;
- int QuoteBreakPoint;
+ int QuoteBreakPoint = 0;
bool PropertyFind = FALSE;
bool QuoteMode = FALSE;
@@ -1142,7 +1180,6 @@ void frmMain::ShowContactEditorEdit( wxCommandEvent& event )
// Check if a contact has been selected.
long intSelected = -1;
- int intSelectedData = 0;
long intContactSeekNum = -1;
// intSelected = lstContacts->GetSelection();
@@ -1214,20 +1251,31 @@ void frmMain::ShowContactEditorEdit( wxCommandEvent& event )
}
void frmMain::RefreshAddressBook( wxCommandEvent& event ){
-
- // TODO: Check Account Type.
+
+ // Check if ActiveAccount is empty. If not then check if
+ // account type is not local otherwise continue.
if (!ActiveAccount.IsEmpty()){
-
- frmActivityMgr *frameActMgr = static_cast(ActMgrPtr);
- frameActMgr->AddTask(3, wxT(""), ActiveAccount,
- wxT(""), wxT(""), wxT(""), wxT(""));
-
+
+ if (ActiveAccountType != wxT("Local")){
+
+ // Account type is not local.
+
+ frmActivityMgr *frameActMgr = static_cast(ActMgrPtr);
+ frameActMgr->AddTask(3, wxT(""), ActiveAccount,
+ wxT(""), wxT(""), wxT(""), wxT(""));
+
+ } else {
+
+ wxMessageBox(_("The refresh address book command is not supported with this type of account."), wxT("Not supported for this type of account"));
+
+ }
+
}
}
-void frmMain::OpenContactInfo( wxListEvent& event )
+void frmMain::OpenContactInfoList( wxListEvent& event )
{
wxStringTokenizer vcardfileline;
@@ -1238,7 +1286,6 @@ void frmMain::OpenContactInfo( wxListEvent& event )
wxString nextchar;
long intSelected = -1;
- int intSelectedData = 0;
long intContactSeekNum = -1;
intSelected = lstContacts->GetNextItem(intSelected,
@@ -1285,6 +1332,13 @@ void frmMain::OpenContactInfo( wxListEvent& event )
}
+void frmMain::OpenContactInfoList( wxCommandEvent& event ){
+
+ wxListEvent pevent;
+ OpenContactInfoList(pevent);
+
+}
+
void frmMain::OpenContactInfo( wxCommandEvent& event )
{
@@ -1298,10 +1352,6 @@ void frmMain::OpenContactInfo( wxCommandEvent& event )
wxString nextchar;
//std::fstream vcardfile;
- long intSelected = -1;
- int intSelectedData = 0;
- long intContactSeekNum = -1;
-
Person.LoadFile(uc->ContactFilename);
wxMemoryInputStream istream(bigimgs_contactpersonicon48_png, sizeof(bigimgs_contactpersonicon48_png));
@@ -1439,7 +1489,7 @@ void frmMain::LoadPreferences(){
ActTmrPtr->SetupData(AccDirFull, AccName);
ActTmrPtr->SetupPointers(this, ActMgrPtr, ETagProcTimer.GetPointer(AccDirFull));
- ActTmrPtr->Start(preferences.accounts.GetAccountRefresh(i) * 1000);
+ ActTmrPtr->Start((int)(preferences.accounts.GetAccountRefresh(i) * 1000));
ActTmrPtr->SetOwner(this);
ActTmrPtr->Notify();
@@ -1585,7 +1635,7 @@ void frmMain::UpdateContactList(wxCommandEvent& event){
}
- intSelectedData = lstContacts->GetItemData(longSelected);
+ intSelectedData = (int)lstContacts->GetItemData(longSelected);
if (ucd->ContactFilename == ContactsFileIndex[intSelectedData]){
@@ -1873,21 +1923,23 @@ void frmMain::RevealContact(wxCommandEvent& event){
}
- intSelectedData = lstContacts->GetItemData(longSelected);
+ intSelectedData = (int)lstContacts->GetItemData(longSelected);
// Compare the filename with the one received.
// If they match then select it.
if (ContactsFileIndex[intSelectedData] == uc->ContactFilename){
-
+
// Select.
lstContacts->SetItemState(longSelected, wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED);
lstContacts->EnsureVisible(longSelected);
- break;
-
- }
+ } else {
+
+ lstContacts->SetItemState(longSelected, 0, wxLIST_STATE_SELECTED);
+
+ }
}
@@ -1898,7 +1950,6 @@ void frmMain::DeleteContact(wxCommandEvent& event){
// Check if a contact is selected.
long intSelected = -1;
- int intSelectedData = 0;
long intContactSeekNum = -1;
wxString wxSContactName;
@@ -2050,6 +2101,12 @@ void frmMain::EmptyServerDialog(wxCommandEvent& event){
int QResponse = wxMessageBox(_("The list of contacts on the server is empty. Upload all locally stored contacts for this account now?"), _("No contacts on server"), wxYES_NO, this);
+ if (QResponse == wxNO){
+
+ return;
+
+ }
+
wxCommandEvent event2(ACTMGR_RESUMEPROC);
event2.SetInt(*qrn->QResponse);
event2.SetClientData(qrn->PausePtr);
@@ -2087,7 +2144,7 @@ void frmMain::DeleteContactSync(wxString &Account, wxString &Filename){
}
- intSelectedData = lstContacts->GetItemData(longSelected);
+ intSelectedData = (int)lstContacts->GetItemData(longSelected);
// Compare the filename with the one received.
// If they match then select it.
@@ -2322,10 +2379,6 @@ void frmMain::WindowEdit( wxCommandEvent &event ){
if (WData->DataType == 0){
- // Contact Window
-
- int intID = mnuContactWindows->GetId();
-
// Get the window title and use that.
frmContact *frmContactPtr = static_cast(WData->WindowPointer);
@@ -2346,10 +2399,6 @@ void frmMain::WindowEdit( wxCommandEvent &event ){
} else if (WData->DataType == 1){
- // Contact Editor Window
-
- int intID = mnuContactEditorWindows->GetId();
-
// Get the window title and use that.
frmContactEditor *frmCEPtr = static_cast(WData->WindowPointer);
@@ -2687,7 +2736,7 @@ void frmMain::OpenExportDialog( wxCommandEvent& event ){
}
- int FileID = lstContacts->GetItemData(longSelected);
+ int FileID = (int)lstContacts->GetItemData(longSelected);
ArrData.Insert(ContactsFileIndex[FileID],
ContactsCollected, 1);
@@ -2742,7 +2791,7 @@ void frmMain::GetSelectedList( wxCommandEvent& event ){
// Get the file information and add to the list.
- int FileID = lstContacts->GetItemData(longSelected);
+ int FileID = (int)lstContacts->GetItemData(longSelected);
ArrData->Insert(ContactsFileIndex[FileID],
ContactsCollected, 1);
@@ -2758,10 +2807,10 @@ void frmMain::GetSelectedList( wxCommandEvent& event ){
void frmMain::SyncAccount( wxCommandEvent& event ){
- wxString *AccNameInc = (wxString*)event.GetClientData();
+ wxString AccNameInc = event.GetString();
frmActivityMgr *frameActMgr = static_cast(ActMgrPtr);
- frameActMgr->AddTask(3, wxT(""), *AccNameInc,
+ frameActMgr->AddTask(3, wxT(""), AccNameInc,
wxT(""), wxT(""), wxT(""), wxT(""));
}
@@ -2809,4 +2858,50 @@ void frmMain::ShowHelp( wxCommandEvent& event ){
#endif
+}
+
+void frmMain::ShowImportResults( wxCommandEvent &event ){
+
+ std::map *ResultData = (std::map*)event.GetClientData();
+
+ frmImportResults *frmIR = new frmImportResults(this);
+ frmIR->LoadData(ResultData, event.GetInt(), (int)event.GetExtraLong());
+ frmIR->ShowModal();
+
+ delete frmIR;
+ frmIR = NULL;
+
+ delete ResultData;
+ ResultData = NULL;
+
+}
+
+void frmMain::ReloadContactList( wxCommandEvent &event ){
+
+ // Check if the account name given is the current
+ // account selected.
+
+ if (ActiveAccount == event.GetString()){
+
+ wxTreeEvent NullEvent;
+ LoadContactList(NullEvent);
+
+ }
+
+}
+
+void frmMain::ShowContactMenu( wxMouseEvent& event ){
+
+ bool EnableRefresh = FALSE;
+
+ if (!ActiveAccount.IsEmpty()){
+
+ EnableRefresh = TRUE;
+
+ }
+
+ ContactMenu->SetupPointers(this, lstContacts, EnableRefresh);
+
+ this->PopupMenu(ContactMenu->MenuPointer(), wxDefaultPosition);
+
}
\ No newline at end of file