diff --git a/mtg-collector/cardlist.py b/mtg-collector/cardlist.py index e757594..d304870 100644 --- a/mtg-collector/cardlist.py +++ b/mtg-collector/cardlist.py @@ -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 + diff --git a/mtg-collector/util.py b/mtg-collector/util.py index a61a2d9..a04b1c3 100644 --- a/mtg-collector/util.py +++ b/mtg-collector/util.py @@ -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