launcher/sys.py/UI/delete_confirm_page.py
2018-12-02 14:12:13 +08:00

72 lines
1.8 KiB
Python

# -*- coding: utf-8 -*-
import pygame
import os
import shutil
#UI lib
from constants import Width,Height,ICON_TYPES
from page import Page,PageSelector
from label import Label
from fonts import fonts
from util_funcs import midRect
from keys_def import CurKeys
from confirm_page import ConfirmPage
from lang_manager import MyLangManager
class DeleteConfirmPage(ConfirmPage):
_FileName = ""
_TrashDir = ""
_ConfirmText = MyLangManager.Tr("ConfirmDeleteQ")
def SetTrashDir(self,d):
self._TrashDir = d
if os.path.isdir(self._TrashDir) == False:
raise IOError("Trash not existed")
def SetFileName(self,fn):
self._FileName = fn
def KeyDown(self,event):
if event.key == CurKeys["Menu"] or event.key == CurKeys["A"]:
self.ReturnToUpLevelPage()
self._Screen.Draw()
self._Screen.SwapAndShow()
if event.key == CurKeys["B"]:
try:
os.remove(self._TrashDir+"/"+os.path.basename(self._FileName))
except:
pass
try:
shutil.move(self._FileName, self._TrashDir)
except shutil.Error as e:
if "already exists" in str(e):
self._Screen._MsgBox.SetText("AlreadyExisted")
else:
self._Screen._MsgBox.SetText("Error")
self._Screen._MsgBox.Draw()
self._Screen.SwapAndShow()
else:
self.SnapMsg(MyLangManager.Tr("Deleting"))
self._Screen.Draw()
self._Screen.SwapAndShow()
self.Reset()
pygame.time.delay(300)
self.ReturnToUpLevelPage()
self._Screen.Draw()
self._Screen.SwapAndShow()
print(self._FileName)