delete_confirm_page.py 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  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 fonts import fonts
  10. from util_funcs import midRect
  11. from keys_def import CurKeys
  12. from confirm_page import ConfirmPage
  13. class DeleteConfirmPage(ConfirmPage):
  14. _FileName = ""
  15. _TrashDir = ""
  16. _ConfirmText = "Confirm delete?"
  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 event.key == CurKeys["Menu"] or event.key == CurKeys["A"]:
  25. self.ReturnToUpLevelPage()
  26. self._Screen.Draw()
  27. self._Screen.SwapAndShow()
  28. if event.key == CurKeys["B"]:
  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("Already existed")
  38. else:
  39. self._Screen._MsgBox.SetText("Error ")
  40. self._Screen._MsgBox.Draw()
  41. self._Screen.SwapAndShow()
  42. else:
  43. #self._Screen._MsgBox.SetText("Deleteing..")
  44. #self._Screen._MsgBox.Draw()
  45. #self._Screen.SwapAndShow()
  46. self.SnapMsg("Deleteing....")
  47. self._Screen.Draw()
  48. self._Screen.SwapAndShow()
  49. self.Reset()
  50. pygame.time.delay(300)
  51. self.ReturnToUpLevelPage()
  52. self._Screen.Draw()
  53. self._Screen.SwapAndShow()
  54. print(self._FileName)