diff --git a/mtg-collector/search.py b/mtg-collector/search.py index 262c18a..a1b6d11 100644 --- a/mtg-collector/search.py +++ b/mtg-collector/search.py @@ -88,6 +88,7 @@ class SearchView(Gtk.Grid): self.set_store.append(["", "Any"]) for set in util.set_list: self.set_store.append([set.code, set.name]) + self.set_combo = Gtk.ComboBox.new_with_model(self.set_store) self.set_combo.pack_start(renderer_text, True) self.set_combo.add_attribute(renderer_text, "text", 1) @@ -96,9 +97,13 @@ class SearchView(Gtk.Grid): self.set_combo.set_hexpand(False) # Autocomplete search in Set Combobox - # completer = Gtk.EntryCompletion() - # completer.set_model(self.set_store) - # completer.set_text_column(1) + completer = Gtk.EntryCompletion() + completer.set_model(self.set_store) + completer.set_text_column(1) + + self.set_entry = Gtk.Entry() + self.set_entry.set_completion(completer) + # completer.connect("match-selected", self.match_selected) # self.set_combo.get_child().set_completion(completer) @@ -124,7 +129,7 @@ class SearchView(Gtk.Grid): self.filters_grid.attach(self.type_combo, 1, 2, 1, 1) self.filters_grid.attach(set_label, 0, 3, 1, 1) - self.filters_grid.attach(self.set_combo, 1, 3, 1, 1) + self.filters_grid.attach(self.set_entry, 1, 3, 1, 1) self.filters_title = Gtk.Label(xalign=0, yalign=0) self.filters_title.set_markup("Filter search results") @@ -283,8 +288,13 @@ class SearchView(Gtk.Grid): if typefilter == "Any": typefilter = "" - tree_iter = self.set_combo.get_active_iter() - setfilter = self.set_store.get_value(tree_iter, 0) + # tree_iter = self.set_combo.get_active_iter() + set_filter = "" + if not self.set_entry.get_text() == "": + for row in self.set_store: + if row[1] == self.set_entry.get_text(): + set_filter = row[0] + # Load card info from internet print("\nStart online search") @@ -293,7 +303,7 @@ class SearchView(Gtk.Grid): self.cards = Card.where(name=term) \ .where(colorIdentity=",".join(colorlist)) \ .where(types=typefilter) \ - .where(set=setfilter) \ + .where(set=set_filter) \ .where(rarity=rarityfilter) \ .where(pageSize=50) \ .where(page=1).all() @@ -366,8 +376,8 @@ class SearchView(Gtk.Grid): self.add_delete_button.set_label("Remove from Library") self.add_delete_button.modify_bg(Gtk.StateType.NORMAL, config.red_color) - def _match_selected(self, completion, model, iter): - self.set_combo.set_active_iter(iter) + # def _match_selected(self, completion, model, iter): + # self.set_combo.set_active_iter(iter) def _do_show_no_results(self, searchterm): # Should move to main UI, so parent can be used @@ -386,7 +396,7 @@ class SearchView(Gtk.Grid): # Set default rarity and type filters to "Any" self.rarity_combo.set_active(0) self.type_combo.set_active(0) - self.set_combo.set_active(0) + #self.set_combo.set_active(0) def _do_activate_controls(self, active): self.searchEntry.set_editable(active) @@ -400,7 +410,8 @@ class SearchView(Gtk.Grid): self.colorless_mana_button.set_sensitive(active) self.rarity_combo.set_sensitive(active) self.type_combo.set_sensitive(active) - self.set_combo.set_sensitive(active) + self.set_entry.set_sensitive(active) + self.set_entry.set_editable(active) def _get_color_filter(self): color_list = [] diff --git a/mtg-collector/util.py b/mtg-collector/util.py index a8eeb61..61187a2 100644 --- a/mtg-collector/util.py +++ b/mtg-collector/util.py @@ -12,12 +12,11 @@ gi.require_version('Gtk', '3.0') # Locally stored images for faster loading times imagecache = [] manaicons = {} +set_list = [] # Card library object library = {} -set_list = [] - window = None status_bar = None