1
0
mirror of https://github.com/gryf/pygtktalog.git synced 2026-03-27 06:33:30 +01:00

58 Commits

Author SHA1 Message Date
de247e9bc8 Added branch with implementation for images in db 2012-02-21 21:13:47 +01:00
ad1703cd90 Added logic for Image and Thumbnail db objects. Added scan functionality 2011-05-15 16:50:54 +02:00
3e2634bc57 Added details/discs/files models, added scan module and its test
Changes im logging module, but also on others
2011-03-27 20:48:28 +02:00
3c6c9a552a Added observable property for discs current directory,
Clean up dialogs a bit
Some additional variables in init (mainly for about() stuff)
Rearrange video module for usage PIL, which is slightly faster than
 ImageMagick utils
2010-11-17 22:25:53 +01:00
54b6a377bf Lots of changes, callbacks for gui events, added details and so on 2010-11-07 16:34:26 +01:00
22c24fbaf7 - added version for package,
- added about signal callback,
- use sorting in additional relations in models,
- added prototype for about class/function
- corrected README for small typos, added links, conformed to be valid
  reStructuredText
2010-05-06 21:14:55 +02:00
62ab67ecc5 Resolved issue with sort order of children of the file obj. 2010-05-04 06:48:58 +02:00
7417b9e98e Introduced files treeview, refactor code for discs view, struggle with files model 2010-05-04 05:55:41 +02:00
1cf1390567 Implemented rename functionality in discs controller, reduced redundant information in discs treestore 2010-05-03 10:30:00 +02:00
5db02183a5 Added script for converting between scheme for DB in version 1.x of app and 2.x 2010-05-02 19:32:56 +02:00
3590f90751 Cleaned up the code 2010-05-02 19:24:04 +02:00
2b5b53ada1 Added popup menu for discs treeview, added separated glade files with interface and controllers 2010-05-02 19:02:35 +02:00
7536e2c60a Repaired test task 2010-05-02 11:29:53 +02:00
3b0cb80407 Added discs controller, change way that paver run application 2010-05-02 11:21:34 +02:00
9769dfdb76 Implementation of discs tree, added popup menu 2010-05-02 11:14:54 +02:00
dbb01acd3f Early design for separating main classes into smaller parts. Added logger module. 2010-04-28 21:55:49 +02:00
9b7f15122d Added requrements (SQLAlchemy, gettext) 2009-08-26 20:29:26 +00:00
1cd6ad5b84 Cleaned up messages for quit. 2009-08-26 20:20:48 +00:00
58c0c1ecdc Imports for new database handle. 2009-08-26 20:18:09 +00:00
20501fcf54 Updated locale 2009-08-26 20:16:49 +00:00
5e83363fe7 Removed unnecessary prints. 2009-08-26 20:15:26 +00:00
313db80101 Migration of database stuff into objects managed by SQLAlchemy ORM. 2009-08-26 20:12:35 +00:00
3f797b0bf8 Replace generate_pot.py script with xgettext/intltool-extract tools. Python
script have defect in multiline texts and with couple of different messages in
one line.
2009-08-26 20:10:54 +00:00
8d6cb75b8e Added tests for common DB actions 2009-07-19 18:16:47 +00:00
71162da225 Simplify db interactions. Follow KISS principle. 2009-07-19 18:16:14 +00:00
6b1fdb90e9 Added DataBase class for connectiions, schema creating and other common tasks.
This version contains copying to RAM functions.
2009-07-19 13:56:16 +00:00
c1dd854f62 removed trailing characters 2009-06-29 20:10:53 +00:00
2b47d9b869 added coverage option for nosetests 2009-06-29 20:09:59 +00:00
53c3a444e0 Separated code for geting information about movie, minor fixes 2009-06-29 20:09:06 +00:00
b54aa1849b Added additional capture() method test to cover all cases 2009-06-29 20:07:26 +00:00
37f06726b4 Small changes in README 2009-05-19 19:53:14 +00:00
e93b7291b8 Generalize locale support with pavement script. 2009-05-19 19:52:55 +00:00
ca7fdf15e8 Isolated method for gathering movie info. Now it can be changed or replaced
easely.
2009-05-19 19:52:02 +00:00
7b5c76f1d9 Added fallback to C if there is no suitable locales 2009-05-19 19:50:46 +00:00
f0f8d27d19 Added on_quit method. 2009-05-19 19:50:05 +00:00
b493b66ea8 Msg catalogs update. 2009-05-19 19:49:30 +00:00
83b9d944cf Cosmetic changes to test files for modules video and misc. 2009-05-19 19:46:45 +00:00
5ccdd8ee6f Added module with dialog helpers, and unit test 2009-05-19 19:45:56 +00:00
8013eec7d2 Removed needless test collector. Used nosetest instead. 2009-05-09 05:44:05 +00:00
14f654251d Added forgotten pot file.
Added i18n into package init.
Made some changes in README file.
2009-05-08 20:15:38 +00:00
8a24e30bde Moved start script into bin directory.
Removed makefile, substituded by the pavement script from paver package.
2009-05-08 20:14:21 +00:00
bcacb75229 cosmetic changes 2009-05-08 20:11:11 +00:00
d04a84c72d Small change to make plgen makefile target work. 2009-05-04 20:32:24 +00:00
e69e2300e8 Moved scripts into bin subdir, slightly modified Makefile, added plgen and
dist targets, removed CZYTAJTO.
2009-05-04 20:29:29 +00:00
08c38bf63d Change Makefile to make tests work, removed cleanup shell script, removed
start script. There should be created new starscript suitable for running app
from current directory and installed as an egg.
2009-05-04 16:36:39 +00:00
52b293c459 Added unit test for misc module, added initial mvc for main window. 2009-05-04 16:24:37 +00:00
bdf059d11f Moved main.glade into pygtktalog package. 2009-05-04 16:23:41 +00:00
ccec14f3ea Move misc and video modules into package pygtktalog. 2009-05-04 16:19:48 +00:00
36c4e7e4f2 Added pygtktalog module 2009-05-04 16:13:37 +00:00
b0964ca031 Removed dummy tests, remove runtests bash script, since there is make target
for invoke running tests.
2009-05-04 16:09:48 +00:00
efaccd8902 Moved test module into root catalog of the project. 2009-05-04 16:05:47 +00:00
434df58b16 Head to v.2. Now it uses gtkmvc with version 1.99, makefile, i18n. 2009-05-04 16:02:36 +00:00
56c77ae9a4 added EXIF patch and misc in lib
removed some cruft
2009-04-07 20:25:00 +00:00
c46d29a5bb added video module - replacement for midentify
added some mocks for images tests
2009-04-07 19:42:44 +00:00
5e8c33f05a changes in tests, upgrade to new EXIF module, etc 2009-04-07 19:40:15 +00:00
fb920f58bc * Removed cruft.
* Version change to 1.0.2.
2008-12-15 20:54:16 +00:00
292d290723 * Added shell script for preparing distfile.
* Added unitests.
 * Added mocks for video files.
 * Added midentify module.
2008-12-15 20:46:26 +00:00
0adcdaba8d * Lots of changes, code cleanup, import/export in GUI. 2008-12-15 20:40:24 +00:00
216 changed files with 7898 additions and 2491 deletions

2
.gitignore vendored
View File

@@ -1,2 +0,0 @@
__pycache__/
*.py[cod]

4
MANIFEST.in Normal file
View File

@@ -0,0 +1,4 @@
include setup.py
include pavement.py
include paver-minilib.zip
include pygtktalog/locale/*/*/*.mo

182
README Normal file
View File

@@ -0,0 +1,182 @@
pyGTKtalog
==========
pyGTKtalog is Linux/FreeBSD program for indexing CD/DVD or directories on
filesystem. It is similar to `gtktalog <http://www.nongnu.org/gtktalog/>`_ or
`gwhere <http://www.gwhere.org/home.php3>`_. There is no coincidence in name of
application, because it's menat to be replacement (in some way) for gtktalog,
which seems to be dead project for years.
Current version is 1.9.
FEATURES
--------
* scan for files in selected media
* get/generate thumbnails from exif and other images
* most important exif tags
* add/edit description and notes
* fetch comments for images made in `gThumb <http://gthumb.sourceforge.net>`_
* add/remove unlimited images to any file or directory
* `tagging files <http://en.wikipedia.org/wiki/Tag_%28metadata%29>`_
* and more :)
REQUIREMENTS
------------
pyGTKtalog requires python and following libraries:
* `python 2.6 <http://www.python.org/>`_
* `pygtk 2.16 <http://www.pygtk.org>`_
* `pygtkmvc 1.99 <http://sourceforge.net/apps/trac/pygtkmvc/wiki>`_
* `sqlalchemy 0.6 <http://www.sqlalchemy.org>`_
It may work on other (lower) version of libraries, and it should work with
higher versions of libraries.
.. note::
Although pygtkmvc is `listed on pypi
<http://pypi.python.org/pypi/python-gtkmvc/>`_ it may happen that you
have to download it directly from
`sourceforge <http://sourceforge.net/apps/trac/pygtkmvc/wiki>`_ page and
install manually. I don't know about pygtk (I've installed it by my
system package manager), but all the others python libraries (sqlalchemy,
paver, nose, coverage) should be installable via `pip
<http://pypi.python.org/pypi/pip>`_
Optional modules
^^^^^^^^^^^^^^^^
* `PIL <http://www.pythonware.com/products/pil/index.htm>`_ for image manipulation
Additional pyGTKtalog uses EXIF module by Gene Cash (slightly updatetd to EXIF
2.2 by me) which is included in sources.
pyGTKtalog extensivly uses external programs in unix spirit, however there is
small possibility of using it Windows (probably with limitations) and quite big
possiblity to run it on other sofisticated unix-like systems (i.e.
BeOS/ZETA/Haiku, QNX or MacOSX).
Programs that are used:
* mencoder (provided by mplayer package)
* montage, convert from ImageMagick
For development process following programs are used:
* `gettext <http://www.gnu.org/software/gettext/gettext.html>`_
* `intltool <http://www.gnome.org/>`_
* `nose <http://code.google.com/p/python-nose/>`_
* `coverage <http://nedbatchelder.com/code/coverage/>`_
* `paver <http://code.google.com/p/paver/>`__
INSTALATION
-----------
You don't have to install it if you don't want to. You can just change current
directory to pyGTKtalog and simply run::
$ paver run
That's it. Alternatively, if you like to put it in more system wide place, all
you have to do is:
#. put pyGTKtalog directory into your destination of choice (/usr/local/share,
/opt or ~/ is typical bet)
#. copy pyGTKtalog shell script to /usr/bin, /usr/local/bin or in
other place, where PATH variable is pointing or you feel like.
#. then modify pyGTKtalog line 6 to match right pygtktalog.py directory
Then, just run pyGTKtalog script.
TODO
----
PyGTKtalog is still under heavy development, however there is small chance to
change structure of catalogs (and if it'll change, there will be transparent
function to update DB schema).
For version 1.0 there are no features to be done, just bug fixes.
There are still minor aims for versions 1.x to be done:
* consolidate popup-menus with edit menu
* add popup menu for directly removing tag from tag cloud
* implement advanced search
For version 2.0:
* Export/Import
* Icon grid in files view
* command line support: query, adding media to collection etc
* internationalization
* export to XLS
* user definied group of tags (represented by color in cloud tag)
* hiding specified files - configurable, like dot prefixed, cfg and manualy
selected
* tests
* warning about existing image in media directory
Removed:
* filetypes handling (movies, images, archives, documents etc). Now it have
common, unified external "plugin" system - simple text output from command
line programs.
* anime/movie
* title
* alt title
* type (anime movie, movie, anime oav, anime tv series, tv series, etc)
* cover/images
* genre
* lang
* sub lang
* release date (from - to)
* anidb link/imdb link
Maybe in future versions. Now text file descriptions/notes and tags have to
be enough for good and fast information search.
NOTES
-----
Catalog file is plain sqlite database (optionally compressed with bzip2). All
images are stored in ``~/.pygtktalog/images`` directory. Names for images are
generated sha512 hash from image file itself. There is small possibility for two
identical hash for different image files. However, no images are overwritten.
Thumbnail filename for each image is simply concatenation of image filename in
images directory and '_t' string.
There is also converter from old database to new for internal use only. In
public release there will be no other formats so it will be useless, and
deleted. There are some issues with converting. All thumbnails will be lost.
All images without big image will be lost. There are serious changes with
application design, and I decided, that is better to keep media unpacked on
disk, instead of pack it every time with save and unpack with open methods. New
design prevent from deleting any file from media directory (placed in
``~/.pygtktalog/images``). Functionality for exporting images and corresponding
db file is planned.
DEVELOPMENT
-----------
Several tools has been used to develop pyGTKtalog.
Paver
^^^^^
I've choose `Paver <http://www.blueskyonmars.com/projects/paver/>`_ as make
equivalent. Inside main project directory there is pavement.py script, which
provides several tasks, that can be helpfull in a work with sources. Paver is
also used to generate standard setup.py.
Nose
^^^^
BUGS
----
All bugs please report to Roman 'gryf' Dobosz <gryf73@gmail.com>.

