// defaults.cpp - Default settings subroutines. // // (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 "defaults.h" using namespace std; void SetupDefaultAddressBook(){ // Setup the default address book if there are none. // Check if the 'Default.local' directory exists. wxString DefaultLocalDir; #if defined(__HAIKU__) #elif defined(__WIN32__) DefaultLocalDir.Clear(); DefaultLocalDir.Append(wxString::FromUTF8(getenv("APPDATA"))); DefaultLocalDir.Append(wxT("\\Xestia\\Address Book\\accounts\\")); DefaultLocalDir.Append(wxT("Default.local")); #elif defined(__APPLE__) DefaultLocalDir.Clear(); DefaultLocalDir.Append(wxString::FromUTF8(getenv("HOME"))); DefaultLocalDir.Append(wxT("/Library/Preferences/Xestia/Address Book/accounts/")); DefaultLocalDir.Append(wxT("Default.local")); #else DefaultLocalDir.Clear(); DefaultLocalDir.Append(wxString::FromUTF8(getenv("HOME"))); DefaultLocalDir.Append(wxT("/.xestiaab/accounts/")); DefaultLocalDir.Append(wxT("Default.local")); #endif if (wxDirExists(DefaultLocalDir) == FALSE){ if (wxMkdir(DefaultLocalDir, 0740) == TRUE){ } } } void SetupDefaultSettings(){ // Setup the default settings if they don't exist. // Setup default (non account) settings if they don't exist. wxString DefaultPrefDir; #if defined(__HAIKU__) #elif defined(__WIN32__) DefaultPrefDir.Clear(); DefaultPrefDir.Append(wxString::FromUTF8(getenv("APPDATA"))); DefaultPrefDir.Append(wxT("\\Xestia\\Address Book\\preferences\\")); #elif defined(__APPLE__) DefaultPrefDir.Clear(); DefaultPrefDir.Append(wxString::FromUTF8(getenv("HOME"))); DefaultPrefDir.Append(wxT("/Library/Preferences/Xestia/Address Book/preferences/")); #else DefaultPrefDir.Clear(); DefaultPrefDir.Append(wxString::FromUTF8(getenv("HOME"))); DefaultPrefDir.Append(wxT("/.xestiaab/preferences/")); #endif // Create the accounts file if it doesn't exist. if (wxFileExists(DefaultPrefDir + wxT("accounts")) == FALSE){ wxString AccountsFilename; wxFFile AccountsFile; AccountsFilename = DefaultPrefDir; AccountsFilename.Append(wxT("accounts")); #if wxABI_VERSION < 20900 AccountsFile.Open(AccountsFilename.c_str(), wxT("w")); #else AccountsFile.Open(AccountsFilename, wxT("w")); #endif AccountsFile.Write(wxT("")); } // Create the preferences file if it doesn't exist. if (wxFileExists(DefaultPrefDir + wxT("settings")) == FALSE){ wxString PrefsFilename; wxFFile PrefsFile; PrefsFilename = DefaultPrefDir; PrefsFilename.Append(wxT("settings")); #if wxABI_VERSION < 20900 PrefsFile.Open(PrefsFilename.c_str(), wxT("w")); #else PrefsFile.Open(PrefsFilename, wxT("w")); #endif PrefsFile.Write(wxT("HideLocalAddressBooks=false\nSaveWindowPosition=true\nUseBackgroundContactColour=false\n")); } // Check if the default account is in the accounts list. // Add it if it isn't. wxString accountsConfigFile = DefaultPrefDir; accountsConfigFile.Append(wxT("accounts")); wxFileConfig *accountConfigData = new wxFileConfig("", "", accountsConfigFile); long itemIndex = 0; wxString accountName; wxString accountType; wxString accountDirectory; bool continueProcessing = false; bool defaultCalendarExists = false; continueProcessing = accountConfigData->GetFirstGroup(accountName, itemIndex); while (continueProcessing){ accountConfigData->SetPath(accountName); accountConfigData->Read(wxT("type"), &accountType); accountConfigData->Read(wxT("accountdir"), &accountDirectory); if (accountType == wxT("Local") && accountDirectory == wxT("Default")){ defaultCalendarExists = true; } continueProcessing = accountConfigData->GetNextGroup(accountName, itemIndex); } if (defaultCalendarExists == false){ // Create the account in the accounts file. accountConfigData->SetPath(wxT("/Default")); accountConfigData->Write(wxT("type"), wxT("Local")); accountConfigData->Write(wxT("accountdir"), wxT("Default")); accountConfigData->Write(wxT("prefix"), wxT("")); accountConfigData->Write(wxT("address"), wxT("")); accountConfigData->Write(wxT("port"), wxT("")); accountConfigData->Write(wxT("ssl"), wxT("false")); accountConfigData->Write(wxT("username"), wxT("")); accountConfigData->Write(wxT("password"), wxT("")); accountConfigData->Write(wxT("prefix"), wxT("")); accountConfigData->Write(wxT("refresh"), wxT("1800")); } delete accountConfigData; accountConfigData = nullptr; } void SetupDirectories(){ // Create the directories if they don't exist. wxString DefaultSettingsDir; #if defined(__HAIKU__) #elif defined(__WIN32__) DefaultSettingsDir.Clear(); DefaultSettingsDir.Append(wxString::FromUTF8(getenv("APPDATA"))); DefaultSettingsDir.Append(wxT("\\Xestia\\")); if (wxDirExists(DefaultSettingsDir) == FALSE){ // Create the directory. if (wxMkdir(DefaultSettingsDir, 0740) == TRUE){ } } // 'Address Book' to the directory. DefaultSettingsDir.Append(wxT("\\Address Book\\")); #elif defined(__APPLE__) DefaultSettingsDir.Clear(); DefaultSettingsDir.Append(wxString::FromUTF8(getenv("HOME"))); DefaultSettingsDir.Append(wxT("/Library/Preferences/Xestia/")); if (wxDirExists(DefaultSettingsDir) == FALSE){ // Create the directory. if (wxMkdir(DefaultSettingsDir, 0740) == TRUE){ } } // Append 'Address Book' to the directory. DefaultSettingsDir.Append(wxT("/Address Book/")); #else DefaultSettingsDir.Clear(); DefaultSettingsDir.Append(wxString::FromUTF8(getenv("HOME"))); DefaultSettingsDir.Append(wxT("/.xestiaab/")); #endif // Check if the directory exists. if (wxDirExists(DefaultSettingsDir) == FALSE){ // Create the directory. if (wxMkdir(DefaultSettingsDir, 0740) == TRUE){ } } if (wxDirExists(DefaultSettingsDir + wxT("accounts")) == FALSE){ if (wxMkdir(DefaultSettingsDir + wxT("accounts"), 0740) == TRUE){ } } if (wxDirExists(DefaultSettingsDir + wxT("preferences")) == FALSE){ if (wxMkdir(DefaultSettingsDir + wxT("preferences"), 0740) == TRUE){ } } }