📄 registerview.cpp
字号:
/* Copyright (c) 2007, Nokia. All rights reserved */
#include <gulicon.h>
#include <eikseced.h>
#include <eikccpu.h>
#include <coemain.h>
#include <aknnotewrappers.h>
#include <eikspane.h>
#include <akntitle.h>
#include <akncontext.h>
#include "RegisterView.h"
#include "RegisterContainer.h"
#include "AssistantAppUi.h"
#include "Assistant.rsg"
#include "Assistant.hrh"
CRegisterView* CRegisterView::NewL()
{
CRegisterView* self = NewLC();
CleanupStack::Pop(self);
return self;
}
CRegisterView* CRegisterView::NewLC()
{
CRegisterView* self = new (ELeave) CRegisterView();
CleanupStack::PushL(self);
self->ConstructL();
return self;
}
void CRegisterView::ConstructL()
{
BaseConstructL(R_ASSISTANT_REGISTER);
}
CRegisterView::CRegisterView()
{
m_pAppContainer = NULL;
}
CRegisterView::~CRegisterView()
{
}
TUid CRegisterView::Id() const
{
return TUid::Uid(1);
}
void CRegisterView::HandleCommandL(TInt aCommand)
{
TBuf<32> sTmpTitle;
HBufC* m_pName = HBufC::NewLC(11);
HBufC* m_pPsw1 = HBufC::NewLC(6);
HBufC* m_pPsw2 = HBufC::NewLC(6);
TBool flage = ETrue;
switch(aCommand)
{
case EAssistantRegister:
{
m_pAppContainer->GetData(m_pName->Des(), m_pPsw1->Des(), m_pPsw2->Des());
if (m_pName->Des().Length() == 0)
{
CEikonEnv::Static()->ReadResource(sTmpTitle, R_QTN_ASSISTANT_TELEPHONE_ERROR);
CAknInformationNote* informationNote = new(ELeave)CAknInformationNote;
informationNote->ExecuteLD(sTmpTitle);
}
else if(m_pName->Des().Length() < 11 || m_pName->Des()[0] != '1')
{
CEikonEnv::Static()->ReadResource(sTmpTitle, R_QTN_ASSISTANT_TELEPHONE_ERROR);
CAknInformationNote* informationNote = new(ELeave)CAknInformationNote;
informationNote->ExecuteLD(sTmpTitle);
}
else if(m_pPsw1->Des().Length()<6 || m_pPsw2->Des().Length()<6)
{
CEikonEnv::Static()->ReadResource(sTmpTitle, R_QTN_ASSISTANT_PAS_ERROR);
CAknInformationNote* informationNote = new(ELeave)CAknInformationNote;
informationNote->ExecuteLD(sTmpTitle);
}
else
{
for (TInt i=0; i<6; i++)
{
if (m_pPsw1->Des()[i]>= '0' && m_pPsw1->Des()[i] <='9')
{
flage = EFalse;
}
else
{
CEikonEnv::Static()->ReadResource(sTmpTitle, R_QTN_ASSISTANT_PAS_ERROR);
CAknInformationNote* informationNote = new(ELeave)CAknInformationNote;
informationNote->ExecuteLD(sTmpTitle);
AppUi()->ActivateLocalViewL(TUid::Uid(1));
break;
}
}
if (!flage)
{
if(!m_pPsw1->Des().Compare(m_pPsw2->Des()))
{
m_pHTTPManage->Register(m_pName->Des(), m_pPsw1->Des());
WriteUserInfo();
AppUi()->ActivateLocalViewL(TUid::Uid(3));
}
else
{
CEikonEnv::Static()->ReadResource(sTmpTitle, R_QTN_ASSISTANT_COMPAS_ERROR);
CAknInformationNote* informationNote = new(ELeave)CAknInformationNote;
informationNote->ExecuteLD(sTmpTitle);
}
}
}
}
break;
case EAssistantLogin:
AppUi()->ActivateLocalViewL(TUid::Uid(2));
break;
// case EAssistantHelp:
// {
// m_pHelpStatus->SetStatus(EAssistantStatusMain);
// AppUi()->ActivateLocalViewL(TUid::Uid(4));
// }
// break;
default:
AppUi()->HandleCommandL(aCommand);
break;
}
CleanupStack::PopAndDestroy(3);
}
void CRegisterView::HandleClientRectChange()
{
if(m_pAppContainer)
{
m_pAppContainer->SetRect(ClientRect());
}
}
void CRegisterView::DoActivateL(const TVwsViewId&, TUid, const TDesC8&)
{
m_pAppContainer = new( ELeave ) CRegisterContainer();
m_pAppContainer->SetMopParent(this);
TRect rc;
rc.SetRect(ClientRect().iTl, TSize(176, 144));
m_pAppContainer->ConstructL( rc );
AppUi()->AddToStackL( *this, m_pAppContainer );
CEikStatusPane* sp=iEikonEnv->AppUiFactory()->StatusPane();
//Set View icon
CAssistantAppUi* pApp = (CAssistantAppUi*)CEikonEnv::Static()->AppUi();
CFbsBitmap* pIcon = pApp->LoadGraphicsL1(4);
CFbsBitmap* pMask =pApp->LoadGraphicsL1(27);
CAknContextPane* contextPane = (CAknContextPane*) sp->ControlL(TUid::Uid(EEikStatusPaneUidContext));
contextPane->SetPicture(pIcon,pMask);
//Set View Title
TBuf<32> sTmpTitle;
CEikonEnv::Static()->ReadResource(sTmpTitle, R_QTN_ASSISTANT_REGISTER);
CAknTitlePane* tp=(CAknTitlePane*)sp->ControlL(TUid::Uid(EEikStatusPaneUidTitle));
tp->SetTextL(sTmpTitle);
}
void CRegisterView::DoDeactivate()
{
if(m_pAppContainer)
{
AppUi()->RemoveFromStack( m_pAppContainer );
delete m_pAppContainer;
}
}
void CRegisterView::SetHTTPManagePtr(CHTTPManage* aPtr)
{
m_pHTTPManage = aPtr;
}
void CRegisterView::Action(TBool aFlag)
{
if(aFlag)
{
WriteUserInfo();
AppUi()->ActivateLocalViewL(TUid::Uid(3));
}
else
{
TBuf<32> sTmpTitle;
CEikonEnv::Static()->ReadResource(sTmpTitle, R_QTN_ASSISTANT_REGISTER_FAIL);
CAknInformationNote* informationNote = new(ELeave)CAknInformationNote;
informationNote->ExecuteLD(sTmpTitle);
}
}
void CRegisterView::WriteUserInfo()
{
HBufC* sTelephone = HBufC::NewLC(11);
HBufC* sPass = HBufC::NewLC(6);
HBufC* sPass1 = HBufC::NewLC(6);
m_pAppContainer->GetData(sTelephone->Des(), sPass->Des(),sPass1->Des());
RFs iFession;
TBuf<KMaxPath> sFileName;
#ifdef __WINS__
sFileName.Copy(_L("c:\\user.txt"));
#else
/*sFileName.Copy(_L("c:\\user.txt"));*/
CAssistantAppUi* pApp = (CAssistantAppUi*)CEikonEnv::Static()->AppUi();
pApp->GetAppPath(sFileName);
sFileName.Append(_L("user.txt"));
#endif
User::LeaveIfError(iFession.Connect());
iFession.Delete(sFileName);
RFileWriteStream writeStream;
User::LeaveIfError(writeStream.Create(iFession, sFileName, EFileWrite));
writeStream.PushL();
writeStream.WriteInt32L(sTelephone->Des().Length());
writeStream << sTelephone->Des();
writeStream.WriteInt32L(sPass->Des().Length());
writeStream << sPass->Des();
writeStream.CommitL();
writeStream.Pop();
writeStream.Release();
iFession.Close();
CleanupStack::PopAndDestroy(3);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -