From b06474db0411ff302ba711191568176a2bc13078 Mon Sep 17 00:00:00 2001 From: luxick Date: Tue, 31 Jan 2017 20:32:04 +0100 Subject: [PATCH] Added collection view layout and dummy entries --- collection.py | 81 ++++++++++++++++++++++++++++++++++++++ gui.py | 7 +++- resources/images/demo.jpg | Bin 0 -> 28924 bytes 3 files changed, 86 insertions(+), 2 deletions(-) create mode 100644 collection.py create mode 100644 resources/images/demo.jpg diff --git a/collection.py b/collection.py new file mode 100644 index 0000000..7d8dcf3 --- /dev/null +++ b/collection.py @@ -0,0 +1,81 @@ +import gi +from psutil._compat import xrange + +gi.require_version('Gtk', '3.0') +from gi.repository import Gtk, GdkPixbuf + + +class CollectionView(Gtk.Grid): + def __init__(self): + Gtk.Grid.__init__(self) + + # Search Box + self.searchbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, spacing=2) + self.searchEntry = Gtk.Entry() + self.searchEntryLabel = Gtk.Label("Search in Collection:", xalign=0) + self.searchbox.add(self.searchEntryLabel) + self.searchbox.add(self.searchEntry) + + # Filters + self.filterBox = Gtk.ListBox() + self.filterBox.set_selection_mode(Gtk.SelectionMode.NONE) + + self.testRow = Gtk.ListBoxRow() + hbox = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL, spacing=50) + hbox.add(Gtk.Label("Filters will go here", xalign=0)) + self.testRow.add(hbox) + + self.filterBox.add(self.testRow) + + # The Small Card Flow + self.cardScroller = Gtk.ScrolledWindow(hexpand=True, vexpand=True) + self.cardScroller.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC) + + self.cardFlow = Gtk.FlowBox() + self.cardFlow.set_valign(Gtk.Align.START) + self.cardFlow.set_max_children_per_line(50) + self.cardFlow.set_selection_mode(Gtk.SelectionMode.NONE) + self.create_flowbox(self.cardFlow) + self.cardScroller.add(self.cardFlow) + + # Detailed Card View + self.detailBox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, spacing=2) + + # Big Picture of the selected Card + self.image_area = Gtk.Box() + self.bigCard = Gtk.Image() + self.pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size('./resources/images/demo.jpg', 63 * 4, 88 * 4) + self.bigCard.set_from_pixbuf(self.pixbuf) + self.image_area.add(self.bigCard) + self.detailBox.add(self.image_area) + + # Stats and Details about the selected Card + self.stat_listbox = Gtk.ListBox() + self.stat_listbox.set_selection_mode(Gtk.SelectionMode.NONE) + self.test_statrow = Gtk.ListBoxRow() + hbox = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL, spacing=50) + hbox.add(Gtk.Label("Detail about the selected Card goes here", xalign=0)) + self.test_statrow.add(hbox) + self.stat_listbox.add(self.test_statrow) + + self.detailBox.add(self.stat_listbox) + + + # Bring it all together + self.attach(self.searchbox, 0, 0, 1, 1) + self.attach(self.filterBox, 0, 1, 1, 1) + self.attach(self.cardScroller, 1, 0, 1, 2) + self.attach(self.detailBox, 2, 0, 1, 2) + + def add_test_image(self): + image = Gtk.Image() + pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size('./resources/images/demo.jpg', 63*2, 88*2) + image.set_from_pixbuf(pixbuf) + + return image + + def create_flowbox(self, flowbox): + + for nr in xrange(0, 50): + image = self.add_test_image() + flowbox.add(image) diff --git a/gui.py b/gui.py index 80c1663..87181d0 100644 --- a/gui.py +++ b/gui.py @@ -1,17 +1,21 @@ import gi +import collection + gi.require_version('Gtk', '3.0') from gi.repository import Gtk + class MainWindow(Gtk.Window): def __init__(self): Gtk.Window.__init__(self, title="MTG Collector v0.1") self.set_border_width(2) + self.set_size_request(1000, 700) self.notebook = Gtk.Notebook() self.add(self.notebook) self.collectionView = Gtk.Box() - self.collectionView.add(Gtk.Label("My Magic Card Collection!")) + self.collectionView.add(collection.CollectionView()) self.searchView = Gtk.Box() self.searchView.add(Gtk.Label("Search the whole Magic Card Library!")) @@ -19,7 +23,6 @@ class MainWindow(Gtk.Window): self.deckView = Gtk.Box() self.deckView.add(Gtk.Label("View and organize your Decklists!")) - self.notebook.append_page(self.collectionView, Gtk.Label("Collection")) self.notebook.append_page(self.deckView, Gtk.Label("Decks")) self.notebook.append_page(self.searchView, Gtk.Label("Search")) diff --git a/resources/images/demo.jpg b/resources/images/demo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8ee2dbc0156499f08f1f22ed8e3f400e6211a26e GIT binary patch literal 28924 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