X-Git-Url: http://Server1/repobrowser/?a=blobdiff_plain;f=source%2Fcommon%2Fdefaults.cpp;h=faac59911c0d00c786e40a6393816945594685b8;hb=22339c898f8c04af609419f036828323b26f480f;hp=998a601976db067bde4cc565db2fa38ae80decf4;hpb=cba151c4b833a26c63984769f921bab5e755decd;p=xestiacalendar%2F.git diff --git a/source/common/defaults.cpp b/source/common/defaults.cpp index 998a601..faac599 100644 --- a/source/common/defaults.cpp +++ b/source/common/defaults.cpp @@ -16,8 +16,7 @@ // You should have received a copy of the GNU General Public License along // with Xestia Calendar. If not, see -#include -#include +#include "defaults.h" void SetupDefaultCalendar(){ @@ -25,36 +24,36 @@ void SetupDefaultCalendar(){ // Check if the 'Default.local' directory exists. - wxString DefaultLocalDir; + wxString defaultLocalDir; #if defined(__HAIKU__) #elif defined(__WIN32__) - DefaultLocalDir.Clear(); - DefaultLocalDir.Append(wxString::FromUTF8(getenv("APPDATA"))); - DefaultLocalDir.Append(wxT("\\Xestia\\Calendar\\accounts\\")); - DefaultLocalDir.Append(wxT("Default.local")); + defaultLocalDir.Clear(); + defaultLocalDir.Append(wxString::FromUTF8(getenv("APPDATA"))); + defaultLocalDir.Append(wxT("\\Xestia\\Calendar\\accounts\\")); + defaultLocalDir.Append(wxT("Default.local")); #elif defined(__APPLE__) - DefaultLocalDir.Clear(); - DefaultLocalDir.Append(wxString::FromUTF8(getenv("HOME"))); - DefaultLocalDir.Append(wxT("/Library/Preferences/Xestia/Calendar/accounts/")); - DefaultLocalDir.Append(wxT("Default.local")); + defaultLocalDir.Clear(); + defaultLocalDir.Append(wxString::FromUTF8(getenv("HOME"))); + defaultLocalDir.Append(wxT("/Library/Preferences/Xestia/Calendar/accounts/")); + defaultLocalDir.Append(wxT("Default.local")); #else - DefaultLocalDir.Clear(); - DefaultLocalDir.Append(wxString::FromUTF8(getenv("HOME"))); - DefaultLocalDir.Append(wxT("/.xestiacal/accounts/")); - DefaultLocalDir.Append(wxT("Default.local")); + defaultLocalDir.Clear(); + defaultLocalDir.Append(wxString::FromUTF8(getenv("HOME"))); + defaultLocalDir.Append(wxT("/.xestiacal/accounts/")); + defaultLocalDir.Append(wxT("Default.local")); #endif - if (wxDirExists(DefaultLocalDir) == FALSE){ + if (wxDirExists(defaultLocalDir) == FALSE){ - if (wxMkdir(DefaultLocalDir, 0740) == TRUE){ + if (wxMkdir(defaultLocalDir, 0740) == TRUE){ } @@ -68,92 +67,145 @@ void SetupDefaultSettings(){ // Setup default (non account) settings if they don't exist. - wxString DefaultPrefDir; + wxString defaultPrefDir; #if defined(__HAIKU__) #elif defined(__WIN32__) - DefaultPrefDir.Clear(); - DefaultPrefDir.Append(wxString::FromUTF8(getenv("APPDATA"))); - DefaultPrefDir.Append(wxT("\\Xestia\\Calendar\\preferences\\")); + defaultPrefDir.Clear(); + defaultPrefDir.Append(wxString::FromUTF8(getenv("APPDATA"))); + defaultPrefDir.Append(wxT("\\Xestia\\Calendar\\preferences\\")); #elif defined(__APPLE__) - DefaultPrefDir.Clear(); - DefaultPrefDir.Append(wxString::FromUTF8(getenv("HOME"))); - DefaultPrefDir.Append(wxT("/Library/Preferences/Xestia/Calendar/preferences/")); + defaultPrefDir.Clear(); + defaultPrefDir.Append(wxString::FromUTF8(getenv("HOME"))); + defaultPrefDir.Append(wxT("/Library/Preferences/Xestia/Calendar/preferences/")); #else - DefaultPrefDir.Clear(); - DefaultPrefDir.Append(wxString::FromUTF8(getenv("HOME"))); - DefaultPrefDir.Append(wxT("/.xestiacal/preferences/")); + defaultPrefDir.Clear(); + defaultPrefDir.Append(wxString::FromUTF8(getenv("HOME"))); + defaultPrefDir.Append(wxT("/.xestiacal/preferences/")); #endif // Create the accounts file if it doesn't exist. - if (wxFileExists(DefaultPrefDir + wxT("accounts")) == FALSE){ + if (wxFileExists(defaultPrefDir + wxT("accounts")) == FALSE){ - wxString AccountsFilename; - wxFFile AccountsFile; + wxString accountsFilename; + wxFFile accountsFile; - AccountsFilename = DefaultPrefDir; - AccountsFilename.Append(wxT("accounts")); + accountsFilename = defaultPrefDir; + accountsFilename.Append(wxT("accounts")); #if wxABI_VERSION < 20900 - AccountsFile.Open(AccountsFilename.c_str(), wxT("w")); + accountsFile.Open(accountsFilename.c_str(), wxT("w")); #else - AccountsFile.Open(AccountsFilename, wxT("w")); + accountsFile.Open(accountsFilename, wxT("w")); #endif - AccountsFile.Write(wxT("")); + accountsFile.Write(wxT("")); } // Create the preferences file if it doesn't exist. - if (wxFileExists(DefaultPrefDir + wxT("settings")) == FALSE){ + if (wxFileExists(defaultPrefDir + wxT("settings")) == FALSE){ - wxString PrefsFilename; - wxFFile PrefsFile; + wxString prefsFilename; + wxFFile prefsFile; - PrefsFilename = DefaultPrefDir; - PrefsFilename.Append(wxT("settings")); + prefsFilename = defaultPrefDir; + prefsFilename.Append(wxT("settings")); #if wxABI_VERSION < 20900 - PrefsFile.Open(PrefsFilename.c_str(), wxT("w")); + prefsFile.Open(prefsFilename.c_str(), wxT("w")); #else - PrefsFile.Open(PrefsFilename, wxT("w")); + prefsFile.Open(prefsFilename, wxT("w")); #endif - PrefsFile.Write(wxT("HideLocalCalendars=false\nSaveWindowPosition=true\n")); + prefsFile.Write(wxT("HideLocalCalendars=false\nSaveWindowPosition=true\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("")); + + } + + delete accountConfigData; + accountConfigData = nullptr; + } void SetupDirectories(){ // Create the directories if they don't exist. - wxString DefaultSettingsDir; + wxString defaultSettingsDir; #if defined(__HAIKU__) #elif defined(__WIN32__) - DefaultSettingsDir.Clear(); - DefaultSettingsDir.Append(wxString::FromUTF8(getenv("APPDATA"))); - DefaultSettingsDir.Append(wxT("\\Xestia\\")); + defaultSettingsDir.Clear(); + defaultSettingsDir.Append(wxString::FromUTF8(getenv("APPDATA"))); + defaultSettingsDir.Append(wxT("\\Xestia\\")); - if (wxDirExists(DefaultSettingsDir) == FALSE){ + if (wxDirExists(defaultSettingsDir) == FALSE){ // Create the directory. - if (wxMkdir(DefaultSettingsDir, 0740) == TRUE){ + if (wxMkdir(defaultSettingsDir, 0740) == TRUE){ } @@ -161,19 +213,19 @@ void SetupDirectories(){ // 'Calendar' to the directory. - DefaultSettingsDir.Append(wxT("\\Calendar\\")); + defaultSettingsDir.Append(wxT("\\Calendar\\")); #elif defined(__APPLE__) - DefaultSettingsDir.Clear(); - DefaultSettingsDir.Append(wxString::FromUTF8(getenv("HOME"))); - DefaultSettingsDir.Append(wxT("/Library/Preferences/Xestia/")); + defaultSettingsDir.Clear(); + defaultSettingsDir.Append(wxString::FromUTF8(getenv("HOME"))); + defaultSettingsDir.Append(wxT("/Library/Preferences/Xestia/")); - if (wxDirExists(DefaultSettingsDir) == FALSE){ + if (wxDirExists(defaultSettingsDir) == FALSE){ // Create the directory. - if (wxMkdir(DefaultSettingsDir, 0740) == TRUE){ + if (wxMkdir(defaultSettingsDir, 0740) == TRUE){ } @@ -181,39 +233,39 @@ void SetupDirectories(){ // Append 'Calendar' to the directory. - DefaultSettingsDir.Append(wxT("/Calendar/")); + defaultSettingsDir.Append(wxT("/Calendar/")); #else - DefaultSettingsDir.Clear(); - DefaultSettingsDir.Append(wxString::FromUTF8(getenv("HOME"))); - DefaultSettingsDir.Append(wxT("/.xestiacal/")); + defaultSettingsDir.Clear(); + defaultSettingsDir.Append(wxString::FromUTF8(getenv("HOME"))); + defaultSettingsDir.Append(wxT("/.xestiacal/")); #endif // Check if the directory exists. - if (wxDirExists(DefaultSettingsDir) == FALSE){ + if (wxDirExists(defaultSettingsDir) == FALSE){ // Create the directory. - if (wxMkdir(DefaultSettingsDir, 0740) == TRUE){ + if (wxMkdir(defaultSettingsDir, 0740) == TRUE){ } } - if (wxDirExists(DefaultSettingsDir + wxT("accounts")) == FALSE){ + if (wxDirExists(defaultSettingsDir + wxT("accounts")) == FALSE){ - if (wxMkdir(DefaultSettingsDir + wxT("accounts"), 0740) == TRUE){ + if (wxMkdir(defaultSettingsDir + wxT("accounts"), 0740) == TRUE){ } } - if (wxDirExists(DefaultSettingsDir + wxT("preferences")) == FALSE){ + if (wxDirExists(defaultSettingsDir + wxT("preferences")) == FALSE){ - if (wxMkdir(DefaultSettingsDir + wxT("preferences"), 0740) == TRUE){ + if (wxMkdir(defaultSettingsDir + wxT("preferences"), 0740) == TRUE){ }