From eb4dce1419776a183cad409b3f45493bcf1f440b Mon Sep 17 00:00:00 2001 From: ryan Date: Tue, 20 Apr 2010 15:10:21 -0600 Subject: [PATCH] Added scrollable skill list in character window. Still needs cleaning up, but it works. --- .gitignore | 2 ++ src/mevemon.py | 9 ++++++++ src/ui/fremantle/ui.py | 60 +++++++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 70 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 3ff6e8c..d0a79ba 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,4 @@ *.py~ *.pyo +*.swp +*~ diff --git a/src/mevemon.py b/src/mevemon.py index bf8448c..c53f756 100644 --- a/src/mevemon.py +++ b/src/mevemon.py @@ -141,6 +141,15 @@ class mEveMon(): charID = self.char_name2id(char_name) return fetchimg.portrait_filename(charID, size) + def get_skill_tree(self): + try: + tree = self.cached_api.eve.SkillTree() + except eveapi.Error, e: + print e + return None + + return tree + if __name__ == "__main__": app = mEveMon() app.run() diff --git a/src/ui/fremantle/ui.py b/src/ui/fremantle/ui.py index 6900389..58da3d5 100644 --- a/src/ui/fremantle/ui.py +++ b/src/ui/fremantle/ui.py @@ -68,6 +68,8 @@ class mEveMonUI(): hildon.hildon_gtk_window_set_progress_indicator(win, 0) def build_window(self, treeview, path, view_column): + # TODO: this is a really long and ugly function, split it up somehow + win = hildon.StackableWindow() win.show_all() hildon.hildon_gtk_window_set_progress_indicator(win, 1) @@ -129,11 +131,67 @@ class mEveMonUI(): vbox.pack_start(hbox, False, False, 0) vbox.pack_start(skillLabel, False, False, 5) + skills_treeview = hildon.GtkTreeView(gtk.HILDON_UI_MODE_NORMAL) + + skills_model = self.create_skills_model(sheet) + skills_treeview.set_model(skills_model) + + self.add_columns_to_skills_view(skills_treeview) + + vbox.pack_start(skills_treeview, False, False, 0) + win.add(pannable_area) win.show_all() hildon.hildon_gtk_window_set_progress_indicator(win, 0) + def add_columns_to_skills_view(self, treeview): + #Column 0 for the treeview + renderer = gtk.CellRendererText() + column = gtk.TreeViewColumn('Skill Name', renderer, text=0) + column.set_property("expand", True) + treeview.append_column(column) + + #Column 1 for the treeview + renderer = gtk.CellRendererText() + column = gtk.TreeViewColumn('Skill Info', renderer, text=1) + column.set_property("expand", True) + treeview.append_column(column) + + def create_skills_model(self, sheet): + + lstore = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING) + + skilltree = self.controller.get_skill_tree() + + sp = [0, 250, 1414, 8000, 45255, 256000] + + for g in skilltree.skillGroups: + + skills_trained_in_this_group = False + + for skill in g.skills: + + trained = sheet.skills.Get(skill.typeID, False) + + if trained: + + if not skills_trained_in_this_group: + + #TODO: add as a heading/category + skills_trained_in_this_group = True + + # add row for this skill + liter = lstore.append() + lstore.set(liter, 0, "%s (Rank %d)" % (skill.typeName, skill.rank), + 1, "SP: %d Level %d" % + (trained.skillpoints, + trained.level)) + + + return lstore + + def create_char_model(self): lstore = gtk.ListStore(gtk.gdk.Pixbuf, gobject.TYPE_STRING) @@ -171,7 +229,7 @@ class mEveMonUI(): #Column 1 for the treeview renderer = gtk.CellRendererText() - column = gtk.TreeViewColumn('title', renderer, text=1) + column = gtk.TreeViewColumn('Character Name', renderer, text=1) column.set_property("expand", True) treeview.append_column(column) -- 1.7.9.5