View File

@@ -1,180 +0,0 @@
pyGTKtalog 1.0
==============
pyGTKtalog is Linux/FreeBSD program for indexing CD/DVD or directories on
filesystem. It is similar to `gtktalog`_ or `gwhere`_ . There is no coincidence
in name of application, because it's meant to be replacement (in some way) for
gtktalog, which seems to be dead project for years.
.. image:: /example/main.png
:alt: pyGTKtalog main screen
WARNING!
========
**This version is mostly outdated, full of bugs, and may eat your data!** First
usable version (this is what you are looking at right now) was completed around
2009 year, but implementation was done much earlier. During that time GTK2 was
changed significantly several times, because of that couple of pyGTKtalog
functionalities goes bad.
The reason for keeping this branch is for history and for GUI to the new engine
which was rewritten couple of years ago and have only cli tool to manipulate
DBs.
In other words - pyGTKtalog version on this branch is safe for **view only**
your catalog database, while it may corrupt database or other files while trying
to create/update your databases in any way.
You have been warned.
The rest of the README file:
FEATURES
========
* scan for files in selected media
* get/generate thumbnails from EXIF and other images
* stores selected EXIF tags
* add/edit description and notes
* fetch comments for images made in `gThumb`_
* add/remove unlimited images to any file or directory
* `tagging files`_
* and more :)
Couple of screens showing how it looks like:
.. image:: /example/tags_images.png
:alt: Other tabs - tags and images
.. image:: /example/tags_selected.png
:alt: Narrow down the files by tags
.. image:: /example/search.png
:alt: Search window and image view
Also, in ``example`` directory you'll find a database ``example.sqlite`` to play
with.
REQUIREMENTS
============
pyGTKtalog is written in python with following dependencies:
* python 2.4 or higher
* `pygtk 2.10`_ or higher
* `pysqlite2`_ (unnecessary, if python 2.5 is used)
Optional modules:
* `PIL`_ for image manipulation
Additional pyGTKtalog uses `pygtkmvc`_ by Roberto Cavada and EXIF module by Gene
Cash (slightly updatetd to EXIF 2.2 by me) which are included in sources.
pyGTKtalog extensively uses external programs in unix spirit, however there is
small possibility of using it Windows (probably with limitations) and quite
big possibility to run it on other sophisticated unix-like systems (i.e.
BeOS/ZETA/Haiku, QNX or MacOSX).
INSTALLATION
============
You don't have to install it if you don't want to. You can just change current
directory to pyGTKtalog and simply run:
./pyGTKtalog
That's it. Alternatively, if you like to put it in more system wide place, all
you have to do is:
* put pyGTKtalog directory into your destination of choice (/usr/local/share,
/opt or ~/ is typical bet)
* copy pyGTKtalog shell script to /usr/bin, /usr/local/bin or in
other place, where PATH variable is pointing or you feel like.
* then modify pyGTKtalog line 6 to match right ``pygtktalog.py`` directory
Then, just run pyGTKtalog script.
TODO
====
PyGTKtalog is still under heavy development, however there is small chance to
change structure of catalogs (and if it'll change, there will be transparent
function to update DB schema).
For version 1.0 there are no features to be done, just bug fixes.
There are still minor aims for versions 1.x to be done:
- consolidate popup-menus with edit menu
- add popup menu for directly removing tag from tag cloud
- implement advanced search
For version 2.0:
- Export/Import
- Icon grid in files view
- command line support: query, adding media to collection etc
- internationalization
- export to XLS
- user defined group of tags (represented by color in cloud tag)
- hiding specified files - configurable, like dot prefixed, config files and
manually selected
- tests
- warning about existing image in media directory
Removed:
- filetypes handling (movies, images, archives, documents etc). Now it have
common, unified external "plugin" system - simple text output from command
line programs.
- anime/movie
- title
- alt title
- type (anime movie, movie, anime oav, anime tv series, tv series, etc)
- cover/images
- genre
- lang
- sub lang
- release date (from - to)
- anidb link/imdb link
Maybe in future versions. Now text file descriptions/notes and tags have to
be enough for good and fast information search.
NOTES
=====
Catalog file is plain sqlite database (optionally compressed with bzip2). All
images are stored in ``[CONFIG_PATH]/images`` directory, where ``[CONFIG_PATH]``
is one of the following location:
- ``$XDG_CONFIG_HOME/pygtktalog``
- ``$HOME/.pytgtktalog``
Names for images are generated sha512 hash from image file itself. There is
small possibility for two identical hash for different image files. However, no
images are overwritten. Thumbnail filename for each image is simply
concatenation of image filename in images directory and ``_t`` string.
There is also converter from old database to new for internal use only. In
public release there will be no other formats so it will be useless, and
deleted. There are some issues with converting. All thumbnails will be lost. All
images without big image will be lost. There are serious changes with
application design, and I decided, that is better to keep media unpacked on
disk, instead of pack it every time with save and unpack with open methods. New
design prevent from deleting any file from media directory (placed in
``[CONFIG_PATH]/images``). Functionality for exporting images and corresponding
db file is planned.
LICENSE
=======
This work is licensed under the terms of the GNU GPL, version 3. See the LICENCE
file in top-level directory.
.. _gtktalog: http://www.nongnu.org/gtktalog/
.. _gwhere: http://www.gwhere.org/home.php3
.. _PIL: http://www.pythonware.com/products/pil/index.htm
.. _pygtk 2.10: http://www.pygtk.org
.. _pysqlite2: http://pysqlite.org/
.. _pygtkmvc: http://pygtkmvc.sourceforge.net
.. _gThumb: http://gthumb.sourceforge.net
.. _tagging files: http://en.wikipedia.org/wiki/Tag_%28metadata%29

