4 class CharacterListModel(gtk.ListStore):
5 C_PORTRAIT, C_NAME = range(2)
7 def __init__(self, controller):
8 gtk.ListStore.__init__(self, gtk.gdk.Pixbuf, str)
9 self.controller = controller
10 # should we do this on initialization?
13 def get_characters(self):
16 char_list = self.controller.get_characters()
18 for name, icon in char_list:
20 self.set(liter, self.C_PORTRAIT, self._set_pix(icon), self.C_NAME, name)
22 def _set_pix(self, filename):
23 pixbuf = gtk.gdk.pixbuf_new_from_file(filename)
27 class CharacterSkillsModel(gtk.ListStore):
28 C_NAME, C_RANK, C_SKILLPOINTS, C_LEVEL = range(4)
30 SP = [0, 250, 1414, 8000, 45255, 256000]
32 def __init__(self, controller, charID):
33 gtk.ListStore.__init__(self, str, str, str, str)
34 self.controller = controller
41 self.sheet = self.controller.get_char_sheet(self.charID)
43 skilltree = self.controller.get_skill_tree()
45 for g in skilltree.skillGroups:
47 skills_trained_in_this_group = False
49 for skill in g.skills:
51 trained = self.sheet.skills.Get(skill.typeID, False)
55 if not skills_trained_in_this_group:
57 #TODO: add as a heading/category
58 skills_trained_in_this_group = True
60 # add row for this skill
62 self.set(liter, self.C_NAME, "%s" % skill.typeName,
63 self.C_RANK, "<small>(Rank %d)</small>" % skill.rank,
64 self.C_SKILLPOINTS, "SP: %d" % trained.skillpoints,
65 self.C_LEVEL, "Level %d" % trained.level)