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

📄 sman.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 页 / 共 5 页
字号:
			RApaLsSession apaLsSession;
			TUid appUid;
			TDataType dataType;

			if (apaLsSession.Connect() == KErrNone)
			{
				CleanupClosePushL(apaLsSession);
				if (apaLsSession.AppForDocument(fileName, appUid, dataType) == KErrNone)
				{
					CleanupStack::PopAndDestroy();
					if (appUid == TUid::Null())
						User::InfoPrint(_L("No recognizer"));
					else
					{
						launchApp(appUid, fileName, EFalse);
					}
				}
				else
				{
					User::InfoPrint(_L("Call err: AppForDocument()"));
					CleanupStack::PopAndDestroy();
				}
			}
			else
				User::InfoPrint(_L("Connect err: RApaLsSession"));
		}
		else
			User::InfoPrint(_L("Invalid highlight"));
*/
	}
	else if (aCommand == cmdFileManToggleHiddenView)
	{
		configData->showHiddenFiles = !configData->showHiddenFiles;
		iFileView->fillListBox(iFileView->currentPath);
		static_cast<CSMan2Document*>(Document())->saveConfig();
	}
	else if (aCommand == cmdFileManToggleRunApp)
	{
		configData->autoRunApp = !configData->autoRunApp;
		static_cast<CSMan2Document*>(Document())->saveConfig();
	}
	else if (aCommand == cmdFileManCRC)
	{
		FileManGetFile(&entryType, &entryName);
		if ((entryType.Compare(_L("<drv>")) != 0) && (entryName.Compare(_L("..")) != 0) && (entryType.Compare(_L("<dir>")) != 0))
		{
			TFileName fileName;

			fileName.Copy(iFileView->currentPath);
			fileName.Append(entryName);
			iFileView->crcCalculator->doCRC(fileName);
		}
		else
			iEikonEnv->InfoMsg(R_TBUF_FILEMAN_CRCERROR);
	}
	else if (aCommand == cmdFileManToggleOpenFile)
	{
		configData->autoOpenFile = !configData->autoOpenFile;
		static_cast<CSMan2Document*>(Document())->saveConfig();
	}
	else if (aCommand == cmdFileManProperties)
	{		
		FileManGetFile(&entryType, &entryName);
		if ((entryType.Compare(_L("<drv>")) != 0) && (entryName.Compare(_L("..")) != 0))
		{
			CFileManAttrDialog *attDialog = new (ELeave) CFileManAttrDialog();
			attDialog->theFile.Copy(iFileView->currentPath);
			attDialog->theFile.Append(entryName);
			TInt retVal = attDialog->ExecuteLD(R_DIALOG_FILEMANATT);
			if (retVal == EEikBidOk)
				iFileView->fillListBox(iFileView->currentPath);
		}
		else 
			iEikonEnv->InfoMsg(R_TBUF_FILEMAN_NOTAFILE);
	}
	else if (aCommand == cmdFileManAll)
	{
		for (i = 0; i < iFileView->cFileListBox->Model()->ItemTextArray()->MdcaCount(); i++)
		{
			tempText.Set(iFileView->cFileListBox->Model()->ItemTextArray()->MdcaPoint(i));
			TextUtils::ColumnText(entryType, 1, &tempText);
			TextUtils::ColumnText(entryName, 0, &tempText);
			if ((entryType.Compare(_L("<drv>")) != 0) && (entryName.Compare(_L("..")) != 0))
				iFileView->cFileListBox->View()->SelectItemL(i);
		}
	}
	else if (aCommand == cmdFileManNone)
	{
		for (i = 0; i < iFileView->cFileListBox->Model()->ItemTextArray()->MdcaCount(); i++)
		{
			tempText.Set(iFileView->cFileListBox->Model()->ItemTextArray()->MdcaPoint(i));
			TextUtils::ColumnText(entryType, 1, &tempText);
			iFileView->cFileListBox->View()->DeselectItem(i);
		}
	}
	else if (aCommand == cmdFileManBeam)
	{
		if (!iBJackView->oScanner->IsActive())
		{
			if (iFileView->blueBeam->IsActive())
				iEikonEnv->InfoMsg(R_TBUF_BEAMER_BUSY);
			else
			{
				TBool hasFiles = EFalse;
				
				for (i = 0; i < iFileView->cFileListBox->SelectionIndexes()->Count(); i++)
				{
					tempText.Set(iFileView->cFileListBox->Model()->ItemTextArray()->MdcaPoint((iFileView->cFileListBox->SelectionIndexes()->At(i))));
					TextUtils::ColumnText(entryType, 1, &tempText);
					if (entryType.Compare(_L("<dir>")) != 0)
					{
						hasFiles = ETrue;
						break;
					}
				}
				
				if (hasFiles)
				{
					iFileView->blueBeam->logHelper->logDialog = NULL;
					iFileView->blueBeam->logHelper->logTarget = CLogger::logToDialog;
					iFileView->blueBeam->beamerProtocol = configData->beamProtocol;
					iFileView->blueBeam->startBeam();
				}
				else
					iEikonEnv->InfoMsg(R_TBUF_FILEMAN_NOFILES);
			}
		}
		else
			iEikonEnv->InfoMsg(R_TBUF_BJACKBUSY);
	}
	else if ((aCommand == cmdFileManCopy) || (aCommand == cmdFileManCut))
	{
		TInt op = (aCommand == cmdFileManCopy) ? CSManFileMan::operationCopy : CSManFileMan::operationCut;

		if ((i = iFileView->populateClipboard(op)) > 0)
		{
			if (op == CSManFileMan::operationCut)
				iEikonEnv->InfoMsg(R_TBUF_FILEMAN_CUT, i);
			else if (op == CSManFileMan::operationCopy)
				iEikonEnv->InfoMsg(R_TBUF_FILEMAN_COPY, i);
		}
		else
			iEikonEnv->InfoMsg(R_TBUF_FILEMAN_CLIPBFLUSH, i);
	}
	else if (aCommand == cmdFileManPaste)
	{
		if (iFileView->clipBoard->Count() > 0)
			doFileMan(CSManFileMan::isPaste);
		else
			iEikonEnv->InfoMsg(R_TBUF_FILEMAN_CLIPEMPTY);
	}
	else if (aCommand == cmdFileManDelete)
	{
		if (iFileView->populateClipboard(-1) > 0)
			doFileMan(CSManFileMan::isDelete);
		else
			iEikonEnv->InfoMsg(R_TBUF_FILEMAN_NOFILES);
	}
	else if (aCommand == cmdFileManRename)
	{
		if (iFileView->populateClipboard(-1) > 0)
			doFileMan(CSManFileMan::isRename);
		else
			iEikonEnv->InfoMsg(R_TBUF_FILEMAN_NOFILES);		
	}	
	else if (aCommand == cmdFileManNewFolder)
	{
		CFileManNewDirDialog *newDir = new (ELeave) CFileManNewDirDialog;
		newDir->currentPath.Copy(iFileView->currentPath);
		newDir->ExecuteLD(R_DIALOG_FILEMANNEWFOLDER);
		iFileView->fillListBox(iFileView->currentPath);
	}	
	else if ((aCommand >= cmdFileMan_Drive_A) && (aCommand <= cmdFileMan_Drive_Z))
	{
		TBuf<3> drvPath;
		
		drvPath.Format(_L("%c:\\"), aCommand - cmdFileMan_Drive_A + 0x41);
		iFileView->fillListBox(drvPath);
	}
	/*************************************************************
	*
	* Commands for Utilities
	*
	**************************************************************/
	else if (aCommand == cmdUtilsAgendaFixSynchTimeZone)
	{
		iAgendaView->FixSynchTimeZone();
	}
	else if (aCommand == cmdUtilsFixApplist)
	{
		TApaAppInfo dummy;
		
		static_cast<CSMan2Document*>(Document())->saveConfig();
		FindApp(KUidControlPanel, &dummy);
		iEikonEnv->InfoMsg(R_TBUF_APPLISTFIXED);
	}
	else if (aCommand == cmdUtilsCompContacts)
	{
		CEikonEnv::Static()->BusyMsgL(R_TBUF_MISC_BUSY);	
		CContactDatabase* cdb = CContactDatabase::OpenL();
		TRAPD(error, cdb->CompactL());
		delete cdb;
		CEikonEnv::Static()->BusyMsgCancel();
		if (error != KErrNone)
			iEikonEnv->InfoMsg(R_TBUF_UTIL_ERRCOMPACTCONTACTS);
		else
			iEikonEnv->InfoMsg(R_TBUF_MISC_DONE);
	}
	else if (aCommand == cmdUtilsFixAppOrderReset)
	{
		HBufC *title = CEikonEnv::Static()->AllocReadResourceL(R_TBUF_DB_CONFIRM_CANCEL_TITLE);
		HBufC *warning = CEikonEnv::Static()->AllocReadResourceL(R_TBUF_UTILS_FIXAPPORDER_CONFIRMRESET);
		if (CEikonEnv::Static()->QueryWinL(*title, *warning))
		{
			TBuf<30> appName;
			appName.Copy(KAppTaskName);
			EikFileUtils::DeleteFile(KAppConfigFile);
			iTaskView->gentleEndTask(appName);
			iEikonEnv->InfoMsg(R_TBUF_UTILS_FIXAPPORDER_WAITAWHILE);
		}
		delete title;
		delete warning;
	}
	else if (aCommand == cmdUtilsFixAppOrderRestore)
	{
		if (PromptAppFixOrder(R_TBUF_UTILS_FIXAPPORDER_CONFIRMRESTORE))
		{
			if (EikFileUtils::CopyFile(KAppConfigFileBackup, KAppConfigFile, CFileMan::EOverWrite) == KErrNone)
			{
				TBuf<30> appName;
				appName.Copy(KAppTaskName);
				iTaskView->gentleEndTask(appName);
				iEikonEnv->InfoMsg(R_TBUF_UTILS_FIXAPPORDER_WAITAWHILE);
			}
			else
				iEikonEnv->InfoMsg(R_TBUF_UTILS_FIXAPPORDER_FAILED);
		}
	}
	else if (aCommand == cmdUtilsFixAppOrderBackup)
	{
		if (PromptAppFixOrder(R_TBUF_UTILS_FIXAPPORDER_CONFIRMBACKUP))
		{
			if (EikFileUtils::CopyFile(KAppConfigFile, KAppConfigFileBackup, CFileMan::EOverWrite) == KErrNone)
				iEikonEnv->InfoMsg(R_TBUF_MISC_DONE);
			else
				iEikonEnv->InfoMsg(R_TBUF_UTILS_FIXAPPORDER_BACKUPFAIL);
		}
	}
	/*************************************************************
	*
	* Commands for Task View
	*
	**************************************************************/
	else if (aCommand == cmdShortcuts)
	{
		CArrayFixFlat<TUid> *tempUid;

		tempUid = new (ELeave) CArrayFixFlat<TUid>(NUM_SHORTCUTS);
		for (i = 0; i < NUM_SHORTCUTS; i++)
		{
			tempUid->AppendL(configData->shortCutUid[i]);
		}
		CShortcutDialog* shortcutDialog = new (ELeave) CShortcutDialog(tempUid);
		if (shortcutDialog->ExecuteLD(R_DIALOG_SHORTCUT) == EEikBidOk)
		{
			for (i = 0; i < NUM_SHORTCUTS; i++)
				configData->shortCutUid[i] = tempUid->At(i);
			static_cast<CSMan2Document*>(Document())->saveConfig();
		}
		delete tempUid;
	}
	else if ((aCommand >= cmdShort1) && (aCommand <= cmdShort7))
	{
		for (i = 0; i < NUM_SHORTCUTS; i++)
		{
			if (aCommand == (cmdShort1 + i))
			{
				launchApp(configData->shortCutUid[i], _L(""), EFalse);
				break;
			}
		}
	}
	else if ((aCommand >= cmdLastRunBase) && ((aCommand < cmdLastRunBase + NUM_LASTRUN_HISTORY)))
	{
		launchApp(historyUidList->At(aCommand - cmdLastRunBase), _L(""), ETrue);
	}
	else if (aCommand >= cmdRunAppBase)
	{
		TBool addToHistory = ETrue;
		// Check if the entry is in the shortcut list. If so, do not add it to history
		for (int i = 0; i < NUM_SHORTCUTS; i++)
			if (configData->shortCutUid[i] == startUidList->At(aCommand - cmdRunAppBase))
			{
				addToHistory = EFalse;
				break;
			}
		
		launchApp(startUidList->At(aCommand - cmdRunAppBase), _L(""), addToHistory);
		startUidList->Reset();
	}
	else if (aCommand == cmdPersist)
	{
		configData->persist = !configData->persist;
		static_cast<CSMan2Document*>(Document())->saveConfig();
	}
	else if (aCommand == cmdAutostartOthers)
	{
		CAutostartDialog* autoStartDialog = new (ELeave) CAutostartDialog();
		autoStartDialog->ExecuteLD(R_DIALOG_AUTOSTART);
	}
	else if (aCommand == cmdAutostartSMan)
	{
		CAutostartDialog* autoStartDialog = new (ELeave) CAutostartDialog();
		autoStartDialog->loadBootFile();		
		if (autoStartDialog->autoStartConfig.autoStartUid[MAX_AUTOSTART - 1] != KUidSMan2App)
		{
			// Ensure we get upper case stuff only!
			autoStartDialog->autoStartConfig.autoStartApp[MAX_AUTOSTART - 1].Copy(CEikonEnv::Static()->EikAppUi()->Application()->AppFullName().Left(2));
			autoStartDialog->autoStartConfig.autoStartApp[MAX_AUTOSTART - 1].Append(_L("\\SYSTEM\\APPS\\SMAN\\SMAN.APP"));
			autoStartDialog->autoStartConfig.autoStartUid[MAX_AUTOSTART - 1] = KUidSMan2App;
		}
		else
		{
			autoStartDialog->autoStartConfig.autoStartApp[MAX_AUTOSTART - 1].Copy(_L(""));
			autoStartDialog->autoStartConfig.autoStartUid[MAX_AUTOSTART - 1] = KNullUid;
		}
		if (autoStartDialog->saveBootFile() != 0)
			iEikonEnv->InfoMsg(R_TBUF_ERRSAVECONFIG);
		delete autoStartDialog;
	}
	else if (aCommand == cmdLogFlags)
	{
		CLogLevelDialog* logLevelDialog = new (ELeave) CLogLevelDialog(&(configData->logFlags));
		if (logLevelDialog->ExecuteLD(R_DIALOG_LOGLEVELS) == EEikBidOk)
			static_cast<CSMan2Document*>(Document())->saveConfig();
	}
	else if (aCommand == cmdShowHiddenTask)
	{
		configData->showHiddenTasks = !configData->showHiddenTasks;
		static_cast<CSMan2Document*>(Document())->saveConfig();
		iTaskView->refreshTaskList(TODO_REFRESH);
	}
	else if (aCommand == cmdNoDevicePause)
	{
		CEikDialog* noDevicePauseDialog = new(ELeave) CBluejackTimerDialog(&(configData->noDevicePause), &(configData->noDeviceAttempts), &(configData->decayTime), &(configData->obexTimeout));
		if (noDevicePauseDialog->ExecuteLD(R_DIALOG_NODEVICEPAUSE) == EEikBidOk)
			static_cast<CSMan2Document*>(Document())->saveConfig();
	}
	else if (aCommand == cmdForceEndTask)
	{
		configData->forceEndTask = !configData->forceEndTask;
		static_cast<CSMan2Document*>(Document())->saveConfig();
	}
	else if (aCommand == cmdFlipFlush)
	{
		if (!configData->flipFlush)
		{
			if (iTaskView->snapshotTasks->Count() <= 0)
				iEikonEnv->InfoMsg(R_TBUF_NOSNAPSHOT);
			else
				configData->flipFlush = !configData->flipFlush;
		}
		else
			configData->flipFlush = !configData->flipFlush;
		static_cast<CSMan2Document*>(Document())->saveConfig();
	}
	else if (aCommand == cmdEndTask)
	{
		if (iTaskView->cTaskListBox->SelectionIndexes()->Count() > 0)
		{
			iTaskView->refreshTaskList(TODO_TERMINATE);			
		}
		else
			iEikonEnv->InfoMsg(R_TBUF_NOMARKEDTASKS);
	}
	else if (aCommand == cmdBluejackAutoSave)
	{
		configData->autoSave = !configData->autoSave;
		static_cast<CSMan2Document*>(Document())->saveConfig();
	}
	else if (aCommand == cmdFlushOut)
	{
		flushTasks();
	}
	else if (aCommand == cmdSnapshot)
	{
		CEikDialog* snapshotDialog = new(ELeave) CEikDialog;
		if (snapshotDialog->ExecuteLD(R_DIALOG_SNAPSHOTCONFIRM) == EEikBidYes)
			updateSnapShot();
	}
	else if (aCommand == cmdHotkey)
	{
		CEikDialog* dialog = new(ELeave) CHotkeyDialog(&(configData->iHotkeyDialogResult));
		if (dialog->ExecuteLD(R_DIALOG_HOTKEY) == EEikBidOk)
		{
			iTaskView->ToggleHotKey();
			static_cast<CSMan2Document*>(Document())->saveConfig();
		}
	}
	else if ((aCommand == cmdQuit) || (aCommand == EEikCmdExit))
	{
		if ((aCommand == EEikCmdExit) && (configData->persist))
		{
			// Do nothing
		}
		else
		{

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -