// You should have received a copy of the GNU General Public License along
// with Xestia Calendar. If not, see <http://www.gnu.org/licenses/>
-#include <wx/wx.h>
-#include <wx/ffile.h>
+#include "defaults.h"
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){
}
+ wxFile defaultCalendarDB;
+
+#if defined(__WIN32__)
+ defaultCalendarDB.Create(defaultLocalDir + "\\calendarlist.db", false, wxPOSIX_USER_READ|wxPOSIX_USER_WRITE|wxPOSIX_GROUP_READ);
+#else
+ defaultCalendarDB.Create(defaultLocalDir + "/calendarlist.db", false, wxPOSIX_USER_READ|wxPOSIX_USER_WRITE|wxPOSIX_GROUP_READ);
+#endif
+
}
-
+
}
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){
}
// '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){
}
// 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){
}