From 7a946619f92cb74c9ed53553e9728fde7cf7ffc8 Mon Sep 17 00:00:00 2001 From: luxick Date: Wed, 12 Apr 2017 15:54:43 +0200 Subject: [PATCH] Single card window --- .gitignore | 92 +++++++++++++++++++++++++++++++ cardvault/gui/detailswindow.glade | 28 ++++++---- cardvault/search_funct.py | 1 + cardvault/util.py | 2 + cardvault/window.py | 38 ++++++++++++- 5 files changed, 146 insertions(+), 15 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7d35891 --- /dev/null +++ b/.gitignore @@ -0,0 +1,92 @@ +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +env/ +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +*.egg-info/ +.installed.cfg +*.egg + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*,cover +.hypothesis/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# IPython Notebook +.ipynb_checkpoints + +# pyenv +.python-version + +# celery beat schedule file +celerybeat-schedule + +# dotenv +.env + +# virtualenv +.venv/ +venv/ +ENV/ + +# Spyder project settings +.spyderproject + +# Rope project settings +.ropeproject + +.idea \ No newline at end of file diff --git a/cardvault/gui/detailswindow.glade b/cardvault/gui/detailswindow.glade index 22f575d..865b0be 100644 --- a/cardvault/gui/detailswindow.glade +++ b/cardvault/gui/detailswindow.glade @@ -8,22 +8,11 @@ True False - - - True - False - ../resources/images/dummy_315x450.png - - - 0 - 0 - - True False - True + start True @@ -183,6 +172,8 @@ True False Loading... + True + 50 0.10000000149011612 @@ -234,6 +225,19 @@ 0 + + + True + False + + + + + + 0 + 0 + + diff --git a/cardvault/search_funct.py b/cardvault/search_funct.py index 01fc53a..24db403 100644 --- a/cardvault/search_funct.py +++ b/cardvault/search_funct.py @@ -96,6 +96,7 @@ def _get_filters(app): output["type"] = _get_combo_value(combo) # Set name = app.ui.get_object("setEntry").get_text() + output["set"] = "" for set in util.set_list: if set.name == name: output["set"] = set.code diff --git a/cardvault/util.py b/cardvault/util.py index 0558ec1..76e1f6a 100644 --- a/cardvault/util.py +++ b/cardvault/util.py @@ -15,6 +15,7 @@ gi.require_version('Gtk', '3.0') imagecache = {} manaicons = {} set_list = [] +set_dict = {} # Card library object library = {} @@ -139,6 +140,7 @@ def load_sets(): # Sort the loaded sets based on the sets name for set in sorted(sets, key=lambda x: x.name): set_list.append(set) + set_dict[set.code] = set def reload_image_cache(): diff --git a/cardvault/window.py b/cardvault/window.py index d123f62..114eea4 100644 --- a/cardvault/window.py +++ b/cardvault/window.py @@ -14,7 +14,6 @@ class MainWindow: self.ui.add_from_file("gui/mainwindow.glade") self.ui.add_from_file("gui/overlays.glade") self.ui.add_from_file("gui/search.glade") - self.ui.add_from_file("gui/detailswindow.glade") window = self.ui.get_object("mainWindow") self.current_page = None util.app = self @@ -53,8 +52,41 @@ class MainWindow: status_bar.push(0, msg) def show_card_details(self, card): - print("Show", card.name) - pass + builder = Gtk.Builder() + builder.add_from_file("gui/detailswindow.glade") + builder.add_from_file("gui/overlays.glade") + window = builder.get_object("cardDetails") + window.set_title(card.name) + # Card Image + container = builder.get_object("imageContainer") + pixbuf = util.load_card_image(card, 63 * 5, 88 * 5) + image = Gtk.Image().new_from_pixbuf(pixbuf) + container.add(image) + + + # Name + builder.get_object("cardName").set_text(card.name) + # Types + supertypes = "" + if card.subtypes is not None: + supertypes = " - " + " ".join(card.subtypes) + types = " ".join(card.types) + supertypes + builder.get_object("cardTypes").set_text(types) + # Rarity + builder.get_object("cardRarity").set_text(card.rarity if card.rarity else "") + # Release + builder.get_object("cardReleaseDate").set_text(card.release_date if card.release_date else "") + # Set + builder.get_object("cardSet").set_text(card.set_name) + # Printings + prints = [] + for set in card.printings: + prints.append(util.set_dict[set].name) + + builder.get_object("cardPrintings").set_text(", ".join(prints)) + # Legalities + #builder.get_object("cardLegalities").set_text(", ".join(card.legalities)) + window.show_all() win = MainWindow()