View File

@@ -1,5 +0,0 @@
#!/bin/sh
# remove ~, pyc, pyo files from current directory
find . -name \*~ -exec rm '{}' ';'
find . -name \*pyc -exec rm '{}' ';'
find . -name \*pyo -exec rm '{}' ';'

121
convert_1.x_to_2.x.py Executable file
View File

@@ -0,0 +1,121 @@
#!/usr/bin/env python
"""
Project: pyGTKtalog
Description: convert db created with v.1.x into v.2.x
Type: tool
Author: Roman 'gryf' Dobosz, gryf73@gmail.com
Created: 2009-08-14
"""
import sys
import os
import bz2
import shutil
from tempfile import mkstemp
from sqlite3 import dbapi2 as sqlite
from datetime import datetime
# import db objects just to create schema
from pygtktalog.dbobjects import File, Exif, Group, Gthumb
from pygtktalog.dbobjects import Image, Tag, Thumbnail
from pygtktalog.dbcommon import connect
def create_schema(cur):
pass
def create_temporary_db_file():
"""create temporary db file"""
fd, fname = mkstemp()
os.close(fd)
return fname
def connect_to_db(filename):
"""initialize db connection and store it in class attributes"""
db_connection = sqlite.connect(filename, \
detect_types=sqlite.PARSE_DECLTYPES | sqlite.PARSE_COLNAMES)
db_cursor = db_connection.cursor()
return db_connection, db_cursor
def opendb(filename=None):
"""try to open db file"""
db_tmp_path = create_temporary_db_file()
try:
test_file = open(filename).read(15)
except IOError:
os.unlink(db_tmp_path)
return False
if test_file == "SQLite format 3":
db_tmp = open(db_tmp_path, "wb")
db_tmp.write(open(filename).read())
db_tmp.close()
elif test_file[0:10] == "BZh91AY&SY":
open_file = bz2.BZ2File(filename)
try:
curdb = open(db_tmp_path, "w")
curdb.write(open_file.read())
curdb.close()
open_file.close()
except IOError:
# file is not bz2
os.unlink(db_tmp_path)
return False
else:
os.unlink(db_tmp_path)
return False
return connect_to_db(db_tmp_path), db_tmp_path
if __name__ == "__main__":
if len(sys.argv) != 3:
print "usage: %s src_base dst_base" % sys.argv[0]
exit()
result = opendb(sys.argv[1])
if not result:
print "unable to open src db file"
exit()
(src_con, src_c), src_tmpf = result
shutil.copy(src_tmpf, sys.argv[2])
# close src db.
src_c.close()
src_con.close()
os.unlink(src_tmpf)
# create or update shema
connect(sys.argv[2])
dst_con = sqlite.connect(sys.argv[2])
dst_c = dst_con.cursor()
sql = "select id, date from files"
for id, date in dst_c.execute(sql).fetchall():
sql = "update files set date=? where id=?"
if date and int(date) > 0:
dst_c.execute(sql, (datetime.fromtimestamp(int(date)), id))
else:
dst_c.execute(sql, (None, id))
sql = "select id, date from gthumb"
for id, date in dst_c.execute(sql).fetchall():
sql = "update gthumb set date=? where id=?"
try:
if int(date) > 0:
dst_c.execute(sql, (datetime.fromtimestamp(int(date)), id))
else:
dst_c.execute(sql, (None, id))
except:
print id, date
dst_con.commit()
dst_c.close()
dst_con.close()

View File

@@ -1,9 +0,0 @@
Example
=======
Here you can find example database and some screen shots made using this db.
All materials used to prepare sample database and the screen shots were
downloaded from freely available resources from pages:
http://www.hd-trailers.net/ and http://www.imdb.com - all rights goes to
appropriate parties.

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 109 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

Some files were not shown because too many files have changed in this diff Show More