⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 filelistview.cpp

📁 手机文件浏览器 Here are the sources to SMan v1.2c 1.2 is a major jump from v1.1. You will see this from the
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	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 + -