delete_confirm_page.py 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. # -*- coding: utf-8 -*-
  2. import pygame
  3. import os
  4. import shutil
  5. #UI lib
  6. from constants import Width,Height,ICON_TYPES
  7. from page import Page,PageSelector
  8. from label import Label
  9. from util_funcs import midRect
  10. from keys_def import CurKeys, IsKeyStartOrA, IsKeyMenuOrB
  11. from confirm_page import ConfirmPage
  12. from lang_manager import MyLangManager
  13. class DeleteConfirmPage(ConfirmPage):
  14. _FileName = ""
  15. _TrashDir = ""
  16. _ConfirmText = MyLangManager.Tr("ConfirmDeleteQ")
  17. def SetTrashDir(self,d):
  18. self._TrashDir = d
  19. if os.path.isdir(self._TrashDir) == False:
  20. raise IOError("Trash not existed")
  21. def SetFileName(self,fn):
  22. self._FileName = fn
  23. def KeyDown(self,event):
  24. if IsKeyMenuOrB(event.key):
  25. self.ReturnToUpLevelPage()
  26. self._Screen.Draw()
  27. self._Screen.SwapAndShow()
  28. if IsKeyStartOrA(event.key):
  29. try:
  30. os.remove(self._TrashDir+"/"+os.path.basename(self._FileName))
  31. except:
  32. pass
  33. try:
  34. shutil.move(self._FileName, self._TrashDir)
  35. except shutil.Error as e:
  36. if "already exists" in str(e):
  37. self._Screen._MsgBox.SetText("AlreadyExisted")
  38. else:
  39. self._Screen._MsgBox.SetText("Error")
  40. self._Screen._MsgBox.Draw()
  41. self._Screen.SwapAndShow()
  42. else:
  43. self.SnapMsg(MyLangManager.Tr("Deleting"))
  44. self._Screen.Draw()
  45. self._Screen.SwapAndShow()
  46. self.Reset()
  47. pygame.time.delay(300)
  48. self.ReturnToUpLevelPage()
  49. self._Screen.Draw()
  50. self._Screen.SwapAndShow()
  51. print(self._FileName)