More work on the character editor, the skill browser mostly works now
This commit is contained in:
@@ -1,3 +1,4 @@
|
|||||||
from controller.market import Market
|
from controller.market import Market
|
||||||
from controller.fit import Fit
|
from controller.fit import Fit
|
||||||
from controller.attribute import Attribute
|
from controller.attribute import Attribute
|
||||||
|
from controller.character import Character
|
||||||
|
|||||||
@@ -18,6 +18,7 @@
|
|||||||
#===============================================================================
|
#===============================================================================
|
||||||
|
|
||||||
import eos.db
|
import eos.db
|
||||||
|
import eos.types
|
||||||
|
|
||||||
class Character():
|
class Character():
|
||||||
instance = None
|
instance = None
|
||||||
@@ -29,4 +30,18 @@ class Character():
|
|||||||
return cls.instance
|
return cls.instance
|
||||||
|
|
||||||
def getCharacterList(self):
|
def getCharacterList(self):
|
||||||
map(lambda c: c.name, eos.db.getCharacterList())
|
baseChars = [eos.types.Character.getAll0(), eos.types.Character.getAll5()]
|
||||||
|
# Flush incase all0 & all5 weren't in the db yet
|
||||||
|
eos.db.saveddata_session.flush()
|
||||||
|
return map(lambda c: (c.ID, c.name), eos.db.getCharacterList())
|
||||||
|
|
||||||
|
def getSkillGroups(self):
|
||||||
|
marketGroup = eos.db.getMarketGroup(150)
|
||||||
|
return map(lambda mg: (mg.ID, mg.name), marketGroup.children)
|
||||||
|
|
||||||
|
def getSkills(self, groupID):
|
||||||
|
marketGroup = eos.db.getMarketGroup(groupID)
|
||||||
|
skills = []
|
||||||
|
for skill in marketGroup.items:
|
||||||
|
skills.append((skill.ID, skill.name))
|
||||||
|
return skills
|
||||||
|
|||||||
2
eos
2
eos
Submodule eos updated: b557bb7ec5...bd22e5b149
@@ -19,6 +19,7 @@
|
|||||||
|
|
||||||
import wx
|
import wx
|
||||||
from gui import bitmapLoader
|
from gui import bitmapLoader
|
||||||
|
import controller
|
||||||
|
|
||||||
class CharacterEditor (wx.Dialog):
|
class CharacterEditor (wx.Dialog):
|
||||||
def __init__(self, parent):
|
def __init__(self, parent):
|
||||||
@@ -30,7 +31,16 @@ class CharacterEditor (wx.Dialog):
|
|||||||
mainSizer = wx.BoxSizer(wx.VERTICAL)
|
mainSizer = wx.BoxSizer(wx.VERTICAL)
|
||||||
navSizer = wx.BoxSizer(wx.HORIZONTAL)
|
navSizer = wx.BoxSizer(wx.HORIZONTAL)
|
||||||
|
|
||||||
self.skillTreeChoice = wx.Choice(self, wx.ID_ANY)
|
cChar = controller.Character.getInstance()
|
||||||
|
charList = cChar.getCharacterList()
|
||||||
|
|
||||||
|
choices = []
|
||||||
|
self.charIDs = []
|
||||||
|
for ID, name in charList:
|
||||||
|
choices.append(name)
|
||||||
|
self.charIDs.append(ID)
|
||||||
|
|
||||||
|
self.skillTreeChoice = wx.Choice(self, wx.ID_ANY, choices=choices)
|
||||||
navSizer.Add(self.skillTreeChoice, 1, wx.ALL | wx.EXPAND, 5)
|
navSizer.Add(self.skillTreeChoice, 1, wx.ALL | wx.EXPAND, 5)
|
||||||
|
|
||||||
buttons = (("new", wx.ART_NEW),
|
buttons = (("new", wx.ART_NEW),
|
||||||
@@ -57,13 +67,13 @@ class CharacterEditor (wx.Dialog):
|
|||||||
|
|
||||||
self.viewsNBContainer = wx.Notebook(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, 0)
|
self.viewsNBContainer = wx.Notebook(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, 0)
|
||||||
|
|
||||||
sview = SkillTreeView(self.viewsNBContainer)
|
self.sview = SkillTreeView(self.viewsNBContainer)
|
||||||
iview = ImplantsTreeView(self.viewsNBContainer)
|
self.iview = ImplantsTreeView(self.viewsNBContainer)
|
||||||
aview = APIView(self.viewsNBContainer)
|
self.aview = APIView(self.viewsNBContainer)
|
||||||
|
|
||||||
self.viewsNBContainer.AddPage(sview, "Skills")
|
self.viewsNBContainer.AddPage(self.sview, "Skills")
|
||||||
self.viewsNBContainer.AddPage(iview, "Implants")
|
self.viewsNBContainer.AddPage(self.iview, "Implants")
|
||||||
self.viewsNBContainer.AddPage(aview, "API")
|
self.viewsNBContainer.AddPage(self.aview, "API")
|
||||||
|
|
||||||
mainSizer.Add(self.viewsNBContainer, 1, wx.EXPAND | wx.ALL, 5)
|
mainSizer.Add(self.viewsNBContainer, 1, wx.EXPAND | wx.ALL, 5)
|
||||||
|
|
||||||
@@ -94,10 +104,14 @@ class CharacterEditor (wx.Dialog):
|
|||||||
|
|
||||||
def registerEvents(self):
|
def registerEvents(self):
|
||||||
self.Bind(wx.EVT_CLOSE, self.closeEvent)
|
self.Bind(wx.EVT_CLOSE, self.closeEvent)
|
||||||
|
self.skillTreeChoice.Bind(wx.EVT_CHOICE, self.charChanged)
|
||||||
|
|
||||||
def closeEvent(self, event):
|
def closeEvent(self, event):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
def charChanged(self, event):
|
||||||
|
pass
|
||||||
|
|
||||||
class NewCharacter (wx.Dialog):
|
class NewCharacter (wx.Dialog):
|
||||||
def __init__(self, parent):
|
def __init__(self, parent):
|
||||||
wx.Dialog.__init__ (self, parent, id=wx.ID_ANY, title=u"Create new character", pos=wx.DefaultPosition, size=wx.Size(344, 89), style=wx.DEFAULT_DIALOG_STYLE)
|
wx.Dialog.__init__ (self, parent, id=wx.ID_ANY, title=u"Create new character", pos=wx.DefaultPosition, size=wx.Size(344, 89), style=wx.DEFAULT_DIALOG_STYLE)
|
||||||
@@ -133,12 +147,48 @@ class SkillTreeView (wx.Panel):
|
|||||||
|
|
||||||
pmainSizer = wx.BoxSizer(wx.VERTICAL)
|
pmainSizer = wx.BoxSizer(wx.VERTICAL)
|
||||||
|
|
||||||
self.SkillTreeCtrl = wx.TreeCtrl(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TR_DEFAULT_STYLE)
|
self.SkillTreeCtrl = wx.TreeCtrl(self, wx.ID_ANY, style=wx.TR_DEFAULT_STYLE | wx.TR_HIDE_ROOT)
|
||||||
pmainSizer.Add(self.SkillTreeCtrl, 1, wx.EXPAND | wx.ALL, 5)
|
pmainSizer.Add(self.SkillTreeCtrl, 1, wx.EXPAND | wx.ALL, 5)
|
||||||
|
|
||||||
|
self.root = self.SkillTreeCtrl.AddRoot("Skills")
|
||||||
|
self.imageList = wx.ImageList(16, 16)
|
||||||
|
self.SkillTreeCtrl.SetImageList(self.imageList)
|
||||||
|
self.skillBookImageId = self.imageList.Add(bitmapLoader.getBitmap("skill_small", "icons"))
|
||||||
|
|
||||||
|
self.populateSkillTree()
|
||||||
|
|
||||||
|
self.SkillTreeCtrl.Bind(wx.EVT_TREE_ITEM_EXPANDING, self.expandLookup)
|
||||||
|
|
||||||
self.SetSizer(pmainSizer)
|
self.SetSizer(pmainSizer)
|
||||||
self.Layout()
|
self.Layout()
|
||||||
|
|
||||||
|
def populateSkillTree(self):
|
||||||
|
cChar = controller.Character.getInstance()
|
||||||
|
groups = cChar.getSkillGroups()
|
||||||
|
imageId = self.skillBookImageId
|
||||||
|
root = self.root
|
||||||
|
tree = self.SkillTreeCtrl
|
||||||
|
|
||||||
|
for id, name in groups:
|
||||||
|
childId = tree.AppendItem(root, name, imageId, data=wx.TreeItemData(id))
|
||||||
|
tree.AppendItem(childId, "dummy")
|
||||||
|
|
||||||
|
self.SkillTreeCtrl.SortChildren(root)
|
||||||
|
|
||||||
|
def expandLookup(self, event):
|
||||||
|
root = event.Item
|
||||||
|
child, cookie = self.SkillTreeCtrl.GetFirstChild(root)
|
||||||
|
if self.SkillTreeCtrl.GetItemText(child) == "dummy":
|
||||||
|
self.SkillTreeCtrl.Delete(child)
|
||||||
|
|
||||||
|
#Get the real intrestin' stuff
|
||||||
|
cChar = controller.Character.getInstance()
|
||||||
|
for id, name in cChar.getSkills(self.SkillTreeCtrl.GetPyData(root)):
|
||||||
|
iconId = self.skillBookImageId
|
||||||
|
self.SkillTreeCtrl.AppendItem(root, name, iconId, data=wx.TreeItemData(id))
|
||||||
|
|
||||||
|
self.SkillTreeCtrl.SortChildren(root)
|
||||||
|
|
||||||
class ImplantsTreeView (wx.Panel):
|
class ImplantsTreeView (wx.Panel):
|
||||||
def __init__(self, parent):
|
def __init__(self, parent):
|
||||||
wx.Panel.__init__ (self, parent, id=wx.ID_ANY, pos=wx.DefaultPosition, size=wx.Size(500, 300), style=wx.TAB_TRAVERSAL)
|
wx.Panel.__init__ (self, parent, id=wx.ID_ANY, pos=wx.DefaultPosition, size=wx.Size(500, 300), style=wx.TAB_TRAVERSAL)
|
||||||
|
|||||||
@@ -21,7 +21,6 @@ import wx
|
|||||||
from gui import bitmapLoader
|
from gui import bitmapLoader
|
||||||
from gui.mainMenuBar import MainMenuBar
|
from gui.mainMenuBar import MainMenuBar
|
||||||
from gui.additionsPane import AdditionsPane
|
from gui.additionsPane import AdditionsPane
|
||||||
from gui.mainToolBar import MainToolBar
|
|
||||||
from gui.marketBrowser import MarketBrowser
|
from gui.marketBrowser import MarketBrowser
|
||||||
from gui.multiSwitch import MultiSwitch
|
from gui.multiSwitch import MultiSwitch
|
||||||
from gui.statsPane import StatsPane
|
from gui.statsPane import StatsPane
|
||||||
|
|||||||
BIN
icons/skill_small.png
Normal file
BIN
icons/skill_small.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 606 B |
Reference in New Issue
Block a user