Search progress shown in progressbar

This commit is contained in:
luxick
2017-02-20 21:54:17 +01:00
parent 3d5802bfc5
commit 20960edd07
3 changed files with 39 additions and 2 deletions

View File

@@ -19,8 +19,18 @@ class MainWindow(Gtk.Window):
# Set reference to main window in util # Set reference to main window in util
util.window = self util.window = self
vbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
self.add(vbox)
self.notebook = Gtk.Notebook() self.notebook = Gtk.Notebook()
self.add(self.notebook)
vbox.pack_start(self.notebook, True, True, 0)
self.status_bar = Gtk.Statusbar()
self.status_bar.set_no_show_all(True)
vbox.pack_start(self.status_bar, False, False, 0)
# Set reference to status bar in util
util.status_bar = self.status_bar
util.push_status("Application started")
self.collectionView = Gtk.Box() self.collectionView = Gtk.Box()
self.collectionView.add(collection.CollectionView()) self.collectionView.add(collection.CollectionView())
@@ -31,6 +41,8 @@ class MainWindow(Gtk.Window):
self.deckView = Gtk.Box() self.deckView = Gtk.Box()
self.deckView.add(Gtk.Label("View and organize your Decklists!")) self.deckView.add(Gtk.Label("View and organize your Decklists!"))
self.notebook.append_page(self.searchView, Gtk.Label("Search")) self.notebook.append_page(self.searchView, Gtk.Label("Search"))
self.notebook.append_page(self.collectionView, Gtk.Label("Collection")) self.notebook.append_page(self.collectionView, Gtk.Label("Collection"))
self.notebook.append_page(self.deckView, Gtk.Label("Decks")) self.notebook.append_page(self.deckView, Gtk.Label("Decks"))

View File

@@ -24,9 +24,14 @@ class SearchView(Gtk.Grid):
self.searchbutton.connect("clicked", self.online_search_clicked) self.searchbutton.connect("clicked", self.online_search_clicked)
self.searchEntryLabel = Gtk.Label(xalign=0, yalign=0) self.searchEntryLabel = Gtk.Label(xalign=0, yalign=0)
self.searchEntryLabel.set_markup("<big>Search for Cards:</big>") self.searchEntryLabel.set_markup("<big>Search for Cards:</big>")
self.progressbar = Gtk.ProgressBar()
self.progressbar.set_no_show_all(True)
self.searchbox.add(self.searchEntryLabel) self.searchbox.add(self.searchEntryLabel)
self.searchbox.add(self.searchEntry) self.searchbox.add(self.searchEntry)
self.searchbox.add(self.searchbutton) self.searchbox.add(self.searchbutton)
self.searchbox.add(self.progressbar)
self.searchbox.add(Gtk.HSeparator()) self.searchbox.add(Gtk.HSeparator())
# Filters # Filters
@@ -153,6 +158,7 @@ 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)
def online_search_clicked(self, button): def online_search_clicked(self, button):
# Clear old data from liststore # Clear old data from liststore
@@ -180,6 +186,7 @@ class SearchView(Gtk.Grid):
# 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)
try: try:
self.cards = Card.where(name=term)\ self.cards = Card.where(name=term)\
.where(colorIdentity=','.join(colorlist)) \ .where(colorIdentity=','.join(colorlist)) \
@@ -217,6 +224,13 @@ class SearchView(Gtk.Grid):
# Show count of removed duplicates # Show count of removed duplicates
print("Removed " + str(duplicatecounter) + " duplicate entries") print("Removed " + str(duplicatecounter) + " duplicate entries")
loadprogress_step = 1 / len(self.cards)
progress = 0.0
GObject.idle_add(self.progressbar.set_visible, True, priorty=GObject.PRIORITY_DEFAULT)
GObject.idle_add(self.progressbar.set_fraction, 0.0, priorty=GObject.PRIORITY_DEFAULT)
GObject.idle_add(util.push_status, "Loading cards...", priorty=GObject.PRIORITY_DEFAULT)
for card in self.cards: for card in self.cards:
if card.multiverse_id is not None: if card.multiverse_id is not None:
print("Found: " + card.name print("Found: " + card.name
@@ -227,11 +241,17 @@ class SearchView(Gtk.Grid):
card.name, card.name,
card.original_text, card.original_text,
util.create_mana_icons(card.mana_cost)]) util.create_mana_icons(card.mana_cost)])
# update progress bar
progress += loadprogress_step
GObject.idle_add(self.progressbar.set_fraction, progress, priorty=GObject.PRIORITY_DEFAULT)
print("") print("")
# Reload image cache to include new cards # Reload image cache to include new cards
util.reload_image_cache() util.reload_image_cache()
# Reactivate search controls # Reactivate search controls
GObject.idle_add(self.do_activate_controls, True, priority=GObject.PRIORITY_DEFAULT) GObject.idle_add(self.do_activate_controls, True, priority=GObject.PRIORITY_DEFAULT)
GObject.idle_add(util.push_status, "", priorty=GObject.PRIORITY_DEFAULT)
# Hide Progress bar
GObject.idle_add(self.progressbar.set_visible, False, priorty=GObject.PRIORITY_DEFAULT)
def on_card_selected(self, selection): def on_card_selected(self, selection):
(model, pathlist) = selection.get_selected_rows() (model, pathlist) = selection.get_selected_rows()
@@ -271,4 +291,4 @@ class SearchView(Gtk.Grid):
if isinstance(widget, Gtk.ToggleButton): if isinstance(widget, Gtk.ToggleButton):
widget.toggled() widget.toggled()
# Set default rarity filter to "Any" # Set default rarity filter to "Any"
self.rarity_combobox.set_active(0) self.rarity_combobox.set_active(0)

View File

@@ -11,6 +11,11 @@ from urllib import request
imagecache = [] imagecache = []
manaicons ={} manaicons ={}
window = None window = None
status_bar = None
def push_status(msg):
status_bar.push(0, msg)
def show_message(title, message): def show_message(title, message):