📄 countdowncontainer.cpp
字号:
{
switch(iUi->iCurFunctionId)
{
case EFunLook:
CmdLook();
break;
case EFunModify:
CmdModify();
break;
case EFunDelete:
CmdDelete();
break;
default:
break;
}
}
}
void CCountDownContainer::CmdLook()
{
TInt index = iListBox->CurrentItemIndex();
TRecordDBStruct &db = iUi->iDB->iArrayDB->At(index);
TTime time(db.iTime);
TTime curTime;
curTime.HomeTime();
TInt days = GetDays(time, curTime);
TName info,tips;
CEikonEnv::Static()->ReadResource(info, R_STR_CD_TIPS);
tips.Format(info, &db.iName, days);
ShowNotify(tips);
//CEikonEnv::Static()->AlertWin(db.iName, db.iName);
}
TInt CCountDownContainer::GetInsertPos(TTime &aTime)
{
TInt ret = 0;
TInt count = iUi->iDB->iArrayDB->Count();
TInt pos = 0;
for(TInt i=0;i<count;i++)
{
TRecordDBStruct &db = iUi->iDB->iArrayDB->At(i);
TInt value = GetDays(aTime, db.iTime);
if(value==0)
{
ret = i;
break;
}
else if(value>0)
{
if(i==(count-1))
{
ret = i + 1;
break;
}
else
{
TRecordDBStruct &nextDb = iUi->iDB->iArrayDB->At(i+1);
value = GetDays(aTime, nextDb.iTime);
if(value<=0)
{
ret = i + 1;
break;
}
}
}
else
{
}
}
return ret;
}
TBool CCountDownContainer::CheckSameItem(TDesC &aName, TInt aIndex)
{
TBool b = EFalse;
TInt count = iUi->iDB->iArrayDB->Count();
for(TInt i=0;i<count;i++)
{
TRecordDBStruct &db = iUi->iDB->iArrayDB->At(i);
if(aIndex==i)
{
continue;
}
else
{
if(db.iName.Compare(aName)==0)
{
b = ETrue;
break;
}
}
}
return b;
}
void CCountDownContainer::CmdAdd()
{
TName info;
TBuf<128> textData;
TRecordDBStruct db;
for(;;)
{
CAknTextQueryDialog* dlg = CAknTextQueryDialog::NewL(db.iName, CAknQueryDialog::ENoTone);
CEikonEnv::Static()->ReadResource(info, R_STR_INPUT_CD_NAME);
dlg->SetPromptL(info);
if(dlg->ExecuteLD(R_DIALOG_INPUT))
{
if(CheckSameItem(db.iName))
{
CEikonEnv::Static()->ReadResource(info, R_STR_SAME_TIPS);
textData.Format(info, &db.iName);
ShowNotify(textData);
}
else
{
TTime value;
value.HomeTime();
for(;;)
{
CAknTimeQueryDialog* dlg;
{
TBuf<128> prompt;
iCoeEnv->ReadResource( prompt, R_STR_INPUT_CD_DATE);
dlg = CAknTimeQueryDialog::NewL( value, CAknQueryDialog::ENoTone );
CleanupStack::PushL(dlg);
dlg->SetPromptL(prompt);
CleanupStack::Pop(); //dlg
}
if(dlg->ExecuteLD( R_CD_DATE_QUERY ))
{
TTime curTime;
curTime.HomeTime();
TInt days = GetDays(value, curTime.Int64());
if(days>0)
{
db.iTime.Set(value.Int64().High(), value.Int64().Low());
iUi->iDB->iArrayDB->InsertL(GetInsertPos(value), db);
iUi->iDB->SaveDBL();
CEikonEnv::Static()->ReadResource(info, R_STR_ADD_OK);
ShowNotify(info);
iUi->iDB->SaveRscL();
return ;
}
else
{
_LIT(KFormatTxt,"%/0%1%/1%2%/2%3%/3");
curTime.FormatL(textData,KFormatTxt);
TName tips;
CEikonEnv::Static()->ReadResource(info, R_STR_ERR_TIME_TIPS);
tips.Format(info, &textData);
ShowNotify(tips);
}
}
else
{
break;
}
}
}
}
else
{
break;
}
}
}
void CCountDownContainer::CmdModify()
{
TInt index = iListBox->CurrentItemIndex();
TRecordDBStruct &db = iUi->iDB->iArrayDB->At(index);
TName info, tips;
TBuf<128> name(db.iName);
TBuf<128> textData;
for(;;)
{
CAknTextQueryDialog* dlg = CAknTextQueryDialog::NewL(name, CAknQueryDialog::ENoTone);
CEikonEnv::Static()->ReadResource(info, R_STR_MODIFY_NAME);
tips.Format(info, &name);
dlg->SetPromptL(tips);
if (dlg->ExecuteLD(R_DIALOG_INPUT))
{
if(CheckSameItem(name, index))
{
CEikonEnv::Static()->ReadResource(info, R_STR_SAME_TIPS);
textData.Format(info, &db.iName);
ShowNotify(textData);
}
else
{
TTime value(db.iTime);
for(;;)
{
_LIT(KFormatTxt,"%/0%1%/1%2%/2%3%/3");
value.FormatL(textData,KFormatTxt);
CAknTimeQueryDialog* dlg;
{
TBuf<128> prompt;
iCoeEnv->ReadResource( prompt, R_STR_MIDIFY_DATE);
dlg = CAknTimeQueryDialog::NewL( value, CAknQueryDialog::ENoTone );
CleanupStack::PushL(dlg);
tips.Format(prompt, &textData);
dlg->SetPromptL(tips);
CleanupStack::Pop(); //dlg
}
if(dlg->ExecuteLD( R_CD_DATE_QUERY ))
{
TTime curTime;
curTime.HomeTime();
if(GetDays(value, curTime)>0)
{
TRecordDBStruct newdb;
newdb.iName.Copy(name);
newdb.iTime.Set(value.Int64().High(), value.Int64().Low());
iUi->iDB->iArrayDB->Delete(index);
iUi->iDB->iArrayDB->InsertL(GetInsertPos(value), newdb);
iUi->iDB->SaveDBL();
CEikonEnv::Static()->ReadResource(info, R_STR_SUCESSFULLY);
ShowNotify(info);
CreateRecordListBoxL();
return;
}
else
{
_LIT(KFormatTxt,"%/0%1%/1%2%/2%3%/3");
curTime.FormatL(textData,KFormatTxt);
CEikonEnv::Static()->ReadResource(info, R_STR_ERR_TIME_TIPS);
tips.Format(info, &textData);
ShowNotify(tips);
}
}
else
{
break;
}
}
}
}
else
{
break;
}
}
}
void CCountDownContainer::CmdDelete()
{
TName info, tips;
CEikonEnv::Static()->ReadResource(info, R_STR_DELETE_QUERY);
TInt index = iListBox->CurrentItemIndex();
TRecordDBStruct &db = iUi->iDB->iArrayDB->At(index);
tips.Format(info, &db.iName);
CAknQueryDialog* dlg = new(ELeave) CAknQueryDialog(tips,CAknQueryDialog::EWarningTone);
if(dlg->ExecuteLD(R_DIALOG_DELETE_QUERY))
{
TInt index = iListBox->CurrentItemIndex();
TName name(db.iName);
iUi->iDB->iArrayDB->Delete(index);
iUi->iDB->SaveDBL();
CEikonEnv::Static()->ReadResource(info, R_STR_DELETE_TIPS);
tips.Format(info, &name);
ShowNotify(tips);
if(iUi->iDB->iArrayDB->Count()==0)
{
CEikonEnv::Static()->ReadResource(info, R_STR_NO_CD_TIPS);
ShowNotify(info);
CreateFunctionListBoxL();
}
else
{
CreateRecordListBoxL();
}
}
}
// End of File
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -