* src/plugins/SimpleBookTitle.py: Add functionality to "From file".

* src/AddMedia.py: Make it a modal dialog.
* src/MediaView.py: Call AddMedia as modal dialog.
* src/imagesel.glade: Change responses for dialog buttons.


svn: r2112
This commit is contained in:
Alex Roitman 2003-09-10 13:38:02 +00:00
parent 791dc35a50
commit 9132d47c5c
5 changed files with 46 additions and 11 deletions

View File

@ -1,3 +1,9 @@
2003-09-10 Alex Roitman <shura@alex.neuro.umn.edu>
* src/plugins/SimpleBookTitle.py: Add functionality to "From file".
* src/AddMedia.py: Make it a modal dialog.
* src/MediaView.py: Call AddMedia as modal dialog.
* src/imagesel.glade: Change responses for dialog buttons.
2003-09-09 Alex Roitman <shura@alex.neuro.umn.edu> 2003-09-09 Alex Roitman <shura@alex.neuro.umn.edu>
* src/plugins/SimpleBookTitle.py * src/plugins/SimpleBookTitle.py
(SimpleBookTitleDialog.add_user_options): Add a tab for an image, (SimpleBookTitleDialog.add_user_options): Add a tab for an image,

View File

@ -1,7 +1,7 @@
# #
# Gramps - a GTK+/GNOME based genealogy program # Gramps - a GTK+/GNOME based genealogy program
# #
# Copyright (C) 2000 Donald N. Allingham # Copyright (C) 2000-2003 Donald N. Allingham
# #
# This program is free software; you can redistribute it and/or modify # 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 # it under the terms of the GNU General Public License as published by
@ -66,7 +66,7 @@ class AddMediaObject:
a media object from the file system, while providing a description. a media object from the file system, while providing a description.
""" """
def __init__(self,db,update): def __init__(self,db,update=None):
""" """
Creates and displays the dialog box Creates and displays the dialog box
@ -81,19 +81,18 @@ class AddMediaObject:
self.file_text = self.glade.get_widget("fname") self.file_text = self.glade.get_widget("fname")
self.update = update self.update = update
self.temp_name = "" self.temp_name = ""
self.object = None
Utils.set_titles(self.window,self.glade.get_widget('title'), Utils.set_titles(self.window,self.glade.get_widget('title'),
_('Select a media object')) _('Select a media object'))
self.glade.signal_autoconnect({ self.glade.signal_autoconnect({
"on_savephoto_clicked" : self.on_savephoto_clicked,
"on_name_changed" : self.on_name_changed, "on_name_changed" : self.on_name_changed,
"destroy_passed_object" : Utils.destroy_passed_object
}) })
self.window.show() self.window.show()
def on_savephoto_clicked(self,obj): def on_savephoto_clicked(self):
""" """
Callback function called with the save button is pressed. Callback function called with the save button is pressed.
A new media object is created, and added to the database. A new media object is created, and added to the database.
@ -126,8 +125,9 @@ class AddMediaObject:
mobj.setPath(name) mobj.setPath(name)
Utils.modified() Utils.modified()
self.update() if self.update:
Utils.destroy_passed_object(obj) self.update()
self.object = mobj
def on_name_changed(self,obj): def on_name_changed(self,obj):
""" """
@ -152,3 +152,14 @@ class AddMediaObject:
else: else:
image = gtk.gdk.pixbuf_new_from_file(Utils.find_icon(type)) image = gtk.gdk.pixbuf_new_from_file(Utils.find_icon(type))
self.image.set_from_pixbuf(image) self.image.set_from_pixbuf(image)
def run(self):
val = self.window.run()
if val == gtk.RESPONSE_OK:
self.on_savephoto_clicked()
self.window.destroy()
return self.object
else:
self.window.destroy()
return None

View File

@ -233,7 +233,8 @@ class MediaView:
def on_add_clicked(self,obj): def on_add_clicked(self,obj):
"""Add a new media object to the media list""" """Add a new media object to the media list"""
import AddMedia import AddMedia
AddMedia.AddMediaObject(self.db,self.load_media) am = AddMedia.AddMediaObject(self.db,self.load_media)
am.run()
def on_edit_clicked(self,obj): def on_edit_clicked(self,obj):
"""Edit the properties of an existing media object in the media list""" """Edit the properties of an existing media object in the media list"""

View File

@ -35,7 +35,7 @@
<property name="label">gtk-cancel</property> <property name="label">gtk-cancel</property>
<property name="use_stock">True</property> <property name="use_stock">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property> <property name="relief">GTK_RELIEF_NORMAL</property>
<property name="response_id">0</property> <property name="response_id">-6</property>
<signal name="clicked" handler="destroy_passed_object" object="imageSelect"/> <signal name="clicked" handler="destroy_passed_object" object="imageSelect"/>
</widget> </widget>
</child> </child>
@ -49,7 +49,7 @@
<property name="label">gtk-ok</property> <property name="label">gtk-ok</property>
<property name="use_stock">True</property> <property name="use_stock">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property> <property name="relief">GTK_RELIEF_NORMAL</property>
<property name="response_id">0</property> <property name="response_id">-5</property>
<signal name="clicked" handler="on_savephoto_clicked" object="imageSelect"/> <signal name="clicked" handler="on_savephoto_clicked" object="imageSelect"/>
</widget> </widget>
</child> </child>

View File

@ -38,6 +38,7 @@ from QuestionDialog import ErrorDialog
from gettext import gettext as _ from gettext import gettext as _
import SelectObject import SelectObject
import Utils import Utils
import AddMedia
import gtk import gtk
import gnome import gnome
@ -289,7 +290,23 @@ class SimpleBookTitleDialog(Report.BareReportDialog):
self.remove_obj_button.set_sensitive(gtk.TRUE) self.remove_obj_button.set_sensitive(gtk.TRUE)
def select_file(self, obj): def select_file(self, obj):
pass a_o = AddMedia.AddMediaObject(self.db)
object = a_o.run()
if object:
self.object_id = object.getId()
else:
return
self.obj_title.set_text(object.getDescription())
the_type = Utils.get_mime_description(object.getMimeType())
path = object.getPath()
thumb_path = Utils.thumb_path(self.db.getSavePath(),object)
pexists = os.path.exists(path)
if pexists and os.path.exists(thumb_path):
self.preview.set_from_pixbuf(gtk.gdk.pixbuf_new_from_file(thumb_path))
else:
icon_image = gtk.gdk.pixbuf_new_from_file(Utils.find_icon(the_type))
self.preview.set_from_pixbuf(icon_image)
self.remove_obj_button.set_sensitive(gtk.TRUE)
def on_ok_clicked(self, obj): def on_ok_clicked(self, obj):
"""The user is satisfied with the dialog choices. Parse all options """The user is satisfied with the dialog choices. Parse all options