2007-11-27 Benny Malengier <benny.malengier@gramps-project.org>
* src/ManagedWindow.py: new call_modal method. Reports tools should use that * src/GrampsWidgets.py: improve a text string * src/plugins/NarrativeWeb.py: use call_modal, trunkate long filter names, better placement of selector note/media * src/ReportBase/_BareReportDialog.py: reports are modal but not transient, remove bug to make them transient! svn: r9415
This commit is contained in:
@ -1,3 +1,12 @@
|
|||||||
|
2007-11-27 Benny Malengier <benny.malengier@gramps-project.org>
|
||||||
|
* src/ManagedWindow.py: new call_modal method.
|
||||||
|
Reports tools should use that
|
||||||
|
* src/GrampsWidgets.py: improve a text string
|
||||||
|
* src/plugins/NarrativeWeb.py: use call_modal, trunkate long filter
|
||||||
|
names, better placement of selector note/media
|
||||||
|
* src/ReportBase/_BareReportDialog.py: reports are modal but not
|
||||||
|
transient, remove bug to make them transient!
|
||||||
|
|
||||||
2007-11-26 Benny Malengier <benny.malengier@gramps-project.org>
|
2007-11-26 Benny Malengier <benny.malengier@gramps-project.org>
|
||||||
* src/plugins/NarrativeWeb.py: new select contact-header-footer-intro
|
* src/plugins/NarrativeWeb.py: new select contact-header-footer-intro
|
||||||
* src/GrampsWidgets.py: widget for new select
|
* src/GrampsWidgets.py: widget for new select
|
||||||
|
@ -799,7 +799,10 @@ class ObjEntry:
|
|||||||
self.share.connect('clicked', self.share_clicked)
|
self.share.connect('clicked', self.share_clicked)
|
||||||
|
|
||||||
if not self.db.readonly and not name:
|
if not self.db.readonly and not name:
|
||||||
self.label.set_text(self.EMPTY_TEXT)
|
if self.add_edt is None:
|
||||||
|
self.label.set_text(self.EMPTY_TEXT_RED)
|
||||||
|
else:
|
||||||
|
self.label.set_text(self.EMPTY_TEXT)
|
||||||
self.label.set_use_markup(True)
|
self.label.set_use_markup(True)
|
||||||
else:
|
else:
|
||||||
self.label.set_text(name)
|
self.label.set_text(name)
|
||||||
@ -918,6 +921,7 @@ class PlaceEntry(ObjEntry):
|
|||||||
"""
|
"""
|
||||||
EMPTY_TEXT = "<i>%s</i>" % _('To select a place, use drag-and-drop '
|
EMPTY_TEXT = "<i>%s</i>" % _('To select a place, use drag-and-drop '
|
||||||
'or use the buttons')
|
'or use the buttons')
|
||||||
|
EMPTY_TEXT_RED = "<i>%s</i>" % _('No place given, click button to select one')
|
||||||
EDIT_STR = _('Edit place')
|
EDIT_STR = _('Edit place')
|
||||||
SHARE_STR = _('Select an existing place')
|
SHARE_STR = _('Select an existing place')
|
||||||
ADD_STR = _('Add a new place')
|
ADD_STR = _('Add a new place')
|
||||||
@ -971,6 +975,7 @@ class MediaEntry(ObjEntry):
|
|||||||
"""
|
"""
|
||||||
EMPTY_TEXT = "<i>%s</i>" % _('To select a media object, use drag-and-drop '
|
EMPTY_TEXT = "<i>%s</i>" % _('To select a media object, use drag-and-drop '
|
||||||
'or use the buttons')
|
'or use the buttons')
|
||||||
|
EMPTY_TEXT_RED = "<i>%s</i>" % _('No image given, click button to select one')
|
||||||
EDIT_STR = _('Edit media object')
|
EDIT_STR = _('Edit media object')
|
||||||
SHARE_STR = _('Select an existing media object')
|
SHARE_STR = _('Select an existing media object')
|
||||||
ADD_STR = _('Add a new media object')
|
ADD_STR = _('Add a new media object')
|
||||||
@ -1024,6 +1029,7 @@ class NoteEntry(ObjEntry):
|
|||||||
"""
|
"""
|
||||||
EMPTY_TEXT = "<i>%s</i>" % _('To select a note, use drag-and-drop '
|
EMPTY_TEXT = "<i>%s</i>" % _('To select a note, use drag-and-drop '
|
||||||
'or use the buttons')
|
'or use the buttons')
|
||||||
|
EMPTY_TEXT_RED = "<i>%s</i>" % _('No note given, click button to select one')
|
||||||
EDIT_STR = _('Edit Note')
|
EDIT_STR = _('Edit Note')
|
||||||
SHARE_STR = _('Select an existing note')
|
SHARE_STR = _('Select an existing note')
|
||||||
ADD_STR = _('Add a new note')
|
ADD_STR = _('Add a new note')
|
||||||
|
@ -418,6 +418,36 @@ class ManagedWindow:
|
|||||||
self.opened = True
|
self.opened = True
|
||||||
self.window.show_all()
|
self.window.show_all()
|
||||||
|
|
||||||
|
def modal_call(self, after_ok_func=None):
|
||||||
|
'''
|
||||||
|
Method to do modal run of the ManagedWindow.
|
||||||
|
Connect the OK button to a method that checks if all is ok,
|
||||||
|
Do not call close, close is called here.
|
||||||
|
(if not ok, do self.window.run() to obtain new response )
|
||||||
|
TODO: remove close here and do close in BareReportDialog,
|
||||||
|
this can only be done, once all methods use modal_call()
|
||||||
|
instead of their own implementation
|
||||||
|
Connect Cancel to do close, delete event is connected to close
|
||||||
|
here in ManagedWindow.
|
||||||
|
Do not generete RESPONSE_OK/CANCEL/DELETE_EVENT on button clicks
|
||||||
|
of other buttons
|
||||||
|
after_ok_func is called on ok click in this method
|
||||||
|
'''
|
||||||
|
#self.show()
|
||||||
|
while True:
|
||||||
|
response = self.window.run()
|
||||||
|
if response == gtk.RESPONSE_OK:
|
||||||
|
# dialog will be close by connect, now continue work while
|
||||||
|
# rest of dialog is unresponsive, release when finished
|
||||||
|
self.close()
|
||||||
|
if after_ok_func is not None:
|
||||||
|
after_ok_func()
|
||||||
|
break
|
||||||
|
elif (response == gtk.RESPONSE_DELETE_EVENT or
|
||||||
|
response == gtk.RESPONSE_CANCEL):
|
||||||
|
# connect buttons generating this to a close call
|
||||||
|
break
|
||||||
|
|
||||||
def close(self, *obj):
|
def close(self, *obj):
|
||||||
"""
|
"""
|
||||||
Close itself.
|
Close itself.
|
||||||
|
@ -158,7 +158,8 @@ class BareReportDialog(ManagedWindow.ManagedWindow):
|
|||||||
self.setup_report_options_frame()
|
self.setup_report_options_frame()
|
||||||
self.setup_other_frames()
|
self.setup_other_frames()
|
||||||
self.notebook.set_current_page(0)
|
self.notebook.set_current_page(0)
|
||||||
self.window.show_all()
|
self.show()
|
||||||
|
#self.window.show_all()
|
||||||
|
|
||||||
def get_title(self):
|
def get_title(self):
|
||||||
"""The window title for this dialog"""
|
"""The window title for this dialog"""
|
||||||
|
@ -2724,7 +2724,11 @@ class WebReportOptions(ReportOptions):
|
|||||||
include_single=False)
|
include_single=False)
|
||||||
self.filter_menu = gtk.combo_box_new_text()
|
self.filter_menu = gtk.combo_box_new_text()
|
||||||
for filter in filter_list:
|
for filter in filter_list:
|
||||||
self.filter_menu.append_text(filter.get_name())
|
#cut name filter so as not to make dialog too large
|
||||||
|
if len(filter.get_name()) > 60:
|
||||||
|
self.filter_menu.append_text(filter.get_name()[:60]+'...')
|
||||||
|
else:
|
||||||
|
self.filter_menu.append_text(filter.get_name())
|
||||||
if filter_index > len(filter_list):
|
if filter_index > len(filter_list):
|
||||||
filter_index = 0
|
filter_index = 0
|
||||||
self.filter_menu.set_active(filter_index)
|
self.filter_menu.set_active(filter_index)
|
||||||
@ -3069,16 +3073,7 @@ class WebReportDialog(ReportDialog):
|
|||||||
name, translated_name)
|
name, translated_name)
|
||||||
self.style_name = None
|
self.style_name = None
|
||||||
|
|
||||||
while True:
|
self.modal_call(self.make_report)
|
||||||
response = self.window.run()
|
|
||||||
if response == gtk.RESPONSE_OK:
|
|
||||||
self.close()
|
|
||||||
self.make_report()
|
|
||||||
break
|
|
||||||
elif (response == gtk.RESPONSE_DELETE_EVENT or
|
|
||||||
response == gtk.RESPONSE_CANCEL):
|
|
||||||
# the buttons generating this already call close via connect
|
|
||||||
break
|
|
||||||
|
|
||||||
def on_cancel(self, *obj):
|
def on_cancel(self, *obj):
|
||||||
self.close(*obj)
|
self.close(*obj)
|
||||||
@ -3277,8 +3272,11 @@ def mk_object_entry():
|
|||||||
'''
|
'''
|
||||||
box = gtk.HBox()
|
box = gtk.HBox()
|
||||||
label = gtk.Label()
|
label = gtk.Label()
|
||||||
|
label.set_justify(gtk.JUSTIFY_LEFT)
|
||||||
|
labelexpand = gtk.Label()
|
||||||
button_sel = gtk.Button()
|
button_sel = gtk.Button()
|
||||||
box.pack_start(label)
|
box.pack_start(label, expand=False, fill=True)
|
||||||
|
box.pack_start(labelexpand, expand=True, fill=True)
|
||||||
box.pack_start(button_sel, expand=False, fill=False)
|
box.pack_start(button_sel, expand=False, fill=False)
|
||||||
return (box, label, button_sel)
|
return (box, label, button_sel)
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user