📄 filelistview.cpp
字号:
cFileListBox->View()->ItemDrawer()->SetMarkGutter(0);
cFileListBox->View()->ItemDrawer()->SetMarkColumnWidth(10);
controlsArray->AppendL(cFileListBox);
if (configData->beamProtocol == CBlueBeam::protocolIrDA)
cFileListBox->ItemDrawer()->SetHighlightedBackColor(TRgb(255, 0, 0));
else
cFileListBox->ItemDrawer()->SetHighlightedBackColor(TRgb(0, 0, 255));
viewId = CSMan2AppUi::EViewFile;
bjackIconPosition = TPoint(2, cFileListBox->Position().iY + cFileListBox->Size().iHeight);
initBJackIcon();
currentPathScroller = new (ELeave) CMarquee;
// Populate the list box with files...
//fillListBox(_L("C:\\"));
EnableDragEvents();
SetZoomLevel(configData->zoomFile);
MakeVisible(EFalse);
ActivateL();
}
void CSMan2FileListView::SetZoomLevel(TInt zoomLevel)
{
generateZoomFont(zoomLevel);
CTextListItemDrawer* itemDrawer = ((CTextListItemDrawer*)cFileListBox->View()->ItemDrawer());
itemDrawer->SetFont(font);
cFileListBox->SetItemHeightL(font->HeightInPixels() + cFileListBox->VerticalInterItemGap());
configData->zoomFile = zoomLevel;
releaseFont();
}
TInt CSMan2FileListView::populateClipboard(TInt op)
{
TPtrC tempText, entryName;
TFileName currentFileName;
TInt i;
clipBoard->Reset();
for (i = 0; i < cFileListBox->SelectionIndexes()->Count(); i++)
{
tempText.Set(cFileListBox->Model()->ItemTextArray()->MdcaPoint((cFileListBox->SelectionIndexes()->At(i))));
TextUtils::ColumnText(entryName, 0, &tempText);
currentFileName.Copy(currentPath);
currentFileName.Append(entryName);
clipBoard->AppendL(currentFileName);
}
clipBoardOperation = op;
return i;
}
void CSMan2FileListView::HandleControlEventL(CCoeControl* /*aControl*/, TCoeEvent /*aEventType*/)
{
}
CCRCCalculator::CCRCCalculator() : CActive(EPriorityNormal)
{
crcDialogActive = EFalse;
// inputBuffer = NULL;
CActiveScheduler::Add(this);
// Ansi C++ doesn't allow initialization of arrays. :(
// No, I didn't hand-edit this. A simple VBS script formatted it for me. :)
crcTable[0] = 0x0000;
crcTable[1] = 0x77073096;
crcTable[2] = 0xee0e612c;
crcTable[3] = 0x990951ba;
crcTable[4] = 0x076dc419;
crcTable[5] = 0x706af48f;
crcTable[6] = 0xe963a535;
crcTable[7] = 0x9e6495a3;
crcTable[8] = 0x0edb8832;
crcTable[9] = 0x79dcb8a4;
crcTable[10] = 0xe0d5e91e;
crcTable[11] = 0x97d2d988;
crcTable[12] = 0x09b64c2b;
crcTable[13] = 0x7eb17cbd;
crcTable[14] = 0xe7b82d07;
crcTable[15] = 0x90bf1d91;
crcTable[16] = 0x1db71064;
crcTable[17] = 0x6ab020f2;
crcTable[18] = 0xf3b97148;
crcTable[19] = 0x84be41de;
crcTable[20] = 0x1adad47d;
crcTable[21] = 0x6ddde4eb;
crcTable[22] = 0xf4d4b551;
crcTable[23] = 0x83d385c7;
crcTable[24] = 0x136c9856;
crcTable[25] = 0x646ba8c0;
crcTable[26] = 0xfd62f97a;
crcTable[27] = 0x8a65c9ec;
crcTable[28] = 0x14015c4f;
crcTable[29] = 0x63066cd9;
crcTable[30] = 0xfa0f3d63;
crcTable[31] = 0x8d080df5;
crcTable[32] = 0x3b6e20c8;
crcTable[33] = 0x4c69105e;
crcTable[34] = 0xd56041e4;
crcTable[35] = 0xa2677172;
crcTable[36] = 0x3c03e4d1;
crcTable[37] = 0x4b04d447;
crcTable[38] = 0xd20d85fd;
crcTable[39] = 0xa50ab56b;
crcTable[40] = 0x35b5a8fa;
crcTable[41] = 0x42b2986c;
crcTable[42] = 0xdbbbc9d6;
crcTable[43] = 0xacbcf940;
crcTable[44] = 0x32d86ce3;
crcTable[45] = 0x45df5c75;
crcTable[46] = 0xdcd60dcf;
crcTable[47] = 0xabd13d59;
crcTable[48] = 0x26d930ac;
crcTable[49] = 0x51de003a;
crcTable[50] = 0xc8d75180;
crcTable[51] = 0xbfd06116;
crcTable[52] = 0x21b4f4b5;
crcTable[53] = 0x56b3c423;
crcTable[54] = 0xcfba9599;
crcTable[55] = 0xb8bda50f;
crcTable[56] = 0x2802b89e;
crcTable[57] = 0x5f058808;
crcTable[58] = 0xc60cd9b2;
crcTable[59] = 0xb10be924;
crcTable[60] = 0x2f6f7c87;
crcTable[61] = 0x58684c11;
crcTable[62] = 0xc1611dab;
crcTable[63] = 0xb6662d3d;
crcTable[64] = 0x76dc4190;
crcTable[65] = 0x01db7106;
crcTable[66] = 0x98d220bc;
crcTable[67] = 0xefd5102a;
crcTable[68] = 0x71b18589;
crcTable[69] = 0x06b6b51f;
crcTable[70] = 0x9fbfe4a5;
crcTable[71] = 0xe8b8d433;
crcTable[72] = 0x7807c9a2;
crcTable[73] = 0x0f00f934;
crcTable[74] = 0x9609a88e;
crcTable[75] = 0xe10e9818;
crcTable[76] = 0x7f6a0dbb;
crcTable[77] = 0x086d3d2d;
crcTable[78] = 0x91646c97;
crcTable[79] = 0xe6635c01;
crcTable[80] = 0x6b6b51f4;
crcTable[81] = 0x1c6c6162;
crcTable[82] = 0x856530d8;
crcTable[83] = 0xf262004e;
crcTable[84] = 0x6c0695ed;
crcTable[85] = 0x1b01a57b;
crcTable[86] = 0x8208f4c1;
crcTable[87] = 0xf50fc457;
crcTable[88] = 0x65b0d9c6;
crcTable[89] = 0x12b7e950;
crcTable[90] = 0x8bbeb8ea;
crcTable[91] = 0xfcb9887c;
crcTable[92] = 0x62dd1ddf;
crcTable[93] = 0x15da2d49;
crcTable[94] = 0x8cd37cf3;
crcTable[95] = 0xfbd44c65;
crcTable[96] = 0x4db26158;
crcTable[97] = 0x3ab551ce;
crcTable[98] = 0xa3bc0074;
crcTable[99] = 0xd4bb30e2;
crcTable[100] = 0x4adfa541;
crcTable[101] = 0x3dd895d7;
crcTable[102] = 0xa4d1c46d;
crcTable[103] = 0xd3d6f4fb;
crcTable[104] = 0x4369e96a;
crcTable[105] = 0x346ed9fc;
crcTable[106] = 0xad678846;
crcTable[107] = 0xda60b8d0;
crcTable[108] = 0x44042d73;
crcTable[109] = 0x33031de5;
crcTable[110] = 0xaa0a4c5f;
crcTable[111] = 0xdd0d7cc9;
crcTable[112] = 0x5005713c;
crcTable[113] = 0x270241aa;
crcTable[114] = 0xbe0b1010;
crcTable[115] = 0xc90c2086;
crcTable[116] = 0x5768b525;
crcTable[117] = 0x206f85b3;
crcTable[118] = 0xb966d409;
crcTable[119] = 0xce61e49f;
crcTable[120] = 0x5edef90e;
crcTable[121] = 0x29d9c998;
crcTable[122] = 0xb0d09822;
crcTable[123] = 0xc7d7a8b4;
crcTable[124] = 0x59b33d17;
crcTable[125] = 0x2eb40d81;
crcTable[126] = 0xb7bd5c3b;
crcTable[127] = 0xc0ba6cad;
crcTable[128] = 0xedb88320;
crcTable[129] = 0x9abfb3b6;
crcTable[130] = 0x03b6e20c;
crcTable[131] = 0x74b1d29a;
crcTable[132] = 0xead54739;
crcTable[133] = 0x9dd277af;
crcTable[134] = 0x04db2615;
crcTable[135] = 0x73dc1683;
crcTable[136] = 0xe3630b12;
crcTable[137] = 0x94643b84;
crcTable[138] = 0x0d6d6a3e;
crcTable[139] = 0x7a6a5aa8;
crcTable[140] = 0xe40ecf0b;
crcTable[141] = 0x9309ff9d;
crcTable[142] = 0x0a00ae27;
crcTable[143] = 0x7d079eb1;
crcTable[144] = 0xf00f9344;
crcTable[145] = 0x8708a3d2;
crcTable[146] = 0x1e01f268;
crcTable[147] = 0x6906c2fe;
crcTable[148] = 0xf762575d;
crcTable[149] = 0x806567cb;
crcTable[150] = 0x196c3671;
crcTable[151] = 0x6e6b06e7;
crcTable[152] = 0xfed41b76;
crcTable[153] = 0x89d32be0;
crcTable[154] = 0x10da7a5a;
crcTable[155] = 0x67dd4acc;
crcTable[156] = 0xf9b9df6f;
crcTable[157] = 0x8ebeeff9;
crcTable[158] = 0x17b7be43;
crcTable[159] = 0x60b08ed5;
crcTable[160] = 0xd6d6a3e8;
crcTable[161] = 0xa1d1937e;
crcTable[162] = 0x38d8c2c4;
crcTable[163] = 0x4fdff252;
crcTable[164] = 0xd1bb67f1;
crcTable[165] = 0xa6bc5767;
crcTable[166] = 0x3fb506dd;
crcTable[167] = 0x48b2364b;
crcTable[168] = 0xd80d2bda;
crcTable[169] = 0xaf0a1b4c;
crcTable[170] = 0x36034af6;
crcTable[171] = 0x41047a60;
crcTable[172] = 0xdf60efc3;
crcTable[173] = 0xa867df55;
crcTable[174] = 0x316e8eef;
crcTable[175] = 0x4669be79;
crcTable[176] = 0xcb61b38c;
crcTable[177] = 0xbc66831a;
crcTable[178] = 0x256fd2a0;
crcTable[179] = 0x5268e236;
crcTable[180] = 0xcc0c7795;
crcTable[181] = 0xbb0b4703;
crcTable[182] = 0x220216b9;
crcTable[183] = 0x5505262f;
crcTable[184] = 0xc5ba3bbe;
crcTable[185] = 0xb2bd0b28;
crcTable[186] = 0x2bb45a92;
crcTable[187] = 0x5cb36a04;
crcTable[188] = 0xc2d7ffa7;
crcTable[189] = 0xb5d0cf31;
crcTable[190] = 0x2cd99e8b;
crcTable[191] = 0x5bdeae1d;
crcTable[192] = 0x9b64c2b0;
crcTable[193] = 0xec63f226;
crcTable[194] = 0x756aa39c;
crcTable[195] = 0x026d930a;
crcTable[196] = 0x9c0906a9;
crcTable[197] = 0xeb0e363f;
crcTable[198] = 0x72076785;
crcTable[199] = 0x05005713;
crcTable[200] = 0x95bf4a82;
crcTable[201] = 0xe2b87a14;
crcTable[202] = 0x7bb12bae;
crcTable[203] = 0x0cb61b38;
crcTable[204] = 0x92d28e9b;
crcTable[205] = 0xe5d5be0d;
crcTable[206] = 0x7cdcefb7;
crcTable[207] = 0x0bdbdf21;
crcTable[208] = 0x86d3d2d4;
crcTable[209] = 0xf1d4e242;
crcTable[210] = 0x68ddb3f8;
crcTable[211] = 0x1fda836e;
crcTable[212] = 0x81be16cd;
crcTable[213] = 0xf6b9265b;
crcTable[214] = 0x6fb077e1;
crcTable[215] = 0x18b74777;
crcTable[216] = 0x88085ae6;
crcTable[217] = 0xff0f6a70;
crcTable[218] = 0x66063bca;
crcTable[219] = 0x11010b5c;
crcTable[220] = 0x8f659eff;
crcTable[221] = 0xf862ae69;
crcTable[222] = 0x616bffd3;
crcTable[223] = 0x166ccf45;
crcTable[224] = 0xa00ae278;
crcTable[225] = 0xd70dd2ee;
crcTable[226] = 0x4e048354;
crcTable[227] = 0x3903b3c2;
crcTable[228] = 0xa7672661;
crcTable[229] = 0xd06016f7;
crcTable[230] = 0x4969474d;
crcTable[231] = 0x3e6e77db;
crcTable[232] = 0xaed16a4a;
crcTable[233] = 0xd9d65adc;
crcTable[234] = 0x40df0b66;
crcTable[235] = 0x37d83bf0;
crcTable[236] = 0xa9bcae53;
crcTable[237] = 0xdebb9ec5;
crcTable[238] = 0x47b2cf7f;
crcTable[239] = 0x30b5ffe9;
crcTable[240] = 0xbdbdf21c;
crcTable[241] = 0xcabac28a;
crcTable[242] = 0x53b39330;
crcTable[243] = 0x24b4a3a6;
crcTable[244] = 0xbad03605;
crcTable[245] = 0xcdd70693;
crcTable[246] = 0x54de5729;
crcTable[247] = 0x23d967bf;
crcTable[248] = 0xb3667a2e;
crcTable[249] = 0xc4614ab8;
crcTable[250] = 0x5d681b02;
crcTable[251] = 0x2a6f2b94;
crcTable[252] = 0xb40bbe37;
crcTable[253] = 0xc30c8ea1;
crcTable[254] = 0x5a05df1b;
crcTable[255] = 0x2d02ef8d;
}
CCRCCalculator::~CCRCCalculator()
{
}
void CCRCCalculator::stopCRC(TInt aReason)
{
if (crcDialogActive)
delete crcDialog;
crcDialogActive = EFalse;
/*
if (inputBuffer)
{
delete inputBuffer;
inputBuffer = NULL;
}
*/
inputStream.Close();
if (aReason == CRCCancelled)
CEikonEnv::Static()->InfoMsg(R_TBUF_FILEMAN_CRCCANCELLED);
else if (aReason == CRCError)
CEikonEnv::Static()->InfoMsg(R_TBUF_FILEMAN_CRCERROR);
}
void CCRCCalculator::DoCancel()
{
stopCRC(CRCCancelled);
}
void CCRCCalculator::finishCRC()
{
if (crcDialogActive)
{
TBuf<12> crcText;
crcText.Format(_L("0x%x"), crcValue);
crcDialog->updateProgress(100);
crcDialog->ButtonGroupContainer().DimCommand(EEikBidOk, EFalse);
crcDialog->ButtonGroupContainer().DimCommand(EEikBidCancel, ETrue);
static_cast<CEikLabel*>(crcDialog->Control(cCRCValue))->SetTextL(crcText);
static_cast<CEikLabel*>(crcDialog->Control(cCRCValue))->DrawNow();
}
//delete inputBuffer;
//inputBuffer = NULL;
inputStream.Close();
}
void CCRCCalculator::RunL()
{
if (!crcDialogActive)
stopCRC(CRCCancelled);
else
{
if (iStatus == KErrNone)
{
// File read finished?
if (inputBuffer.Length() == 0)
{
finishCRC();
}
else
{
if (crcDialogActive)
{
numBytesRead += inputBuffer.Length();
crcDialog->updateProgress(TInt((TReal(numBytesRead) / TReal(fileSize)) * 100));
}
for (int i = 0; i < inputBuffer.Length(); i++)
//crcValue = (crcValue >> 8) ^ crcTable[(crcValue & 0xff) ^ *(inputBuffer->Ptr() + i)];
crcValue = (crcValue >> 8) ^ crcTable[(crcValue & 0xff) ^ (inputBuffer[i])];
if (numBytesRead != fileSize)
{
//TPtr8 memBuffer(inputBuffer->Des());
iStatus = KRequestPending;
//inputStream.Read(memBuffer, CRC_BUFFER_SIZE / 2, iStatus);
inputStream.Read(inputBuffer, iStatus);
SetActive();
}
else
finishCRC();
}
}
else
{
stopCRC(CRCError);
}
}
}
void CCRCCalculator::doCRC(TPtrC fileName)
{
/*
if (inputBuffer)
delete inputBuffer;
inputBuffer = HBufC8::NewL(CRC_BUFFER_SIZE);
*/
if (inputStream.Open(CEikonEnv::Static()->FsSession(), fileName, EFileRead) == KErrNone)
{
crcValue = 0;
crcDialog = new (ELeave) CCRCDialog(fileName);
crcDialog->ExecuteLD(R_DIALOG_FILEMAN_CRC);
numBytesRead = 0;
inputStream.Size(fileSize);
//TPtr8 memBuffer(inputBuffer->Des());
iStatus = KRequestPending;
//inputStream.Read(memBuffer, CRC_BUFFER_SIZE / 2, iStatus);
inputStream.Read(inputBuffer, iStatus);
SetActive();
}
else
CEikonEnv::Static()->InfoMsg(R_TBUF_FILEMAN_CRCERROR);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -