New filter: Card type
This commit is contained in:
@@ -67,14 +67,26 @@ class SearchView(Gtk.Grid):
|
|||||||
self.rarity_store.append(["uncommon", "Uncommon"])
|
self.rarity_store.append(["uncommon", "Uncommon"])
|
||||||
self.rarity_store.append(["rare", "Rare"])
|
self.rarity_store.append(["rare", "Rare"])
|
||||||
self.rarity_store.append(["mythic rare", "Mythic Rare"])
|
self.rarity_store.append(["mythic rare", "Mythic Rare"])
|
||||||
self.rarity_combobox = Gtk.ComboBox.new_with_model(self.rarity_store)
|
self.rarity_combo = Gtk.ComboBox.new_with_model(self.rarity_store)
|
||||||
renderer_text = Gtk.CellRendererText()
|
renderer_text = Gtk.CellRendererText()
|
||||||
self.rarity_combobox.pack_start(renderer_text, True)
|
self.rarity_combo.pack_start(renderer_text, True)
|
||||||
self.rarity_combobox.add_attribute(renderer_text, "text", 1)
|
self.rarity_combo.add_attribute(renderer_text, "text", 1)
|
||||||
|
|
||||||
self.rarity_control = Gtk.Grid(row_spacing=5, column_spacing=5)
|
type_label = Gtk.Label("Type", xalign=0)
|
||||||
self.rarity_control.attach(rarity_label, 0, 0, 1, 1)
|
self.type_store = Gtk.ListStore(str)
|
||||||
self.rarity_control.attach(self.rarity_combobox, 1, 0, 1, 1)
|
types = [ "Any", "Creature", "Artifact", "Instant",
|
||||||
|
"Aura", "Enchantment", "Sorcery", "Land", "Planeswalker"]
|
||||||
|
for cardtype in types:
|
||||||
|
self.type_store.append([cardtype])
|
||||||
|
self.type_combo = Gtk.ComboBox.new_with_model(self.type_store)
|
||||||
|
self.type_combo.pack_start(renderer_text, True)
|
||||||
|
self.type_combo.add_attribute(renderer_text, "text", 0)
|
||||||
|
|
||||||
|
self.additional_filters = Gtk.Grid(row_spacing=5, column_spacing=5)
|
||||||
|
self.additional_filters.attach(rarity_label, 0, 0, 1, 1)
|
||||||
|
self.additional_filters.attach(self.rarity_combo, 1, 0, 1, 1)
|
||||||
|
self.additional_filters.attach(type_label, 0, 1, 1, 1)
|
||||||
|
self.additional_filters.attach(self.type_combo, 1 ,1, 1, 1)
|
||||||
|
|
||||||
self.filters_title = Gtk.Label(xalign=0, yalign=0)
|
self.filters_title = Gtk.Label(xalign=0, yalign=0)
|
||||||
self.filters_title.set_markup("<big>Filter search results</big>")
|
self.filters_title.set_markup("<big>Filter search results</big>")
|
||||||
@@ -83,7 +95,7 @@ class SearchView(Gtk.Grid):
|
|||||||
margin_end=5, margin_start=5, margin_top=5, margin_bottom=5)
|
margin_end=5, margin_start=5, margin_top=5, margin_bottom=5)
|
||||||
self.filters.add(self.filters_title)
|
self.filters.add(self.filters_title)
|
||||||
self.filters.add(self.color_chooser)
|
self.filters.add(self.color_chooser)
|
||||||
self.filters.add(self.rarity_control)
|
self.filters.add(self.additional_filters)
|
||||||
# Set all Buttons active
|
# Set all Buttons active
|
||||||
self.do_init_filter_controls()
|
self.do_init_filter_controls()
|
||||||
|
|
||||||
@@ -158,7 +170,8 @@ class SearchView(Gtk.Grid):
|
|||||||
self.green_mana_button.set_sensitive(active)
|
self.green_mana_button.set_sensitive(active)
|
||||||
self.white_mana_button.set_sensitive(active)
|
self.white_mana_button.set_sensitive(active)
|
||||||
self.colorless_mana_button.set_sensitive(active)
|
self.colorless_mana_button.set_sensitive(active)
|
||||||
self.rarity_combobox.set_sensitive(active)
|
self.rarity_combo.set_sensitive(active)
|
||||||
|
self.type_combo.set_sensitive(active)
|
||||||
|
|
||||||
def online_search_clicked(self, button):
|
def online_search_clicked(self, button):
|
||||||
# Clear old data from liststore
|
# Clear old data from liststore
|
||||||
@@ -181,15 +194,21 @@ class SearchView(Gtk.Grid):
|
|||||||
|
|
||||||
# Get filter rules
|
# Get filter rules
|
||||||
colorlist = self.get_color_filter()
|
colorlist = self.get_color_filter()
|
||||||
tree_iter = self.rarity_combobox.get_active_iter()
|
tree_iter = self.rarity_combo.get_active_iter()
|
||||||
rarityfilter = self.rarity_store.get_value(tree_iter, 0)
|
rarityfilter = self.rarity_store.get_value(tree_iter, 0)
|
||||||
|
|
||||||
|
tree_iter = self.type_combo.get_active_iter()
|
||||||
|
typefilter = self.type_store.get_value(tree_iter, 0)
|
||||||
|
if typefilter == "Any":
|
||||||
|
typefilter = ""
|
||||||
|
|
||||||
# Load card info from internet
|
# Load card info from internet
|
||||||
print("\nStart online search")
|
print("\nStart online search")
|
||||||
GObject.idle_add(util.push_status, "Searching for cards", priorty=GObject.PRIORITY_DEFAULT)
|
GObject.idle_add(util.push_status, "Searching for cards", priorty=GObject.PRIORITY_DEFAULT)
|
||||||
try:
|
try:
|
||||||
self.cards = Card.where(name=term)\
|
self.cards = Card.where(name=term)\
|
||||||
.where(colorIdentity=','.join(colorlist)) \
|
.where(colorIdentity=",".join(colorlist)) \
|
||||||
|
.where(types=typefilter)\
|
||||||
.where(rarity=rarityfilter) \
|
.where(rarity=rarityfilter) \
|
||||||
.where(pageSize=50)\
|
.where(pageSize=50)\
|
||||||
.where(page=1).all()
|
.where(page=1).all()
|
||||||
@@ -235,6 +254,7 @@ class SearchView(Gtk.Grid):
|
|||||||
if card.multiverse_id is not None:
|
if card.multiverse_id is not None:
|
||||||
print("Found: " + card.name
|
print("Found: " + card.name
|
||||||
+ " (" + card.multiverse_id.__str__() + ")")
|
+ " (" + card.multiverse_id.__str__() + ")")
|
||||||
|
print("Types: " + str(card.type))
|
||||||
|
|
||||||
self.store.append([card.multiverse_id,
|
self.store.append([card.multiverse_id,
|
||||||
util.load_card_image(card, 63 * 2, 88 * 2),
|
util.load_card_image(card, 63 * 2, 88 * 2),
|
||||||
@@ -271,13 +291,13 @@ class SearchView(Gtk.Grid):
|
|||||||
# Go through mana color buttons an get the active filters
|
# Go through mana color buttons an get the active filters
|
||||||
for widget in self.color_chooser:
|
for widget in self.color_chooser:
|
||||||
if isinstance(widget, Gtk.ToggleButton):
|
if isinstance(widget, Gtk.ToggleButton):
|
||||||
if not widget.get_active():
|
if widget.get_active():
|
||||||
colorlist.append(widget.get_name())
|
colorlist.append(widget.get_name())
|
||||||
return colorlist
|
return colorlist
|
||||||
|
|
||||||
def mana_toggled(self, toggle_button):
|
def mana_toggled(self, toggle_button):
|
||||||
iconname = ""
|
iconname = ""
|
||||||
if not toggle_button.get_active():
|
if toggle_button.get_active():
|
||||||
iconname = "{" + toggle_button.get_name() + "}"
|
iconname = "{" + toggle_button.get_name() + "}"
|
||||||
else:
|
else:
|
||||||
iconname = "{" + toggle_button.get_name() + "_alt}"
|
iconname = "{" + toggle_button.get_name() + "_alt}"
|
||||||
@@ -290,5 +310,7 @@ class SearchView(Gtk.Grid):
|
|||||||
for widget in self.color_chooser:
|
for widget in self.color_chooser:
|
||||||
if isinstance(widget, Gtk.ToggleButton):
|
if isinstance(widget, Gtk.ToggleButton):
|
||||||
widget.toggled()
|
widget.toggled()
|
||||||
# Set default rarity filter to "Any"
|
widget.set_active(False)
|
||||||
self.rarity_combobox.set_active(0)
|
# Set default rarity and type filters to "Any"
|
||||||
|
self.rarity_combo.set_active(0)
|
||||||
|
self.type_combo.set_active(0)
|
||||||
|
|||||||
Reference in New Issue
Block a user