Source improvements

svn: r1389
This commit is contained in:
Don Allingham
2003-03-24 03:51:07 +00:00
parent 11349e589b
commit 2588cc35d4
8 changed files with 214 additions and 137 deletions

View File

@@ -67,6 +67,8 @@ class SourceSelector:
})
self.slist = self.top.get_widget("slist")
self.edit = self.top.get_widget('edit')
self.delete = self.top.get_widget('delete')
self.selection = self.slist.get_selection()
self.model = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING)
self.slist.set_model(self.model)
@@ -82,9 +84,22 @@ class SourceSelector:
column.set_min_width(title[2])
self.slist.append_column (column)
self.selection.connect('changed',self.selection_changed)
self.delete.set_sensitive(gtk.FALSE)
self.edit.set_sensitive(gtk.FALSE)
self.redraw()
self.sourcesel.show()
def selection_changed(self,obj):
(store,iter) = self.selection.get_selected()
if iter:
self.delete.set_sensitive(gtk.TRUE)
self.edit.set_sensitive(gtk.TRUE)
else:
self.delete.set_sensitive(gtk.FALSE)
self.edit.set_sensitive(gtk.FALSE)
def redraw(self):
self.model.clear()
for s in self.list:
@@ -220,15 +235,22 @@ class SourceEditor:
self.showSource.signal_autoconnect({
"on_sourceok_clicked" : self.on_sourceok_clicked,
"on_source_changed" : self.on_source_changed,
"on_add_src_clicked" : self.add_src_clicked,
"destroy_passed_object" : Utils.destroy_passed_object
})
self.source_field = self.get_widget("sourceList")
self.title_menu = self.get_widget("source_title")
self.title_menu.set_data("o",self)
self.conf_menu = self.get_widget("conf")
self.ok = self.get_widget("ok")
Utils.build_confidence_menu(self.conf_menu)
self.conf_menu.set_history(srcref.getConfidence())
self.list = []
self.title_menu.list.select_item(0)
self.title_menu.list.remove_items(self.title_menu.list.get_selection())
self.author_field = self.get_widget("sauthor")
self.pub_field = self.get_widget("spubinfo")
@@ -236,14 +258,23 @@ class SourceEditor:
self.active_source = self.source_ref.getBase()
else:
self.active_source = None
self.draw()
self.set_button()
self.sourceDisplay.show()
def set_button(self):
if self.active_source:
self.ok.set_sensitive(1)
else:
self.ok.set_sensitive(0)
def get_widget(self,name):
"""returns the widget associated with the specified name"""
return self.showSource.get_widget(name)
def draw(self):
def draw(self,sel = None):
self.title_menu.list.remove_items(self.list)
if self.source_ref:
self.get_widget("spage").set_text(self.source_ref.getPage())
date = self.source_ref.getDate()
@@ -267,7 +298,8 @@ class SourceEditor:
values = self.db.getSourceMap().values()
sel_child = None
list = []
self.list = []
self.active_source = sel
for src in values:
l = gtk.Label("%s [%s]" % (src.getTitle(),src.getId()))
l.show()
@@ -276,16 +308,17 @@ class SourceEditor:
c.add(l)
c.set_data("s",src)
c.show()
list.append(c)
self.list.append(c)
if self.active_source == src:
sel_child = c
self.title_menu.list.append_items(list)
self.title_menu.list.append_items(self.list)
if sel_child:
self.title_menu.list.select_child(sel_child)
def on_sourceok_clicked(self,obj):
if self.active_source != self.source_ref.getBase():
self.source_ref.setBase(self.active_source)
@@ -314,11 +347,23 @@ class SourceEditor:
Utils.destroy_passed_object(obj)
def on_source_changed(self,obj):
self.active_source = obj.list.get_selection()[0].get_data("s")
sel = obj.list.get_selection()
if sel:
self.active_source = sel[0].get_data("s")
if self.active_source:
self.author_field.set_text(self.active_source.getAuthor())
self.pub_field.set_text(self.active_source.getPubInfo())
self.set_button()
if self.active_source:
self.author_field.set_text(self.active_source.getAuthor())
self.pub_field.set_text(self.active_source.getPubInfo())
def update_display(self,source):
self.db.addSource(source)
self.draw(source)
# self.update(0)
def add_src_clicked(self,obj):
import EditSource
import RelLib
EditSource.EditSource(RelLib.Source(),self.db, self.update_display)