„Szerkesztő:DhanakBot/szulhalGUI.py” változatai közötti eltérés
Tartalom törölve Tartalom hozzáadva
további újítások |
? magam sem tudom... |
||
5. sor:
"""
import sys, sre, gzip, wx
import wx.lib.mixins.listctrl as listmix
17. sor:
self.people = people
self.good = [True] * len(people)
self.parent = parent
wx.ListCtrl.__init__(self, parent, ID, pos, size,
style = wx.LC_REPORT |
63 ⟶ 64 sor:
self.good[selected] = not self.good[selected]
self.RefreshItem(selected)
def loadFrom(self, fileName):
f = gzip.open(fileName)
# [:] to replace list contents, not the list references !!!
self.people[:], self.good[:] = map(eval, f.readlines())
self.RefreshAll()
except IOError, e:
self.errorMessage('Cannot open file %s for reading:\n%s' % (fileName, str(e)))
except StandardError, e:
self.errorMessage('Error wile parsing %s:\n%s' % (fileName, str(e)))
def saveTo(self, fileName):
try:
f = gzip.open(fileName, "w")
f.writelines([repr(self.people), '\n', repr(self.good), '\n'])
f.close()
self.RefreshAll()
except IOError, e:
self.errorMessage('Cannot open file %s for writing:\n%s' % (fileName, str(e)))
def RefreshAll(self):
itemCount = len(self.people)
self.SetItemCount(itemCount)
self.RefreshItems(0, itemCount-1)
def errorMessage(self, msg):
dlg = wx.MessageDialog(self.parent, msg, 'Error', wx.OK|wx.ICON_ERROR)
dlg.ShowModal()
dlg.Destroy()
class SzulHalGUI(wx.App):
def __init__(self, people=[], savedState=None):
self.people = people
self.savedState = savedState
self.okayed = False
wx.App.__init__(self)
97 ⟶ 134 sor:
btn = wx.Button(mainFrame, i-1, listCtrl.columns[i][0])
sizer.Add(btn, 0, wx.ALL, 5)
sizer.AddSpacer((40,0))
sizer.Add(wx.Button(mainFrame, wx.ID_COPY, "* -> †"), 0, wx.ALL, 5)
mainSizer.Add(sizer, 0, wx.CENTER | wx.ALL, 5)
# Create stock buttons
sizer.Add(wx.Button(mainFrame, wx.ID_CANCEL), 0, wx.EXPAND | wx.ALL, 5)
▲ btnSizer.Realize()
mainSizer.Add(sizer, 0, wx.ALIGN_RIGHT | wx.ALL, 5)
# Bind events
113 ⟶ 153 sor:
mainFrame.SetSizerAndFit(mainSizer)
mainFrame.Show()
# Load saved state if requested
if self.savedState:
self.listCtrl.loadFrom(self.savedState)
self.listCtrl.SetFocus()
# Select first person
if self.people:
self.listCtrl.Select(0)
return True
127 ⟶ 177 sor:
for color, ptrn in \
{ "#ffaaaa": sre.escape(name),
"#ffaaff":
"#aaffaa":
"#aaffff": desc and sre.escape(desc)
}.items():
137 ⟶ 187 sor:
def datere(self, year, day):
return (year and "(\[\[)?" + year + "(\]\])?\.?" or "") + \
(year and day and " *" or "") + \
(day and "(\[\[)?" + day + "(\]\])?\.?" or "")
wildcards = "Python data dump (*.pdd)|*.pdd|All files (*)|*"
def buttonPress(self, event):
if event.GetId() in [wx.ID_OK, wx.ID_CANCEL]:
self.okayed = event.GetId() == wx.ID_OK
if (self.okayed):
self.listCtrl.saveTo('szulhal.pdd')
self.mainFrame.Hide()
wx.Exit()
elif event.GetId() == wx.ID_OPEN:
dlg = wx.FileDialog(self.mainFrame, "Open saved state",
wildcard=self.wildcards, style=wx.OPEN|wx.CHANGE_DIR)
if dlg.ShowModal() == wx.ID_OK:
self.listCtrl.loadFrom(dlg.GetPath())
dlg.Destroy()
elif event.GetId() == wx.ID_SAVE:
dlg = wx.FileDialog(self.mainFrame, "Save state as ...",
wildcard=self.wildcards, style=wx.SAVE)
if dlg.ShowModal() == wx.ID_OK:
self.listCtrl.saveTo(dlg.GetPath())
dlg.Destroy()
else:
selected = self.listCtrl.GetNextItem(-1, state=wx.LIST_STATE_SELECTED)
if selected >= 0:
else:
markedText = self.textCtrl.GetStringSelection()
if not markedText: markedText = None
self.people[selected][1][event.GetId()] = markedText
self.listCtrl.RefreshItem(selected)
self.detailItem(selected)
▲ pass
event.Skip()
|