Broke glade files up into smaller chunks, sort and double click added to all main views.

svn: r541
This commit is contained in:
Don Allingham
2001-11-03 18:59:42 +00:00
parent 1183e771f0
commit 4638c2c40d
19 changed files with 2286 additions and 1721 deletions

@ -28,6 +28,7 @@ from RelLib import *
import utils
import const
import os
import Config
from intl import gettext
_ = gettext
@ -35,23 +36,83 @@ _ = gettext
class MediaView:
def __init__(self,db,glade,update):
self.db = db
self.media_list = glade.get_widget("media_list")
self.mid = glade.get_widget("mid")
self.mtype = glade.get_widget("mtype")
self.mdesc = glade.get_widget("mdesc")
self.mpath = glade.get_widget("mpath")
self.mdetails = glade.get_widget("mdetails")
self.preview = glade.get_widget("preview")
self.media_list = glade.get_widget("media_list")
self.mid = glade.get_widget("mid")
self.mtype = glade.get_widget("mtype")
self.mdesc = glade.get_widget("mdesc")
self.mpath = glade.get_widget("mpath")
self.mdetails = glade.get_widget("mdetails")
self.mid_arrow = glade.get_widget("mid_arrow")
self.mdescr_arrow= glade.get_widget("mdescr_arrow")
self.mtype_arrow = glade.get_widget("mtype_arrow")
self.mpath_arrow = glade.get_widget("mpath_arrow")
self.preview = glade.get_widget("preview")
self.sort_arrow = [self.mdescr_arrow, self.mid_arrow,
self.mtype_arrow, self.mpath_arrow]
self.sort_map = [5,1,2,3,-1]
self.sort_col = 5
self.sort_dir = GTK.SORT_ASCENDING
self.media_list.connect('click-column',self.click_column)
self.mid_arrow.hide()
self.mtype_arrow.hide()
self.mpath_arrow.hide()
t = [ ('STRING', 0, 0),
('text/plain',0,0),
('text/uri-list',0,2),
('application/x-rootwin-drop',0,1)]
self.media_list.drag_source_set(GDK.BUTTON1_MASK|GDK.BUTTON3_MASK,t,GDK.ACTION_COPY)
self.media_list.drag_dest_set(GTK.DEST_DEFAULT_ALL,t,GDK.ACTION_COPY|GDK.ACTION_MOVE)
self.media_list.drag_source_set(GDK.BUTTON1_MASK|GDK.BUTTON3_MASK,
t,
GDK.ACTION_COPY)
self.media_list.drag_dest_set(GTK.DEST_DEFAULT_ALL,
t,
GDK.ACTION_COPY|GDK.ACTION_MOVE)
self.update = update
self.media_list.set_column_visibility(4,Config.show_detail)
self.media_list.set_column_visibility(5,0)
self.media_list.connect('button-press-event',self.on_button_press_event)
def click_column(self,obj,column):
new_col = self.sort_map[column]
if new_col == -1:
return
data = None
if len(obj.selection) == 1:
data = obj.get_row_data(obj.selection[0])
obj.freeze()
if new_col == self.sort_col:
if self.sort_dir == GTK.SORT_ASCENDING:
self.sort_dir = GTK.SORT_DESCENDING
else:
self.sort_dir = GTK.SORT_ASCENDING
else:
self.sort_dir = GTK.SORT_ASCENDING
for a in self.sort_arrow:
a.hide()
a = self.sort_arrow[column]
a.show()
if self.sort_dir == GTK.SORT_ASCENDING:
a.set(GTK.ARROW_DOWN,2)
else:
a.set(GTK.ARROW_UP,2)
obj.set_sort_type(self.sort_dir)
obj.set_sort_column(new_col)
self.sort_col = new_col
obj.sort()
if data:
row = obj.find_row_from_data(data)
obj.moveto(row)
obj.thaw()
def on_select_row(self,obj,row,b,c):
mobj = obj.get_row_data(row)
@ -67,7 +128,15 @@ class MediaView:
self.mpath.set_text(path)
else:
self.mpath.set_text("<local>")
self.mdetails.set_text("")
self.mdetails.set_text(utils.get_detail_text(mobj,0))
def on_button_press_event(self,obj,event):
if event.button != 1 or event.type != GDK._2BUTTON_PRESS:
return
if len(self.media_list.selection) <= 0:
return
object = self.media_list.get_row_data(self.media_list.selection[0])
ImageSelect.GlobalMediaProperties(self.db,object,self.load_media)
def load_media(self):
@ -78,7 +147,9 @@ class MediaView:
self.media_list.freeze()
self.media_list.clear()
self.media_list.set_column_visibility(1,Config.id_visible)
self.media_list.set_column_visibility(4,Config.show_detail)
index = 0
objects = self.db.getObjectMap().values()
@ -90,7 +161,9 @@ class MediaView:
path = "<local copy>"
else:
path = src.getPath()
self.media_list.append([id,title,type,path,""])
details = utils.get_detail_flags(src,0)
stitle = string.upper(title)
self.media_list.append([title,id,type,path,details,stitle])
self.media_list.set_row_data(index,src)
index = index + 1