Skip to content

Commit

Permalink
Made the delete key functional
Browse files Browse the repository at this point in the history
  • Loading branch information
Adubbz committed Feb 17, 2024
1 parent bb9d78d commit 1dbe150
Showing 1 changed file with 42 additions and 31 deletions.
73 changes: 42 additions & 31 deletions mymcplusplus/gui/gui.py
Original file line number Diff line number Diff line change
Expand Up @@ -190,6 +190,8 @@ def __init__(self, parent, title, mcname = None):
panel_sizer.Add(splitter_window, wx.EXPAND, wx.EXPAND)
panel.SetSizer(panel_sizer)

panel.Bind(wx.EVT_CHAR_HOOK, self.evt_key_pressed)

info_win = wx.Window(splitter_window)
icon_win = IconWindow(info_win, self)
if icon_win.failed:
Expand Down Expand Up @@ -293,6 +295,45 @@ def open_mc(self, filename):
self.SetTitle(filename + " - " + self.title)
self.refresh()

def delete_selected(self):
mc = self.mc
if mc == None:
return

selected = self.dirlist.selected
dirtable = self.dirlist.dirtable

dirnames = [dirtable[i].dirent[8].decode("ascii")
for i in selected]
if len(selected) == 1:
title = dirtable[list(selected)[0]].title
s = dirnames[0] + " (" + utils.single_title(title) + ")"
else:
s = ", ".join(dirnames)
if len(s) > 200:
s = s[:200] + "..."
r = self.message_box("Are you sure you want to delete "
+ s + "?",
"Delete Save File Confirmation",
wx.YES_NO)
if r != wx.YES:
return

for dn in dirnames:
try:
mc.rmdir("/" + dn)
except EnvironmentError as value:
self.mc_error(value, dn)

mc.check()
self.refresh()

def evt_key_pressed(self, event):
keycode = event.GetUnicodeKey()

if keycode == wx.WXK_DELETE:
self.delete_selected()

def evt_menu_open(self, event):
self.import_menu_item.Enable(self.mc is not None)
selected = self.mc is not None and len(self.dirlist.selected) > 0
Expand Down Expand Up @@ -512,37 +553,7 @@ def evt_cmd_import(self, event):
self.refresh()

def evt_cmd_delete(self, event):
mc = self.mc
if mc == None:
return

selected = self.dirlist.selected
dirtable = self.dirlist.dirtable

dirnames = [dirtable[i].dirent[8].decode("ascii")
for i in selected]
if len(selected) == 1:
title = dirtable[list(selected)[0]].title
s = dirnames[0] + " (" + utils.single_title(title) + ")"
else:
s = ", ".join(dirnames)
if len(s) > 200:
s = s[:200] + "..."
r = self.message_box("Are you sure you want to delete "
+ s + "?",
"Delete Save File Confirmation",
wx.YES_NO)
if r != wx.YES:
return

for dn in dirnames:
try:
mc.rmdir("/" + dn)
except EnvironmentError as value:
self.mc_error(value, dn)

mc.check()
self.refresh()
self.delete_selected()

def evt_cmd_ascii(self, event):
self.config.set_ascii(not self.config.get_ascii())
Expand Down

0 comments on commit 1dbe150

Please sign in to comment.