+// 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 <http://www.gnu.org/licenses/>
+
#include <iostream>
#include <algorithm>
#include <vector>
#include <wx/dir.h>
#include <wx/stdpaths.h>
#include <wx/fileconf.h>
+#include <wx/gdicmn.h>
//#include <boost/filesystem/fstream.hpp>
// Include the forms.
#include "contacteditor/frmContactEditor.h"
#include "import/import.h"
#include "export/export.h"
+#include "widgets/XABContactMenu.h"
#include "widgets/XABAccountView.h"
#include "version.h"
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);
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)
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)
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 )
}
+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.
+ //
+ // wxCommandEvent Accepts a referenced event command.
//-------------------------------------------------------------------
//Go through the windows and close each one (be it search
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();
}
}
-void frmMain::OpenContactInfo( wxListEvent& event )
+void frmMain::OpenContactInfoList( wxListEvent& event )
{
wxStringTokenizer vcardfileline;
}
+void frmMain::OpenContactInfoList( wxCommandEvent& event ){
+
+ wxListEvent pevent;
+ OpenContactInfoList(pevent);
+
+}
+
void frmMain::OpenContactInfo( wxCommandEvent& event )
{
void frmMain::SyncAccount( wxCommandEvent& event ){
- wxString *AccNameInc = (wxString*)event.GetClientData();
+ wxString AccNameInc = event.GetString();
frmActivityMgr *frameActMgr = static_cast<frmActivityMgr*>(ActMgrPtr);
- frameActMgr->AddTask(3, wxT(""), *AccNameInc,
+ frameActMgr->AddTask(3, wxT(""), AccNameInc,
wxT(""), wxT(""), wxT(""), wxT(""));
}
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