From: Steve Brokenshire Date: Sat, 31 Dec 2016 22:36:39 +0000 (+0000) Subject: frmEditAccount: Implemented code from Xestia Address Book X-Git-Tag: release-0.02~41 X-Git-Url: http://Server1/repobrowser/?p=xestiacalendar%2F.git;a=commitdiff_plain;h=78c8d9942025ec5c469e25b8543f77f1d2c62252 frmEditAccount: Implemented code from Xestia Address Book --- diff --git a/source/forms/editaccount/frmEditAccount.cpp b/source/forms/editaccount/frmEditAccount.cpp index 7afab25..f4e6301 100644 --- a/source/forms/editaccount/frmEditAccount.cpp +++ b/source/forms/editaccount/frmEditAccount.cpp @@ -4,20 +4,173 @@ frmEditAccount::frmEditAccount( wxWindow* parent ) : frmEditAccountADT( parent ) { - + btnDetect->Enable(false); } void frmEditAccount::DetectAddressBook( wxCommandEvent& event ) { -// TODO: Implement DetectAddressBook + + // TODO: Currently unimplemented. + } void frmEditAccount::UpdateSettings( wxCommandEvent& event ) { -// TODO: Implement UpdateSettings + + // Check if server address matches against the blacklist. + // Bring up warning message if it does. + + if (CheckBlacklist(txtAddress->GetValue())){ + + int MessageBoxResult = wxMessageBox(_("The server with the address given does not support the CardDAV protocol properly and shouldn't be used.\n\nData loss is very likely.\n\nDo you still want to continue using this server?"), _("Server warning"), wxYES_NO, this); + + if (MessageBoxResult == wxNO){ + return; + } + + } + + // Update the settings for the account. + + long itemindex = 0; + bool ContinueAcc = TRUE; + wxString AccountName; + + // Look for the account + + while (ContinueAcc){ + + if (AccountName == AccName){ + + // Update the settings for the account. + + cfgfile->RenameGroup(AccountName, txtAccountName->GetValue()); + + cfgfile->SetPath(txtAccountName->GetValue()); + //txtAccountName->SetValue(AccountName); + + cfgfile->DeleteEntry(wxT("address"), FALSE); + cfgfile->Write(wxT("address"), txtAddress->GetValue()); + + cfgfile->DeleteEntry(wxT("port"), FALSE); + cfgfile->Write(wxT("port"), txtPort->GetValue()); + + cfgfile->DeleteEntry(wxT("username"), FALSE); + cfgfile->Write(wxT("username"), txtUsername->GetValue()); + + cfgfile->DeleteEntry(wxT("password"), FALSE); + cfgfile->Write(wxT("password"), txtPassword->GetValue()); + + cfgfile->DeleteEntry(wxT("prefix"), FALSE); + cfgfile->Write(wxT("prefix"), txtPrefix->GetValue()); + + cfgfile->DeleteEntry(wxT("ssl"), FALSE); + + if (chkSSL->GetValue() == TRUE){ + + cfgfile->Write(wxT("ssl"), wxT("true")); + + } else { + + cfgfile->Write(wxT("ssl"), wxT("false")); + + } + + cfgfile->DeleteEntry(wxT("refresh"), FALSE); + cfgfile->Write(wxT("refresh"), txtRefresh->GetValue()); + + break; + + } + + cfgfile->SetPath(wxT("/")); + ContinueAcc = cfgfile->GetNextGroup(AccountName, itemindex); + + } + + // Set the dialog result to true and close the window. + + DialogResult = true; + this->Close(); + +} + +void frmEditAccount::LoadSettings( wxString AccNameIn ){ + + // Get the data from the accounts settings file and + // fill in the account fields. + + AccName = AccNameIn; + long itemindex = 0; + bool ContinueAcc = TRUE; + wxString AccountName; + wxString AccountData; + + ContinueAcc = cfgfile->GetFirstGroup(AccountName, itemindex); + + while (ContinueAcc){ + + if (AccountName == AccName){ + + cfgfile->SetPath(AccountName); + txtAccountName->SetValue(AccountName); + + cfgfile->Read("address", &AccountData); + txtAddress->SetValue(AccountData); + + cfgfile->Read("port", &AccountData); + txtPort->SetValue(AccountData); + + cfgfile->Read("username", &AccountData); + txtUsername->SetValue(AccountData); + + cfgfile->Read("password", &AccountData); + txtPassword->SetValue(AccountData); + + cfgfile->Read("prefix", &AccountData); + txtPrefix->SetValue(AccountData); + + cfgfile->Read("ssl", &AccountData); + if (AccountData == wxT("true")){ + + chkSSL->SetValue(TRUE); + + } + + cfgfile->Read("refresh", &AccountData); + txtRefresh->SetValue(AccountData); + + break; + + } + + cfgfile->SetPath(wxT("/")); + ContinueAcc = cfgfile->GetNextGroup(AccountName, itemindex); + + } + } void frmEditAccount::CloseWindow( wxCommandEvent& event ) { -// TODO: Implement CloseWindow + + DialogResult = false; + this->Close(); + +} + +bool frmEditAccount::GetDialogResult(){ + + // Get the result of the dialog. + + return DialogResult; + } + +void frmEditAccount::LoadPointers( wxFileConfig* cfgin ){ + + // Setup the account configuration file pointer. + + cfgfile = cfgin; + +} \ No newline at end of file diff --git a/source/forms/editaccount/frmEditAccount.h b/source/forms/editaccount/frmEditAccount.h index d19cbc6..3e69d82 100644 --- a/source/forms/editaccount/frmEditAccount.h +++ b/source/forms/editaccount/frmEditAccount.h @@ -6,13 +6,22 @@ Subclass of frmEditAccountADT, which is generated by wxFormBuilder. */ +#include +#include + #include "../AppXestiaCalendar.h" +#include "svrblist.h" + //// end generated include /** Implementing frmEditAccountADT */ class frmEditAccount : public frmEditAccountADT { + private: + wxFileConfig *cfgfile; + wxString AccName; + bool DialogResult = false; protected: // Handlers for frmEditAccountADT events. void DetectAddressBook( wxCommandEvent& event ); @@ -21,6 +30,9 @@ class frmEditAccount : public frmEditAccountADT public: /** Constructor */ frmEditAccount( wxWindow* parent ); + void LoadPointers( wxFileConfig* cfgin ); + void LoadSettings( wxString AccNameIn ); + bool GetDialogResult(); //// end generated class members };