#include "ProgramSettings.h" CProgramSettings::CProgramSettings() { } unsigned int CProgramSettings::LoadSettings(CSettings* Settings) { QFile* SettingsFile = new QFile("./Configuration/Settings.mcs"); if(SettingsFile) { if(SettingsFile->open(QIODevice::ReadOnly | QIODevice::Unbuffered) == false) { LoadDefaultSettings(Settings); SaveSettings(Settings); return RET_ERROR; } } else { LoadDefaultSettings(Settings); return RET_ERROR; } QDataStream * InputStream = new QDataStream(SettingsFile); quint32 MagicNbr;// = 0xBAADCAFE; *InputStream >> MagicNbr; if(MagicNbr != 0xBAADCAFE) { LoadDefaultSettings(Settings); return RET_ERROR; } *InputStream >> *Settings; SettingsFile->close(); delete SettingsFile; delete InputStream; return RET_OK; } void CProgramSettings::LoadDefaultSettings(CSettings *Settings) { Settings->mVoipMSSettings.mDefaultDID = "555555555"; Settings->mVoipMSSettings.mPassword = "Voip.ms Password"; Settings->mVoipMSSettings.mUsername = "Voip.ms Username"; Settings->mVoipMSSettings.mStartDate = QDate::currentDate(); } unsigned int CProgramSettings::SaveSettings(CSettings *SettingsData) { QFile* SettingsFile = new QFile("./Configuration/Settings.mcs"); if(SettingsFile) { if(SettingsFile->open(QIODevice::WriteOnly | QIODevice::Unbuffered) == false) { return RET_ERROR; } } else { return RET_ERROR; } QDataStream * OutputStream = new QDataStream(SettingsFile); quint32 MagicNbr = 0xBAADCAFE; *OutputStream << MagicNbr; *OutputStream << *SettingsData; SettingsFile->flush(); SettingsFile->close(); delete SettingsFile; delete OutputStream; return RET_OK; } QDataStream &operator<<(QDataStream &out, const CSettings &source) { out << source.mVoipMSSettings; return out; } QDataStream &operator>>(QDataStream &in, CSettings &dest) { in >> dest.mVoipMSSettings; return in; } QDataStream &operator<<(QDataStream &out, const CVoipMSSMSSettings &source) { out << source.mDefaultDID << source.mPassword << source.mStartDate << source.mUsername; return out; } QDataStream &operator>>(QDataStream &in, CVoipMSSMSSettings &dest) { in >> dest.mDefaultDID >> dest.mPassword >> dest.mStartDate >> dest.mUsername; return in; } CVoipMSSMSSettings& CVoipMSSMSSettings::operator=(const CVoipMSSMSSettings *source) { if(source == this) { return *this; } this->mDefaultDID = source->mDefaultDID; this->mPassword = source->mPassword; this->mStartDate = source->mStartDate; this->mUsername = source->mUsername; return *this; } CSettings& CSettings::operator =(const CSettings &source) { if(this == &source) { return *this; } this->mVoipMSSettings = source.mVoipMSSettings; return *this; }