📄 dialogs.cpp
字号:
void CAutostartDialog::PreLayoutDynInitL()
{
loadBootFile();
populateAppArray();
int dump;
TKeyArrayFix keyArray = TKeyArrayFix(0, ECmpNormal);
for (int i = 0; i < MAX_AUTOSTART - 1; i++)
{
CEikChoiceList *myChoice1 = STATIC_CAST(CEikChoiceList*, Control(cAutoStart1 + i));
myChoice1->SetArrayL(appListCaption);
myChoice1->SetArrayExternalOwnership(ETrue);
if (appListPath->Find(autoStartConfig.autoStartApp[i], keyArray, dump) == 0)
{
myChoice1->SetCurrentItem(dump);
}
else
{
myChoice1->SetCurrentItem(0);
}
}
}
TBool CAutostartDialog::OkToExitL(TInt aButtonId)
{
if (aButtonId == EEikBidOk)
{
for (int i = 0; i < MAX_AUTOSTART - 1; i++)
{
CEikChoiceList *myChoice1 = STATIC_CAST(CEikChoiceList*, Control(cAutoStart1 + i));
if (myChoice1->CurrentItem() > 0)
{
autoStartConfig.autoStartApp[i].Copy(appListPath->At(myChoice1->CurrentItem()));
autoStartConfig.autoStartUid[i] = appListUid->At(myChoice1->CurrentItem());
TRAPD(err, QikFileUtils::MakeAppDocumentFileNameL(autoStartConfig.autoStartDefaultDoc[i], autoStartConfig.autoStartUid[i]));
if (err != KErrNone)
autoStartConfig.autoStartDefaultDoc[i].Copy(_L(""));
}
else
{
autoStartConfig.autoStartApp[i].Copy(_L(""));
autoStartConfig.autoStartUid[i] = KNullUid;
autoStartConfig.autoStartDefaultDoc[i].Copy(_L(""));
}
}
if (saveBootFile() != 0)
iEikonEnv->InfoMsgWithAlignment(TGulAlignment(EHRightVCenter), R_TBUF_ERRSAVECONFIG);
}
return ETrue;
}
TUint CAutostartDialog::loadBootFile(void)
{
RFile inStream;
TInt retVal;
retVal = 1;
if (inStream.Open(iEikonEnv->Static()->FsSession(), _L("C:\\SMan.boot"), EFileRead) == KErrNone)
{
TPckg<CAutoStartConfig> pkgConfigData(autoStartConfig);
if (inStream.Read(pkgConfigData) == KErrNone)
retVal = 0;
inStream.Close();
}
return retVal;
}
TUint CAutostartDialog::saveBootFile(void)
{
RFile outStream;
TInt retVal;
retVal = 1;
if (outStream.Replace(iEikonEnv->Static()->FsSession(), _L("C:\\SMan.boot"), EFileRead) == KErrNone)
{
TPckg<CAutoStartConfig> pkgConfigData(autoStartConfig);
if (outStream.Write(pkgConfigData) == KErrNone)
retVal = 0;
outStream.Close();
}
return retVal;
}
/*************************************************************
*
* Bluebeam log dialog.
*
**************************************************************/
CBluebeamLogDialog::CBluebeamLogDialog(CLogger *logObj)
{
localLogObj = logObj;
}
void CBluebeamLogDialog::PostLayoutDynInitL()
{
localLogObj->logDialog = this;
}
CBluebeamLogDialog::~CBluebeamLogDialog()
{
localLogObj->logDialog = NULL;
}
void CBluebeamLogDialog::PreLayoutDynInitL()
{
CEikGlobalTextEditor* textEditor = STATIC_CAST(CEikGlobalTextEditor*,Control(cBluebeamLog));
textEditor->CreateScrollBarFrameL();
textEditor->ScrollBarFrame()->SetScrollBarVisibilityL(CEikScrollBarFrame::EAuto, CEikScrollBarFrame::EAuto);
ButtonGroupContainer().DimCommand(EEikBidYes, ETrue);
}
TBool CBluebeamLogDialog::OkToExitL(TInt aButtonId)
{
if (aButtonId != EEikBidYes)
static_cast<CSMan2AppUi*>(CEikonEnv::Static()->EikAppUi())->iFileView->blueBeam->Cancel();
return ETrue;
}
/*************************************************************
*
* Bluejack notifications dialog.
*
**************************************************************/
CBluejackNotifications::CBluejackNotifications(CConfig *cData)
{
configData = cData;
}
CBluejackNotifications::~CBluejackNotifications()
{
}
void CBluejackNotifications::PreLayoutDynInitL()
{
CEikCheckBox *controlVibraNotify = STATIC_CAST(CEikCheckBox*, Control(cVibraNotify));
CEikCheckBox *controlSystemMsgNotify = STATIC_CAST(CEikCheckBox*, Control(cSystemMsgNotify));
if (configData->showBluejackSysMsg == true)
controlSystemMsgNotify->SetState(CEikButtonBase::ESet);
if (configData->vibraNotify == true)
controlVibraNotify->SetState(CEikButtonBase::ESet);
CEikChoiceList *audioClip = STATIC_CAST(CEikChoiceList*, Control(cAudioFileName));
audioClip->SetArrayL(R_ARRAY_AUDIONOTIFY);
if (configData->audioFileName.Length() == 0)
audioClip->SetCurrentItem(0);
else
{
selectedAudioFileName.Copy(configData->audioFileName);
TParsePtr parsedAudioFileName(configData->audioFileName);
audioClip->DesCArray()->AppendL(parsedAudioFileName.NameAndExt());
audioClip->SetCurrentItem(2);
}
}
TBool CBluejackNotifications::OkToExitL(TInt aButtonId)
{
if (aButtonId == EEikBidOk)
{
CEikCheckBox *controlVibraNotify = STATIC_CAST(CEikCheckBox*, Control(cVibraNotify));
CEikCheckBox *controlSystemMsgNotify = STATIC_CAST(CEikCheckBox*, Control(cSystemMsgNotify));
if (controlVibraNotify->State() == CEikButtonBase::ESet)
configData->vibraNotify = ETrue;
else
configData->vibraNotify = EFalse;
if (controlSystemMsgNotify->State() == CEikButtonBase::ESet)
configData->showBluejackSysMsg = ETrue;
else
configData->showBluejackSysMsg = EFalse;
CEikChoiceList *audioClip = STATIC_CAST(CEikChoiceList*, Control(cAudioFileName));
if (audioClip->CurrentItem() == 0)
configData->audioFileName.Copy(_L(""));
else
configData->audioFileName.Copy(selectedAudioFileName);
}
return ETrue;
}
void CBluejackNotifications::HandleControlStateChangeL(TInt aControlId)
{
if (aControlId == cAudioFileName)
{
CEikChoiceList *audioClip = STATIC_CAST(CEikChoiceList*, Control(cAudioFileName));
if (audioClip->CurrentItem() == 1)
{
pickAudioFile();
}
}
}
void CBluejackNotifications::pickAudioFile()
{
CDesCArray* audioMimeArray = new(ELeave) CDesCArrayFlat(2);
CEikChoiceList *audioClip = STATIC_CAST(CEikChoiceList*, Control(cAudioFileName));
audioMimeArray->AppendL(_L("audio/x-wav")); // WAV
audioMimeArray->AppendL(_L("audio/x-midi")); // MID
audioMimeArray->AppendL(_L("audio/x-rmf")); // RMF
if (CQikSelectMediaFileDlg::RunDlgLD(*audioMimeArray, selectedAudioFileName))
{
if (audioClip->DesCArray()->MdcaCount() > 2)
audioClip->DesCArray()->Delete(2);
TParsePtr parsedAudioFileName(selectedAudioFileName);
configData->audioFileName.Copy(selectedAudioFileName);
audioClip->DesCArray()->AppendL(parsedAudioFileName.NameAndExt());
audioClip->SetCurrentItem(2);
}
else
{
audioClip->SetCurrentItem(0);
}
audioClip->DesCArray()->Compress();
delete audioMimeArray;
}
/*************************************************************
*
* Edit the bluejack vcard
*
**************************************************************/
CBluejackMessageDialog::CBluejackMessageDialog(CScanner *scannerObj)
{
localScannerObj = scannerObj;
}
CBluejackMessageDialog::~CBluejackMessageDialog()
{
}
void CBluejackMessageDialog::makeVCard(void)
{
RFile outStream;
TBuf8<MAX_VCARD_SIZE> vcardBuffer8bit;
vcardBuffer8bit.Copy(currBJackMsg);
vcardBuffer8bit.Insert(0, _L8("BEGIN:VCARD\r\nVERSION:2.1\r\nN:"));
vcardBuffer8bit.Append(_L8("\r\nEND:VCARD"));
if (outStream.Replace(iEikonEnv->Static()->FsSession(), localScannerObj->vCardNames[0], EFileRead) == KErrNone)
{
outStream.Write(vcardBuffer8bit);
outStream.Close();
}
}
TBool CBluejackMessageDialog::OkToExitL(TInt aButtonId)
{
if (aButtonId == EEikBidOk)
{
CEikGlobalTextEditor* textEditor = STATIC_CAST(CEikGlobalTextEditor*,Control(cBluejackMessage));
textEditor->GetText(currBJackMsg);
makeVCard();
}
return ETrue;
}
void CBluejackMessageDialog::PreLayoutDynInitL()
{
// Read the existing vcard
RFile inStream;
TBuf8<MAX_VCARD_SIZE> buffer8bit;
buffer8bit.Copy(_L(""));
if (inStream.Open(iEikonEnv->Static()->FsSession(), localScannerObj->vCardNames[0], EFileRead) == KErrNone)
{
TInt fileSize;
inStream.Size(fileSize);
if ((fileSize > 1) && (fileSize < MAX_VCARD_SIZE))
inStream.Read(buffer8bit);
inStream.Close();
}
currBJackMsg.Copy(buffer8bit);
TInt nameField = currBJackMsg.Find(_L("\r\nN:"));
if (nameField != KErrNotFound)
{
currBJackMsg = currBJackMsg.Mid(nameField + 4, currBJackMsg.Length() - nameField - 4);
nameField = currBJackMsg.Find(_L("\r\n"));
if (nameField != KErrNotFound)
currBJackMsg.SetLength(nameField);
}
if (currBJackMsg.Length() > MAX_VCARD_FULLNAME)
currBJackMsg.SetLength(MAX_VCARD_FULLNAME);
CEikGlobalTextEditor* textEditor = STATIC_CAST(CEikGlobalTextEditor*,Control(cBluejackMessage));
textEditor->SetTextL(&currBJackMsg);
}
/*************************************************************
*
* Fileman log dialog - with wait
*
**************************************************************/
void CFileManLogDialog::PostLayoutDynInitL()
{
CEikGlobalTextEditor* textEditor = STATIC_CAST(CEikGlobalTextEditor*,Control(cFileManProgressText));
textEditor->CreateScrollBarFrameL();
textEditor->ScrollBarFrame()->SetScrollBarVisibilityL(CEikScrollBarFrame::EAuto, CEikScrollBarFrame::EAuto);
textEditor->SetTextL(&text);
if (!showOverwrite)
{
ButtonGroupContainer().DimCommand(EEikBidOverwrite, ETrue);
ButtonGroupContainer().DimCommand(EEikBidOverwriteAll, ETrue);
}
}
/*************************************************************
*
* Fileman rename dialog
*
**************************************************************/
void CFileManRenDialog::PreLayoutDynInitL()
{
static_cast<CEikGlobalTextEditor*>(Control(cFileManNewName))->SetTextL(&fileName);
fileName.Insert(0, filePath);
}
TBool CFileManRenDialog::OkToExitL(TInt aButtonId)
{
TBool retVal;
retVal = EFalse;
if ((aButtonId == EEikBidAbort) || (aButtonId == EEikBidSkip))
retVal = ETrue;
else if (aButtonId == EEikBidOk)
{
static_cast<CEikGlobalTextEditor*>(Control(cFileManNewName))->GetText(newName);
TParsePtr sanityCheck(newName);
if (!sanityCheck.PathPresent())
{
newName.Insert(0, filePath);
if (EikFileUtils::RenameFile(fileName, newName, 0) == KErrNone)
retVal = ETrue;
else
CEikonEnv::Static()->InfoMsg(R_TBUF_FILEMAN_ERRRENAME);
}
else
CEikonEnv::Static()->InfoMsg(R_TBUF_FILEMAN_INVALIDFILENAME);
}
return retVal;
}
/*************************************************************
*
* Fileman new folder dialog
*
**************************************************************/
TBool CFileManNewDirDialog::OkToExitL(TInt aButtonId)
{
TBool retVal;
retVal = EFalse;
if (aButtonId == EEikBidOk)
{
TFileName newName;
RFs fileServer;
static_cast<CEikGlobalTextEditor*>(Control(cFileManNewName))->GetText(newName);
User::LeaveIfError(fileServer.Connect());
newName.Insert(0, currentPath);
newName.Append(_L("\\"));
if (fileServer.MkDirAll(newName) == KErrNone)
retVal = ETrue;
else
CEikonEnv::Static()->InfoMsg(R_TBUF_FILEMAN_ERRMKDIR);
fileServer.Close();
}
return retVal;
}
/*************************************************************
*
* Fileman attributes dialog
*
**************************************************************/
CFileManAttrDialog::CFileManAttrDialog()
{
User::LeaveIfError(fs.Connect());
}
CFileManAttrDialog::~CFileManAttrDialog()
{
fs.Close();
}
TKeyResponse CFileManAttrDialog::OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType)
{
if (aType == EEventKey)
{
if (aKeyEvent.iCode == EQuartzKeyTwoWayDown)
{
static_cast<CEikGlobalTextEditor*>(Control(cFileAttName))->MoveDisplayL(TCursorPosition::EFPageDown);
static_cast<CEikGlobalTextEditor*>(Control(cFileAttName))->UpdateScrollBarsL();
return EKeyWasConsumed;
}
else if (aKeyEvent.iCode == EQuartzKeyTwoWayUp)
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -