mirror of
https://github.com/gryf/pygtktalog.git
synced 2025-12-17 11:30:19 +01:00
- 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
This commit is contained in:
32
README
32
README
@@ -4,7 +4,7 @@ pyGTKtalog
|
|||||||
pyGTKtalog is Linux/FreeBSD program for indexing CD/DVD or directories on
|
pyGTKtalog is Linux/FreeBSD program for indexing CD/DVD or directories on
|
||||||
filesystem. It is similar to `gtktalog <http://www.nongnu.org/gtktalog/>`_ or
|
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
|
`gwhere <http://www.gwhere.org/home.php3>`_. There is no coincidence in name of
|
||||||
application, because it's ment to be replacement (in some way) for gtktalog,
|
application, because it's menat to be replacement (in some way) for gtktalog,
|
||||||
which seems to be dead project for years.
|
which seems to be dead project for years.
|
||||||
|
|
||||||
Current version is 1.9.
|
Current version is 1.9.
|
||||||
@@ -24,16 +24,27 @@ FEATURES
|
|||||||
REQUIREMENTS
|
REQUIREMENTS
|
||||||
------------
|
------------
|
||||||
|
|
||||||
pyGTKtalog was developed using python and following libraries:
|
pyGTKtalog requires python and following libraries:
|
||||||
|
|
||||||
* python 2.6
|
* `python 2.6 <http://www.python.org/>`_
|
||||||
* `pygtk 2.16 <http://www.pygtk.org>`_
|
* `pygtk 2.16 <http://www.pygtk.org>`_
|
||||||
* `pygtkmvc 1.99 <http://apps.sourceforge.net/trac/pygtkmvc/wiki>`_
|
* `pygtkmvc 1.99 <http://sourceforge.net/apps/trac/pygtkmvc/wiki>`_
|
||||||
* `sqlalchemy 0.6 <http://www.sqlalchemy.org>`_
|
* `sqlalchemy 0.6 <http://www.sqlalchemy.org>`_
|
||||||
|
|
||||||
It may work on other (lower) version of libraries, and it should work with
|
It may work on other (lower) version of libraries, and it should work with
|
||||||
higher versions of libraries.
|
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
|
Optional modules
|
||||||
^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
@@ -52,16 +63,18 @@ Programs that are used:
|
|||||||
* montage, convert from ImageMagick
|
* montage, convert from ImageMagick
|
||||||
|
|
||||||
For development process following programs are used:
|
For development process following programs are used:
|
||||||
|
|
||||||
* `gettext <http://www.gnu.org/software/gettext/gettext.html>`_
|
* `gettext <http://www.gnu.org/software/gettext/gettext.html>`_
|
||||||
* `intltool <http://www.gnome.org/>`_
|
* `intltool <http://www.gnome.org/>`_
|
||||||
* `nose <http://code.google.com/p/python-nose/>`_
|
* `nose <http://code.google.com/p/python-nose/>`_
|
||||||
* `paver <http://code.google.com/p/paver/>`_
|
* `coverage <http://nedbatchelder.com/code/coverage/>`_
|
||||||
|
* `paver <http://code.google.com/p/paver/>`__
|
||||||
|
|
||||||
INSTALATION
|
INSTALATION
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
You don't have to install it if you don't want to. You can just change current
|
You don't have to install it if you don't want to. You can just change current
|
||||||
directory to pyGTKtalog and simply run:
|
directory to pyGTKtalog and simply run::
|
||||||
|
|
||||||
$ paver run
|
$ paver run
|
||||||
|
|
||||||
@@ -70,8 +83,10 @@ you have to do is:
|
|||||||
|
|
||||||
#. put pyGTKtalog directory into your destination of choice (/usr/local/share,
|
#. put pyGTKtalog directory into your destination of choice (/usr/local/share,
|
||||||
/opt or ~/ is typical bet)
|
/opt or ~/ is typical bet)
|
||||||
|
|
||||||
#. copy pyGTKtalog shell script to /usr/bin, /usr/local/bin or in
|
#. copy pyGTKtalog shell script to /usr/bin, /usr/local/bin or in
|
||||||
other place, where PATH variable is pointing or you feel like.
|
other place, where PATH variable is pointing or you feel like.
|
||||||
|
|
||||||
#. then modify pyGTKtalog line 6 to match right pygtktalog.py directory
|
#. then modify pyGTKtalog line 6 to match right pygtktalog.py directory
|
||||||
|
|
||||||
Then, just run pyGTKtalog script.
|
Then, just run pyGTKtalog script.
|
||||||
@@ -86,11 +101,13 @@ function to update DB schema).
|
|||||||
For version 1.0 there are no features to be done, just bug fixes.
|
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:
|
There are still minor aims for versions 1.x to be done:
|
||||||
|
|
||||||
* consolidate popup-menus with edit menu
|
* consolidate popup-menus with edit menu
|
||||||
* add popup menu for directly removing tag from tag cloud
|
* add popup menu for directly removing tag from tag cloud
|
||||||
* implement advanced search
|
* implement advanced search
|
||||||
|
|
||||||
For version 2.0:
|
For version 2.0:
|
||||||
|
|
||||||
* Export/Import
|
* Export/Import
|
||||||
* Icon grid in files view
|
* Icon grid in files view
|
||||||
* command line support: query, adding media to collection etc
|
* command line support: query, adding media to collection etc
|
||||||
@@ -101,7 +118,9 @@ For version 2.0:
|
|||||||
selected
|
selected
|
||||||
* tests
|
* tests
|
||||||
* warning about existing image in media directory
|
* warning about existing image in media directory
|
||||||
|
|
||||||
Removed:
|
Removed:
|
||||||
|
|
||||||
* filetypes handling (movies, images, archives, documents etc). Now it have
|
* filetypes handling (movies, images, archives, documents etc). Now it have
|
||||||
common, unified external "plugin" system - simple text output from command
|
common, unified external "plugin" system - simple text output from command
|
||||||
line programs.
|
line programs.
|
||||||
@@ -115,6 +134,7 @@ Removed:
|
|||||||
* sub lang
|
* sub lang
|
||||||
* release date (from - to)
|
* release date (from - to)
|
||||||
* anidb link/imdb link
|
* anidb link/imdb link
|
||||||
|
|
||||||
Maybe in future versions. Now text file descriptions/notes and tags have to
|
Maybe in future versions. Now text file descriptions/notes and tags have to
|
||||||
be enough for good and fast information search.
|
be enough for good and fast information search.
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,9 @@
|
|||||||
Author: Roman 'gryf' Dobosz, gryf73@gmail.com
|
Author: Roman 'gryf' Dobosz, gryf73@gmail.com
|
||||||
Created: 2009-05-05
|
Created: 2009-05-05
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
__version__ = "1.9.0"
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import locale
|
import locale
|
||||||
import gettext
|
import gettext
|
||||||
|
|||||||
@@ -10,12 +10,14 @@ import gtk
|
|||||||
from gtkmvc import Controller
|
from gtkmvc import Controller
|
||||||
|
|
||||||
#from pygtktalog.dialogs import yesno
|
#from pygtktalog.dialogs import yesno
|
||||||
|
from pygtktalog.dialogs import About
|
||||||
from pygtktalog.controllers.discs import DiscsController
|
from pygtktalog.controllers.discs import DiscsController
|
||||||
from pygtktalog.controllers.files import FilesController
|
from pygtktalog.controllers.files import FilesController
|
||||||
#from pygtktalog.controllers.details import DetailsController
|
#from pygtktalog.controllers.details import DetailsController
|
||||||
#from pygtktalog.controllers.tags import TagcloudController
|
#from pygtktalog.controllers.tags import TagcloudController
|
||||||
#from pygtktalog.dialogs import yesno, okcancel, info, warn, error
|
#from pygtktalog.dialogs import yesno, okcancel, info, warn, error
|
||||||
from pygtktalog.logger import get_logger
|
from pygtktalog.logger import get_logger
|
||||||
|
from pygtktalog import __version__
|
||||||
|
|
||||||
LOG = get_logger("main controller")
|
LOG = get_logger("main controller")
|
||||||
|
|
||||||
@@ -77,3 +79,10 @@ class MainController(Controller):
|
|||||||
gtk.main_quit()
|
gtk.main_quit()
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
def on_about1_activate(self, widget):
|
||||||
|
"""Show about dialog"""
|
||||||
|
About("pyGTKtalog",
|
||||||
|
"%s" % __version__,
|
||||||
|
"About",
|
||||||
|
["Roman 'gryf' Dobosz"],
|
||||||
|
'')
|
||||||
|
|||||||
@@ -31,9 +31,9 @@ class File(Base):
|
|||||||
children = relation('File',
|
children = relation('File',
|
||||||
backref=backref('parent', remote_side="File.id"),
|
backref=backref('parent', remote_side="File.id"),
|
||||||
order_by=[type, filename])
|
order_by=[type, filename])
|
||||||
tags = relation("Tag", secondary=tags_files)
|
tags = relation("Tag", secondary=tags_files, order_by="Tag.tag")
|
||||||
thumbnail = relation("Thumbnail", backref="file")
|
thumbnail = relation("Thumbnail", backref="file")
|
||||||
images = relation("Image", backref="file")
|
images = relation("Image", backref="file", order_by="Image.filename")
|
||||||
|
|
||||||
def __init__(self, filename=None, path=None, date=None, size=None,
|
def __init__(self, filename=None, path=None, date=None, size=None,
|
||||||
ftype=None, src=None):
|
ftype=None, src=None):
|
||||||
|
|||||||
@@ -15,7 +15,9 @@ class Dialog(object):
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, dialog_type, message, secondary_msg="", title=""):
|
def __init__(self, dialog_type, message, secondary_msg="", title=""):
|
||||||
"""Initialize some defaults"""
|
"""
|
||||||
|
Initialize some defaults
|
||||||
|
"""
|
||||||
self.dialog = None
|
self.dialog = None
|
||||||
self.buttons = gtk.BUTTONS_OK
|
self.buttons = gtk.BUTTONS_OK
|
||||||
self.ok_default = False
|
self.ok_default = False
|
||||||
@@ -54,6 +56,23 @@ class Dialog(object):
|
|||||||
self.dialog.format_secondary_text(self.secondary_msg)
|
self.dialog.format_secondary_text(self.secondary_msg)
|
||||||
self.dialog.set_title(self.title)
|
self.dialog.set_title(self.title)
|
||||||
|
|
||||||
|
class About(object):
|
||||||
|
"""
|
||||||
|
Show About dialog
|
||||||
|
"""
|
||||||
|
def __init__(self, name=None, ver="", title="", authors=[],licence=""):
|
||||||
|
self.dialog = gtk.AboutDialog()
|
||||||
|
self.dialog.set_title(title)
|
||||||
|
self.dialog.set_version(ver)
|
||||||
|
self.dialog.set_license(licence)
|
||||||
|
self.dialog.set_name(name)
|
||||||
|
self.dialog.set_authors(authors)
|
||||||
|
self.dialog.connect('response',
|
||||||
|
lambda dialog, response: self.dialog.destroy())
|
||||||
|
self.dialog.show()
|
||||||
|
|
||||||
|
# TODO: finish this, re-use Dialog class instead of copy/paste of old classes!
|
||||||
|
# def about(name, version, )
|
||||||
|
|
||||||
def yesno(message, secondarymsg="", title="", default=False):
|
def yesno(message, secondarymsg="", title="", default=False):
|
||||||
"""Question with yes-no buttons. Returns False on 'no', True on 'yes'"""
|
"""Question with yes-no buttons. Returns False on 'no', True on 'yes'"""
|
||||||
|
|||||||
Reference in New Issue
Block a user