#!/usr/bin/env python # # editor.py - A simple editor for setting properties on tags (meta-metadata) # # Copyright (C) 2006 David Trowbridge # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # import pygtk pygtk.require('2.0') import gtk import gtk.glade import leaftag import sys from gettext import gettext as _ class Editor: def __init__(self): self.xml = gtk.glade.XML('/usr/share/leaftag/editor.glade', 'window') signals = { 'on_delete_event' : self.window_closed, 'on_description_changed' : self.description_changed, 'on_destroy' : self.destroy, 'on_hidden_toggled' : self.hidden_toggled, 'on_image_clicked' : self.image_clicked, } self.xml.signal_autoconnect(signals) self._window = self.xml.get_widget('window') self._tag_label = self.xml.get_widget('tag') self._desc_entry = self.xml.get_widget('description') self._img_button = self.xml.get_widget('image_button') self._image = self.xml.get_widget('image') self._hidden = self.xml.get_widget('hidden') size_group = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL) [size_group.add_widget(self.xml.get_widget(widget)) for widget in ['label1', 'label2', 'label3', 'label4']] def window_closed(self, widget, event, data=None): return False def destroy(self, widget, data=None): gtk.main_quit() def set_tag(self, tag): self._tag = tag self._tag_label.set_markup('%s' % tag.get_name()) description = tag.get_description() if description: self._desc_entry.set_text(description) self._desc_entry.select_region(0, 0) self._desc_entry.set_position(-1) self._hidden.set_active(tag.get_hidden()) self._window.show_all() def description_changed(self, widget, data=None): description = self._desc_entry.get_text() self._tag.set_description(description) def hidden_toggled(self, widget, data=None): self._tag.set_hidden(self._hidden.get_active()) def image_clicked(self, widget, data=None): pass if len(sys.argv) is not 2: print _('Usage: %s tag') % sys.argv[0] sys.exit(1) tagname = sys.argv[1] if not leaftag.get_tag_name_valid(tagname): print _('Tag "%s" is not valid') % tagname sys.exit(1) tag = leaftag.tag_lookup(tagname) if tag is None: print _('Tag "%s" does not exist') % tagname sys.exit(1) editor = Editor() editor.set_tag(tag) gtk.main()