📄 sman.cpp
字号:
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 + -