From 3d7b8b939e9c1a165367b8ad8049c3a8ded2d91d Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Tue, 30 Jul 2013 14:36:36 +0530 Subject: [PATCH] Start work on cover grid --- resources/images/grid.png | Bin 0 -> 10706 bytes src/calibre/gui2/init.py | 20 ++++++++++---- src/calibre/gui2/library/alternate_views.py | 29 ++++++++++++++++++++ src/calibre/gui2/library/views.py | 2 ++ src/calibre/gui2/widgets.py | 10 +++---- 5 files changed, 51 insertions(+), 10 deletions(-) create mode 100644 resources/images/grid.png create mode 100644 src/calibre/gui2/library/alternate_views.py diff --git a/resources/images/grid.png b/resources/images/grid.png new file mode 100644 index 0000000000000000000000000000000000000000..f1dbf40a65b86fe42f834f3b5dc8959db7f94c9e GIT binary patch literal 10706 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