Card lists: custom sort function for rarity

This commit is contained in:
luxick
2017-03-23 14:49:12 +01:00
parent 1dc4a9f701
commit 86d1cc70aa
2 changed files with 24 additions and 0 deletions

View File

@@ -1,4 +1,6 @@
import gi
import util
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk, GdkPixbuf, Pango
@@ -26,8 +28,10 @@ class CardList(Gtk.ScrolledWindow):
if with_filter:
self.filter = self.store.filter_new()
self.filter_and_sort = Gtk.TreeModelSort(self.filter)
self.filter_and_sort.set_sort_func(4, self.compare_rarity, None)
self.list = Gtk.TreeView(self.filter_and_sort)
else:
self.store.set_sort_func(4, self.compare_rarity, None)
self.list = Gtk.TreeView(self.store)
self.add(self.list)
@@ -101,4 +105,16 @@ class CardList(Gtk.ScrolledWindow):
self.list.append_column(col_mana)
self.list.append_column(col_cmc)
def compare_rarity(self, model, row1, row2, user_data):
# Column for rarity
sort_column = 4
value1 = model.get_value(row1, sort_column)
value2 = model.get_value(row2, sort_column)
if util.rarity_dict[value1.lower()] < util.rarity_dict[value2.lower()]:
return -1
elif value1 == value2:
return 0
else:
return 1

View File

@@ -25,6 +25,14 @@ status_bar = None
unsaved_changes = False
rarity_dict = {
"special": 0,
"common": 1,
"uncommon": 2,
"rare": 3,
"mythic rare": 4
}
# region File Access