#include <wx/msgdlg.h>
#include <wx/fileconf.h>
-
frmPreferences::frmPreferences( wxWindow* parent )
:
frmPreferencesADT( parent )
wxMemoryInputStream astream(icons_accinet_png, sizeof(icons_accinet_png));
wxMemoryInputStream bstream(icons_acclocal_png, sizeof(icons_acclocal_png));
+ wxMemoryInputStream cstream(icons_accunsupported_png, sizeof(icons_accunsupported_png));
+ wxMemoryInputStream windowposstream(icons_windowpos_png, sizeof(icons_windowpos_png));
+ wxMemoryInputStream hideaddressbooksstream(icons_hideaddressbooks_png, sizeof(icons_hideaddressbooks_png));
+
+ wxImage icons_windowpos_png(windowposstream, wxBITMAP_TYPE_PNG);
+ wxBitmap WindowPosition(icons_windowpos_png, -1);
+
+ wxImage icons_hideaddressbooks_png(hideaddressbooksstream, wxBITMAP_TYPE_PNG);
+ wxBitmap HideAddressBooks(icons_hideaddressbooks_png, -1);
+
+ bmpWindowPosition->SetBitmap(WindowPosition);
+ bmpLocalAddressBooks->SetBitmap(HideAddressBooks);
wxImage icons_accinet_png(astream, wxBITMAP_TYPE_PNG);
wxBitmap AccInet(icons_accinet_png, -1);
wxBitmap AccNIcon(icons_acclocal_png, -1);
wxIcon wxIAccNIcon;
wxIAccNIcon.CopyFromBitmap(AccNIcon);
+
+ wxImage icons_accunsupported_png(cstream, wxBITMAP_TYPE_PNG);
+ wxBitmap AccUIcon(icons_accunsupported_png, -1);
+ wxIcon wxIAccUIcon;
+ wxIAccUIcon.CopyFromBitmap(AccUIcon);
AccountID = AccImgList->Add(wxIAccNIcon);
AccountNetID = AccImgList->Add(wxIAccInet);
+ AccountUnsupportedID = AccImgList->Add(wxIAccUIcon);
NbtPreferences->RemovePage(1);
long lstAccountsIndex = -1;
wxString AccFilename = GetAccountsFile();
wxString AccName;
+ wxString AccType;
- wxFileConfig *cfgfile = new wxFileConfig("", "", AccFilename);
-
- // Get the account name.
-
+ // Check if an account has been selected before continuing.
+
lstAccountsIndex = lstAccounts->GetNextItem(lstAccountsIndex,
wxLIST_NEXT_ALL,
wxLIST_STATE_SELECTED);
+
+ if (lstAccountsIndex == -1){
+
+ // No account has been selected so exit this subroutine.
+
+ return;
+
+ }
+
+ wxFileConfig *cfgfile = new wxFileConfig("", "", AccFilename);
+
+ // Check that the account type is a supported account type.
+
+ AccType = preferences->accounts.GetAccountType((int)lstAccountsIndex);
+
+ if (AccType != "CardDAV" && AccType != "carddav" &&
+ AccType != "Local" && AccType != "local"){
+
+ wxMessageBox(_("Cannot modify the selected account settings as the account type is unsupported."), _("Unsupported account type"), wxICON_ERROR);
+ return;
+
+ }
+
+ // Get the account name.
AccName = preferences->accounts.GetAccountName((int)lstAccountsIndex);
}
+void frmPreferences::ModifyABAccount( wxMouseEvent& event )
+{
+
+ wxCommandEvent NullEvent;
+ ModifyABAccount(NullEvent);
+
+}
+
void frmPreferences::DeleteABAccount( wxCommandEvent& event )
{
// Display a confirmation dialog to confirm deletion.
AccountDirFull.Append(wxT("carddav"));
+ } else {
+
+ AccountDirFull.Append(AccountType.Lower());
+
}
lstAccounts->DeleteItem(lstAccountsIndex);
}
+ btnAccountModify->Enable(FALSE);
+ btnAccountDelete->Enable(FALSE);
+
}
void frmPreferences::LoadPreferences( wxInitDialogEvent& event )
bool SaveWindowPos = preferences->GetBoolData(wxT("SaveWindowPosition"));
bool HideLocalABs = preferences->GetBoolData(wxT("HideLocalAddressBooks"));
+ bool UseBackgroundContactColour = preferences->GetBoolData(wxT("UseBackgroundContactColour"));
- if (SaveWindowPos == TRUE){
+ if (SaveWindowPos == true){
- chkSaveWindowPosition->SetValue(TRUE);
+ chkSaveWindowPosition->SetValue(true);
}
- if (HideLocalABs == TRUE){
+ if (HideLocalABs == true){
- chkHideLocal->SetValue(TRUE);
+ chkHideLocal->SetValue(true);
}
+ if (UseBackgroundContactColour == true){
+
+ chkUseBackgroundColour->SetValue(true);
+ clpContactBackgroundColour->SetColour(preferences->GetBackgroundContactColourData());
+
+ } else {
+
+ clpContactBackgroundColour->Enable(false);
+
+ }
+
// Setup the Themes tab.
wxListItem themecol0;
col0.SetImage(AccountID);
+ } else {
+
+ col0.SetImage(AccountUnsupportedID);
+
}
long itemindex = lstAccounts->InsertItem( col0 );
*ReloadAccountConfig = TRUE;
}
+
+ if (chkUseBackgroundColour->GetValue() == TRUE){
+
+ cfgfile->Write(wxT("UseBackgroundContactColour"), wxT("true"));
+ cfgfile->Write(wxT("BackgroundContactColour"), clpContactBackgroundColour->GetColour().GetAsString(wxC2S_HTML_SYNTAX));
+ *ReloadAccountConfig = TRUE;
+
+ } else {
+
+ cfgfile->Write(wxT("UseBackgroundContactColour"), wxT("false"));
+ *ReloadAccountConfig = TRUE;
+
+ }
delete cfgfile;
cfgfile = NULL;
}
+void frmPreferences::EnableBackgroundColourPicker(wxCommandEvent &event){
+
+ if (chkUseBackgroundColour->GetValue() == true){
+ clpContactBackgroundColour->Enable(true);
+ } else {
+ clpContactBackgroundColour->Enable(false);
+ }
+
+}
+
void frmPreferences::CloseWindow(wxCommandEvent &event){
// Close the preferences window.