📄 plxbrowfile.c
字号:
#ifdef __PLXBROW_SUPPORT_HOTPLUG_
if(PMSDC_OK != PlxBrowIsMemCardPluged())
{
if(TRUE == IsScreenPresent(SCR_ID_PLX_BROW_FILE))
GoBackToHistory(SCR_ID_PLX_BROW_FILE);
if ( PMSDC_NONE == PlxBrowIsMemCardPluged())
PLIB_MessageBox(PMBTYPE_WARNING, NULL, (const WCHAR *)get_string(STR_ID_PLX_BROW_INSERTCARD), UI_POPUP_NOTIFYDURATION_TIME);
else
PLIB_NotifyMSDCWrong();
return;
}
#endif //__PLXBROW_SUPPORT_HOTPLUG_
PLIB_ConfirmBox(NULL, (const WCHAR *) get_string(STR_ID_PLX_BROW_FILE_DELETE_CONFIRM), NULL,NULL,
NULL,0, (void*)&nToneId, 0, DelFileConfirmCB);
SetKeyHandler(FileKeyEndHandler,KEY_END,KEY_EVENT_DOWN);
}
/****************************************************************************
* Function static void DelFileConfirmCB(PLIBEVENT event)
* Purpose
* Params
* Return
* Remarks
\****************************************************************************/
static void DelFileConfirmCB(PLIBEVENT event)
{
if(PEVENT_POSITIVE == event)
FileDelLskFunc();
else if( PEVENT_NEGTIVE == event)
FileDelRskFunc();
}
/****************************************************************************
* Function static void EntryDelAllFileConfirmScreen (void)
* Purpose
* Params
* Return
* Remarks
\****************************************************************************/
static void EntryDelAllFileConfirmScreen (void)
{
int nToneId = WARNING_TONE;
#ifdef __PLXBROW_SUPPORT_HOTPLUG_
if(PMSDC_OK != PlxBrowIsMemCardPluged())
{
if(TRUE == IsScreenPresent(SCR_ID_PLX_BROW_FILE))
GoBackToHistory(SCR_ID_PLX_BROW_FILE);
if ( PMSDC_NONE == PlxBrowIsMemCardPluged() )
PLIB_MessageBox(PMBTYPE_WARNING, NULL, (const WCHAR *)get_string(STR_ID_PLX_BROW_INSERTCARD), UI_POPUP_NOTIFYDURATION_TIME);
else
PLIB_NotifyMSDCWrong();
return;
}
#endif //__PLXBROW_SUPPORT_HOTPLUG_
PLIB_ConfirmBox(NULL, (const WCHAR *) get_string(STR_ID_PLX_BROW_FILE_DELETEALL_CONFIRM), NULL,NULL,
NULL,0, (void*)&nToneId, 0, DelAllFileConfirmCB);
SetKeyHandler(FileKeyEndHandler,KEY_END,KEY_EVENT_DOWN);
}
/****************************************************************************
* Function static void DelAllFileConfirmCB(PLIBEVENT event)
* Params
* Return
* Remarks
\****************************************************************************/
static void DelAllFileConfirmCB(PLIBEVENT event)
{
if(PEVENT_POSITIVE == event)
FileDelAllLskFunc();
else if( PEVENT_NEGTIVE == event)
FileDelRskFunc();
}
/****************************************************************************
* Function static void FileDelLskFunc(void)
* Purpose delete the seleted page saved
* Params
* Return
* Remarks
\****************************************************************************/
static void FileDelLskFunc(void)
{
U16 prevScrId;
int flag = 0;
#ifdef __PLXBROW_SUPPORT_HOTPLUG_
if(PMSDC_OK != PlxBrowIsMemCardPluged())
{
if(TRUE == IsScreenPresent(SCR_ID_PLX_BROW_FILE))
GoBackToHistory(SCR_ID_PLX_BROW_FILE);
if ( PMSDC_NONE == PlxBrowIsMemCardPluged() )
PLIB_MessageBox(PMBTYPE_WARNING, NULL, (const WCHAR *)get_string(STR_ID_PLX_BROW_INSERTCARD), UI_POPUP_NOTIFYDURATION_TIME);
else
PLIB_NotifyMSDCWrong();
return;
}
#endif //__PLXBROW_SUPPORT_HOTPLUG_
if(g_curHiliteFileID < 0 || g_curHiliteFileID >= PLXBROW_FILE_SAVEPAGE_MAX_NUM)
return;
if(NULL != g_plxBrowFileStore[g_curHiliteFileID] && FS_NO_ERROR == DeletePageSaved((const WCHAR *) g_plxBrowFileStore[g_curHiliteFileID]))
{
PlxAppFree(g_plxBrowFileStore[g_curHiliteFileID]);
g_plxBrowFileStore[g_curHiliteFileID] = NULL;
ResetFileStore(g_curHiliteFileID);
g_NumOfFileSaved --;
if(g_curHiliteFileID == g_NumOfFileSaved)
g_curHiliteFileID--;
if(g_curHiliteFileID < 0)
g_curHiliteFileID = 0;
flag = 1;
}
if(0 < g_NumOfFileSaved)
GoBack2TheHistory();
else
{
DeInitPlxBrowFile();
if(TRUE == IsScreenPresent(SCR_ID_PLX_BROW_VIEW))
GoBackToHistory(SCR_ID_PLX_BROW_VIEW);
else
{
GetPreviousScrnIdOf(SCR_ID_PLX_BROW_FILE, &prevScrId);
GoBackToHistory(prevScrId);
}
}
if(1 == flag)
PLIB_MessageBox(PMBTYPE_SUCCESS,NULL, (const WCHAR *)get_string(STR_ID_PLX_BROW_DELETE_SUCCESS), UI_POPUP_NOTIFYDURATION_TIME);
else
PLIB_MessageBox(PMBTYPE_ERROR, NULL, (const WCHAR *) GetString(STR_ID_PLX_BROW_FILE_ERR_DELETE), UI_POPUP_NOTIFYDURATION_TIME);
}
/****************************************************************************
* Function static void FileDelAllLskFunc(void)
* Purpose delete all page saved
* Params
* Return
* Remarks
\****************************************************************************/
static void FileDelAllLskFunc(void)
{
int i;
int flag;
int index=0;
U16 prevScrId;
char *szTemp[PLXBROW_FILE_SAVEPAGE_MAX_NUM];
#ifdef __PLXBROW_SUPPORT_HOTPLUG_
if(PMSDC_OK != PlxBrowIsMemCardPluged())
{
if(TRUE == IsScreenPresent(SCR_ID_PLX_BROW_FILE))
GoBackToHistory(SCR_ID_PLX_BROW_FILE);
if ( PMSDC_NONE == PlxBrowIsMemCardPluged())
PLIB_MessageBox(PMBTYPE_WARNING, NULL, (const WCHAR *)get_string(STR_ID_PLX_BROW_INSERTCARD), UI_POPUP_NOTIFYDURATION_TIME);
else
PLIB_NotifyMSDCWrong();
return;
}
#endif //__PLXBROW_SUPPORT_HOTPLUG_
for(i = 0; i< PLXBROW_FILE_SAVEPAGE_MAX_NUM; i++)
{
if(NULL != g_plxBrowFileStore[i] && FS_NO_ERROR == DeletePageSaved((const WCHAR *) g_plxBrowFileStore[i]))
{
PlxAppFree(g_plxBrowFileStore[i]);
g_plxBrowFileStore[i]=NULL;
}
else if(NULL != g_plxBrowFileStore[i])
flag = -1;
}
if(flag == -1)
{
for(i = 0; i< PLXBROW_FILE_SAVEPAGE_MAX_NUM; i++)
{
if(NULL != g_plxBrowFileStore[i])
{
szTemp[index] = g_plxBrowFileStore[i];
index++;
}
}
for(i = 0; i< PLXBROW_FILE_SAVEPAGE_MAX_NUM; i++)
{
if(i >= index)
szTemp[i] = NULL;
if(NULL != szTemp[i])
g_plxBrowFileStore[i] = szTemp[i];
}
}
g_curHiliteFileID = 0;
g_NumOfFileSaved = index;
DeInitPlxBrowFile();
if(TRUE == IsScreenPresent(SCR_ID_PLX_BROW_VIEW))
GoBackToHistory(SCR_ID_PLX_BROW_VIEW);
else
{
if(MMI_TRUE == GetPreviousScrnIdOf(SCR_ID_PLX_BROW_FILE, &prevScrId))
GoBackToHistory(prevScrId);
else
GoBackHistory();
}
// GoBack2TheHistory();
if(flag == -1) // some file cann't be deleted
// DisplayPopup((U8*)get_string(STR_ID_PLX_BROW_FILE_ERR_DELETEALL), IMG_ID_PLX_PUBLIC_SUBMENU_POPFAIL /*IMG_GLOBAL_WARNING*/, 0,UI_POPUP_NOTIFYDURATION_TIME, WARNING_TONE);
PLIB_MessageBox(PMBTYPE_ERROR, NULL, (const WCHAR *) GetString(STR_ID_PLX_BROW_FILE_ERR_DELETEALL), UI_POPUP_NOTIFYDURATION_TIME);
else
PLIB_MessageBox(PMBTYPE_SUCCESS,NULL, (const WCHAR *)get_string(STR_ID_PLX_BROW_DELETE_SUCCESS), UI_POPUP_NOTIFYDURATION_TIME);
}
/****************************************************************************
* Function static void FileDelRskFunc(void)
* Purpose
* Params
* Return
* Remarks
\****************************************************************************/
static void FileDelRskFunc(void)
{
GoBack2TheHistory();
}
/****************************************************************************
* Function int plxBrowGetCurrNumOfFileItem(void)
* Purpose
* Params
* Return
* Remarks
\****************************************************************************/
int plxBrowGetCurrNumOfFileItem(void)
{
return g_NumOfFileSaved;
}
/****************************************************************************
* Function static int DeletePageSaved(const WCHAR* pszWidePageName)
* Purpose delete the selective page saved
* Params
* Return
* Remarks
\****************************************************************************/
static int DeletePageSaved(const WCHAR* pszWidePageName)
{
WCHAR* p;
int nWideNameLen;
char szPageDir[PLXBROW_FILENAME_MAX_LEN];//no more than 14 chars
char *szSavePath;
char *szCurrPath;
int nRet;
FS_HANDLE handle;
FS_DOSDirEntry file_info;
U8 *file_name;
WCHAR szWideChar[7];
if(NULL == pszWidePageName || 0 ==(nWideNameLen = pfnUnicodeStrlen((const S8*)pszWidePageName)))
return -1;
if(NULL == (szSavePath = PlxAppMalloc(PLXBROW_MAX_PATH*2)))
return -1;
if(NULL == (szCurrPath = PlxAppMalloc(PLXBROW_MAX_PATH*2)))
{
PlxAppFree(szSavePath);
return -1;
}
if(NULL == (file_name = PlxAppMalloc(PLXBROW_MAX_PATH*2 + 2)))
{
PlxAppFree(szSavePath);
PlxAppFree(szCurrPath);
return -1;
}
FS_GetCurrentDir((WCHAR *)szSavePath, (UINT) PLXBROW_MAX_PATH);
// FS_SetCurrentDir((const WCHAR*)PLXBROW_FILE_DOWNLOAD_PATH);
for(p = (WCHAR*) pszWidePageName + nWideNameLen; p>pszWidePageName; p--)
{
AnsiiToUnicodeString((S8 *)szWideChar, (S8 *)".");
if(0 == pfnUnicodeStrncmp((const S8*)p, (const S8*)szWideChar, 1))
{
pfnUnicodeStrncpy((S8*)szPageDir,(const S8*)pszWidePageName,(U32)( p-pszWidePageName));
AnsiiToUnicodeString((S8 *)szWideChar, (S8 *)"_files");
pfnUnicodeStrcat((S8*)szPageDir,(const S8*)szWideChar);
break;
}
}
AnsiiToUnicodeString((S8 *)szCurrPath, (S8 *)GetPBUISavePageDirectory());
// AnsiiToUnicodeString((S8 *)szWideChar, (S8 *)PLXBROW_FILE_DOWNLOAD_PATH);
// pfnUnicodeStrcpy((S8*)szCurrPath, (const S8*)szWideChar);
pfnUnicodeStrcat((S8*)szCurrPath,(const S8*)szPageDir);
if(FS_NO_ERROR == FS_SetCurrentDir((const WCHAR*)szCurrPath))
{
AnsiiToUnicodeString((S8 *)szWideChar, (S8 *)"*.*");
if (0 <= (handle = FS_FindFirst((WCHAR *)szWideChar, 0, FS_ATTR_DIR, &file_info, (WCHAR *)file_name, PLXBROW_MAX_PATH)))
{
nRet = FS_Delete((const WCHAR * )file_name);
while(FS_NO_ERROR == FS_FindNext(handle,&file_info,(WCHAR*)file_name,PLXBROW_MAX_PATH))
{
nRet = FS_Delete((const WCHAR *)file_name);
}
}
FS_FindClose(handle);
}
AnsiiToUnicodeString((S8 *)szCurrPath, (S8 *)GetPBUISavePageDirectory());
FS_SetCurrentDir((const WCHAR*)szCurrPath);
nRet = FS_RemoveDir((const WCHAR *) szPageDir);
nRet = FS_Delete((const WCHAR *) pszWidePageName);
FS_SetCurrentDir((const WCHAR*)szSavePath);
PlxAppFree(szSavePath);
PlxAppFree(szCurrPath);
return nRet;
}
/****************************************************************************
* Function static void FileKeyEndHandler(void)
* Purpose
* Params
* Return
* Remarks
\****************************************************************************/
static void FileKeyEndHandler(void)
{
/* int nToneId = WARNING_TONE;
if(TRUE == IsScreenPresent(SCR_ID_PLX_BROW_VIEW))
PLIB_ConfirmBox(NULL, (const WCHAR *) get_string(STR_ID_PLX_BROW_EXIT_CONFIRM), NULL,NULL,
NULL,0, (void*)&nToneId, 0, FileKeyEndExitConfirmCB);
else
*/ ExecGeneralKeyEndHandler(FileKeyEndExitLskFunc);
}
/****************************************************************************
* Function FileKeyEndExitConfirmCB
* Purpose
* Params
* Return
* Remarks
\****************************************************************************/
static void FileKeyEndExitConfirmCB(PLIBEVENT event)
{
if( PEVENT_POSITIVE== event)
FileKeyEndExitLskFunc();
else if(PEVENT_NEGTIVE == event)
GoBackHistory();
}
/****************************************************************************
* Function FileKeyEndExitLskFunc
* Purpose
* Params
* Return
* Remarks
\****************************************************************************/
static void FileKeyEndExitLskFunc(void)
{
// DeInitPlxBrowFile();
// DeInitPlxBrowser();
// DisplayIdleScreen();
PlxBrowExitBrowserAndGoIdle();
}
void ResetSavePageExKeyEndFlag(void)
{
bWaitSavePageExKeyEndFlag = FALSE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -