1
0
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:
2010-05-06 21:14:55 +02:00
parent 62ab67ecc5
commit 22c24fbaf7
5 changed files with 63 additions and 12 deletions

34
README
View File

@@ -4,7 +4,7 @@ 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 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.
Current version is 1.9.
@@ -24,16 +24,27 @@ FEATURES
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>`_
* `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>`_
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
^^^^^^^^^^^^^^^^
@@ -52,26 +63,30 @@ Programs that are used:
* 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/>`_
* `paver <http://code.google.com/p/paver/>`_
* `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:
directory to pyGTKtalog and simply run::
$ paver 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.
@@ -86,11 +101,13 @@ 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
@@ -101,7 +118,9 @@ For version 2.0:
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.
@@ -115,6 +134,7 @@ Removed:
* 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.

View File

@@ -5,6 +5,9 @@
Author: Roman 'gryf' Dobosz, gryf73@gmail.com
Created: 2009-05-05
"""
__version__ = "1.9.0"
import os
import locale
import gettext

View File

@@ -10,12 +10,14 @@ import gtk
from gtkmvc import Controller
#from pygtktalog.dialogs import yesno
from pygtktalog.dialogs import About
from pygtktalog.controllers.discs import DiscsController
from pygtktalog.controllers.files import FilesController
#from pygtktalog.controllers.details import DetailsController
#from pygtktalog.controllers.tags import TagcloudController
#from pygtktalog.dialogs import yesno, okcancel, info, warn, error
from pygtktalog.logger import get_logger
from pygtktalog import __version__
LOG = get_logger("main controller")
@@ -77,3 +79,10 @@ class MainController(Controller):
gtk.main_quit()
return False
def on_about1_activate(self, widget):
"""Show about dialog"""
About("pyGTKtalog",
"%s" % __version__,
"About",
["Roman 'gryf' Dobosz"],
'')

View File

@@ -31,9 +31,9 @@ class File(Base):
children = relation('File',
backref=backref('parent', remote_side="File.id"),
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")
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,
ftype=None, src=None):

View File

@@ -15,7 +15,9 @@ class Dialog(object):
"""
def __init__(self, dialog_type, message, secondary_msg="", title=""):
"""Initialize some defaults"""
"""
Initialize some defaults
"""
self.dialog = None
self.buttons = gtk.BUTTONS_OK
self.ok_default = False
@@ -54,6 +56,23 @@ class Dialog(object):
self.dialog.format_secondary_text(self.secondary_msg)
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):
"""Question with yes-no buttons. Returns False on 'no', True on 'yes'"""