Removed forgotten breakpoint

This commit is contained in:
Gyedo Jeon 2010-04-30 21:53:27 +00:00
parent 1710254709
commit 3da573803f

View File

@ -1,124 +1,123 @@
""" """
Defines ProtoObjs List UI Defines ProtoObjs List UI
""" """
import wx import wx
import os import os
import cPickle as pickl import cPickle as pickl
from pandac.PandaModules import * from pandac.PandaModules import *
from ProtoObjs import * from ProtoObjs import *
class ProtoDropTarget(wx.PyDropTarget): class ProtoDropTarget(wx.PyDropTarget):
"""Implements drop target functionality to receive files, bitmaps and text""" """Implements drop target functionality to receive files, bitmaps and text"""
def __init__(self, ui): def __init__(self, ui):
wx.PyDropTarget.__init__(self) wx.PyDropTarget.__init__(self)
self.ui = ui self.ui = ui
self.do = wx.DataObjectComposite() # the dataobject that gets filled with the appropriate data self.do = wx.DataObjectComposite() # the dataobject that gets filled with the appropriate data
self.filedo = wx.FileDataObject() self.filedo = wx.FileDataObject()
self.textdo = wx.TextDataObject() self.textdo = wx.TextDataObject()
self.bmpdo = wx.BitmapDataObject() self.bmpdo = wx.BitmapDataObject()
self.do.Add(self.filedo) self.do.Add(self.filedo)
self.do.Add(self.bmpdo) self.do.Add(self.bmpdo)
self.do.Add(self.textdo) self.do.Add(self.textdo)
self.SetDataObject(self.do) self.SetDataObject(self.do)
def OnData(self, x, y, d): def OnData(self, x, y, d):
""" """
Handles drag/dropping files/text or a bitmap Handles drag/dropping files/text or a bitmap
""" """
if self.GetData(): if self.GetData():
df = self.do.GetReceivedFormat().GetType() df = self.do.GetReceivedFormat().GetType()
if df in [wx.DF_UNICODETEXT, wx.DF_TEXT]: if df in [wx.DF_UNICODETEXT, wx.DF_TEXT]:
text = self.textdo.GetText() text = self.textdo.GetText()
# self.editor.ui.protoFontsUI.tree.ChangeHierarchy(text, x, y) # self.editor.ui.protoFontsUI.tree.ChangeHierarchy(text, x, y)
elif df == wx.DF_FILENAME: elif df == wx.DF_FILENAME:
for name in self.filedo.GetFilenames(): for name in self.filedo.GetFilenames():
self.ui.AquireFile(name) self.ui.AquireFile(name)
elif df == wx.DF_BITMAP: elif df == wx.DF_BITMAP:
bmp = self.bmpdo.GetBitmap() bmp = self.bmpdo.GetBitmap()
return d # you must return this return d # you must return this
class ProtoObjsUI(wx.Panel): class ProtoObjsUI(wx.Panel):
def __init__(self, parent, editor, protoObjs, supportedExts): def __init__(self, parent, editor, protoObjs, supportedExts):
wx.Panel.__init__(self, parent) wx.Panel.__init__(self, parent)
self.editor = editor self.editor = editor
self.protoObjs = protoObjs self.protoObjs = protoObjs
self.supportedExts = supportedExts self.supportedExts = supportedExts
self.llist = wx.ListCtrl(self, -1, style=wx.LC_REPORT) self.llist = wx.ListCtrl(self, -1, style=wx.LC_REPORT)
self.llist.InsertColumn(0, "Files") self.llist.InsertColumn(0, "Files")
sizer = wx.BoxSizer(wx.VERTICAL) sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(self.llist, 1, wx.EXPAND, 0) sizer.Add(self.llist, 1, wx.EXPAND, 0)
self.SetSizer(sizer); self.Layout() self.SetSizer(sizer); self.Layout()
parentSizer = wx.BoxSizer(wx.VERTICAL) parentSizer = wx.BoxSizer(wx.VERTICAL)
parentSizer.Add(self, 1, wx.EXPAND, 0) parentSizer.Add(self, 1, wx.EXPAND, 0)
parent.SetSizer(parentSizer); parent.Layout() parent.SetSizer(parentSizer); parent.Layout()
self.opDelete = "Delete" self.opDelete = "Delete"
self.menuItems = list() self.menuItems = list()
self.menuItems.append(self.opDelete) self.menuItems.append(self.opDelete)
self.popupmenu = wx.Menu() self.popupmenu = wx.Menu()
for item in self.menuItems: for item in self.menuItems:
menuItem = self.popupmenu.Append(-1, item) menuItem = self.popupmenu.Append(-1, item)
self.Bind(wx.EVT_MENU, self.onPopupItemSelected, menuItem) self.Bind(wx.EVT_MENU, self.onPopupItemSelected, menuItem)
self.Bind(wx.EVT_CONTEXT_MENU, self.onShowPopup) self.Bind(wx.EVT_CONTEXT_MENU, self.onShowPopup)
self.SetDropTarget(ProtoDropTarget(self)) self.SetDropTarget(ProtoDropTarget(self))
import pdb;pdb.set_trace() for key in self.protoObjs.data.keys():
for key in self.protoObjs.data.keys(): self.add(self.protoObjs.data[key])
self.add(self.protoObjs.data[key])
# All subclasses should implement this method
# All subclasses should implement this method def addObj(self, filename):
def addObj(self, filename): raise NotImplementedError
raise NotImplementedError
def onPopupItemSelected(self, event):
def onPopupItemSelected(self, event): menuItem = self.popupmenu.FindItemById(event.GetId())
menuItem = self.popupmenu.FindItemById(event.GetId()) text = menuItem.GetText()
text = menuItem.GetText() if text == self.opDelete:
if text == self.opDelete: self.remove()
self.remove()
def onShowPopup(self, event):
def onShowPopup(self, event): pos = event.GetPosition()
pos = event.GetPosition() pos = self.ScreenToClient(pos)
pos = self.ScreenToClient(pos) self.PopupMenu(self.popupmenu, pos)
self.PopupMenu(self.popupmenu, pos)
def findLabel(self, text):
def findLabel(self, text): found = False
found = False for index in range(self.llist.GetItemCount()):
for index in range(self.llist.GetItemCount()): itemtext = self.llist.GetItemText(index)
itemtext = self.llist.GetItemText(index) if itemtext == text:
if itemtext == text: return True
return True return found
return found
def remove(self):
def remove(self): index = self.llist.GetFirstSelected()
index = self.llist.GetFirstSelected() if index != -1:
if index != -1: key = self.llist.GetItemText(index)
key = self.llist.GetItemText(index) del(self.protoObjs.data[key])
del(self.protoObjs.data[key]) item = self.llist.DeleteItem(index)
item = self.llist.DeleteItem(index)
def add(self, filename):
def add(self, filename): name = os.path.basename(filename)
name = os.path.basename(filename) for ext in self.supportedExts:
for ext in self.supportedExts: if name.upper().endswith(ext.upper()):
if name.upper().endswith(ext.upper()): if not self.findLabel(name):
if not self.findLabel(name): try:
try: index = self.llist.InsertStringItem(self.llist.GetItemCount(), name)
index = self.llist.InsertStringItem(self.llist.GetItemCount(), name) self.protoObjs.data[name]= filename
self.protoObjs.data[name]= filename self.addObj(filename)
self.addObj(filename) except:
except: pass
pass break
break
def AquireFile(self, filename):
def AquireFile(self, filename): filenameFull = Filename.Filename.fromOsSpecific(filename).getFullpath()
filenameFull = Filename.Filename.fromOsSpecific(filename).getFullpath() self.add(filenameFull)
self.add(filenameFull)