📄 setting.cpp
字号:
/*
============================================================================
Name : Setting.cpp
Author : Richie Chyi
Copyright : Copyright?2008
Description : Weather Setting class implementation
============================================================================
*/
#include <e32def.h>
#include <S32STRM.H> // For RReadStream RWriteStream
#include <f32file.h> // For RFs
#include <S32FILE.H> // For RFileReadStream RFileWriteStream
#include <BAUTILS.H> // For BaflUtils
#include "Setting.h"
CSetting* CSetting::NewLC()
{
CSetting* self = new (ELeave) CSetting;
CleanupStack::PushL(self);
self->ConstructL();
return self;
}
CSetting* CSetting::NewL()
{
CSetting* self = NewLC();
CleanupStack::Pop(self);
return self;
}
CSetting::~CSetting()
{
}
CSetting::CSetting()
{
}
void CSetting::ConstructL()
{
}
/**
* 外化
*/
void CSetting::ExternalizeL(RWriteStream& aStream)
{
aStream.WriteInt8L(iCityIndex);
aStream.WriteInt8L(iHour);
aStream.WriteInt8L(iMinute);
}
/**
* 内化
*/
void CSetting::InternalizeL(RReadStream& aStream)
{
iCityIndex = aStream.ReadInt8L();
iHour = aStream.ReadInt8L();
iMinute = aStream.ReadInt8L();
}
/**
* 从文件读取数据
*/
TInt CSetting::ReadFromFileL()
{
RFs session;
TRAPD(err, session.Connect());
if (KErrNone != err)
return err;
RFileReadStream readStream;
TRAP(err, readStream.Open(session, KConfigFileName, EFileRead));
if (KErrNone != err)
return err;
readStream.PushL();
InternalizeL(readStream);
readStream.Pop();
readStream.Release();
session.Close();
return KErrNone;
}
/**
* 保存至文件
*/
TInt CSetting::SaveToFileL()
{
RFs session;
TRAPD(err, session.Connect());
if (KErrNone != err)
return err;
RFileWriteStream outStream;
TRAP(err, outStream.Replace(session, KConfigFileName, EFileWrite));
if (KErrNone != err)
return err;
outStream.PushL();
ExternalizeL(outStream);
outStream.CommitL();
outStream.Pop();
outStream.Release();
session.Close();
return KErrNone;
}
/**
* 是否已保存过
*/
TBool CSetting::IsSaved()
{
RFs session;
session.Connect();
TBool saved = BaflUtils::FileExists(session, KConfigFileName);
session.Close();
return saved;
}
/**
* 根据索引获取城市名称字符串
*/
void CSetting::CityNameForIndex(TInt aCityIndex, TDes& aBuf)
{
// 这里的对应值,须参照资源中PopupField的定义
switch(aCityIndex)
{
case 0:
aBuf.Append(_L("Shanghai,China"));
break;
case 1:
aBuf.Append(_L("Beijing,China"));
break;
case 2:
aBuf.Append(_L("Xian,China"));
break;
case 3:
aBuf.Append(_L("Jinan,China"));
break;
case 4:
aBuf.Append(_L("Qingdao,China"));
break;
case 5:
aBuf.Append(_L("Shenzhen,China"));
break;
default:
ASSERT(0);
break;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -