delete_confirm_page.py 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  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, IsKeyStartOrA, IsKeyMenuOrB
  12. from confirm_page import ConfirmPage
  13. from lang_manager import MyLangManager
  14. class DeleteConfirmPage(ConfirmPage):
  15. _FileName = ""
  16. _TrashDir = ""
  17. _ConfirmText = MyLangManager.Tr("ConfirmDeleteQ")
  18. def SetTrashDir(self,d):
  19. self._TrashDir = d
  20. if os.path.isdir(self._TrashDir) == False:
  21. raise IOError("Trash not existed")
  22. def SetFileName(self,fn):
  23. self._FileName = fn
  24. def KeyDown(self,event):
  25. if IsKeyMenuOrB(event.key):
  26. self.ReturnToUpLevelPage()
  27. self._Screen.Draw()
  28. self._Screen.SwapAndShow()
  29. if IsKeyStartOrA(event.key):
  30. try:
  31. os.remove(self._TrashDir+"/"+os.path.basename(self._FileName))
  32. except:
  33. pass
  34. try:
  35. shutil.move(self._FileName, self._TrashDir)
  36. except shutil.Error as e:
  37. if "already exists" in str(e):
  38. self._Screen._MsgBox.SetText("AlreadyExisted")
  39. else:
  40. self._Screen._MsgBox.SetText("Error")
  41. self._Screen._MsgBox.Draw()
  42. self._Screen.SwapAndShow()
  43. else:
  44. self.SnapMsg(MyLangManager.Tr("Deleting"))
  45. self._Screen.Draw()
  46. self._Screen.SwapAndShow()
  47. self.Reset()
  48. pygame.time.delay(300)
  49. self.ReturnToUpLevelPage()
  50. self._Screen.Draw()
  51. self._Screen.SwapAndShow()
  52. print(self._FileName)