Can populate and save current playlist

git-svn-id: file:///home/anna/Desktop/ocarina-legacy/mithos/ocarina@34 1daee41c-8060-4895-b1f0-2197c00d777a
This commit is contained in:
bjschuma 2009-06-28 19:23:51 +00:00
parent ae0ba5468e
commit 9bb8ecc0a0
6 changed files with 81 additions and 30 deletions

View File

@ -1,7 +1,7 @@
open:
geany src/GuiObjects/*.py &
geany src/*.py &
geany src/GuiObjects/*.py
clean:
rm -rf src/*.pyo

View File

@ -1,2 +1,2 @@
__all__ = ['menuItem','libView']
__all__ = ['menuItem','libView','plistView']

View File

@ -8,12 +8,13 @@ from menuItem import MenuItem
#class LibView(gtk.ScrolledWindow):
class LibView(gtk.VBox):
def __init__(self,library):
def __init__(self,data):
#gtk.ScrolledWindow.__init__(self)
gtk.VBox.__init__(self,False,0)
self.win = gtk.ScrolledWindow()
self.win.set_policy(gtk.POLICY_AUTOMATIC,gtk.POLICY_AUTOMATIC)
self.library = library
#self.data.library = library
self.data = data
self.treeview = None
self.col = None
self.pbar = gtk.ProgressBar()
@ -27,23 +28,23 @@ class LibView(gtk.VBox):
# Use to update the library pane
def update(self):
rval = self.library.scanning
#if self.library.count == 0:
rval = self.data.library.scanning
#if self.data.library.count == 0:
# return False
if self.treeview:
self.win.remove(self.treeview)
self.treeview.remove_column(self.col)
self.pbar.pulse()
self.pbar.set_text("Found "+str(self.library.count)+" files.")
self.pbar.set_text("Found "+str(self.data.library.count)+" files.")
tree = gtk.TreeStore(str,int)
for artist in self.library.artAlb.keys():
for artist in self.data.library.artAlb.keys():
ariter = tree.append(None,[artist.title(),-1])
for album in self.library.artAlb[artist]:
for album in self.data.library.artAlb[artist]:
aliter = tree.append(ariter,[album.title(),-1])
for track in self.library.albTrk[(artist,album)]:
for track in self.data.library.albTrk[(artist,album)]:
#if rval == False:
# print artist,album,self.library.files[track].title
tree.append(aliter,[self.library.files[track].title,self.library.files[track].id])
# print artist,album,self.data.library.files[track].title
tree.append(aliter,[self.data.library.files[track].title,self.data.library.files[track].id])
self.treeview = gtk.TreeView(tree)
self.treeview.connect("button_release_event",self.clicked)
self.col = gtk.TreeViewColumn('Library')
@ -64,12 +65,12 @@ class LibView(gtk.VBox):
def makeLabel(self):
self.label = gtk.Label(str(self.library.count)+" tracks in collection")
self.label = gtk.Label(str(self.data.library.count)+" tracks in collection")
self.label.show()
def updateLabel(self):
self.label.set_text(str(self.library.count)+" tracks in collection")
self.label.set_text(str(self.data.library.count)+" tracks in collection")
self.label.show()
@ -94,14 +95,17 @@ class LibView(gtk.VBox):
def populatePlaylist(self,widgit,func,data):
(model,pathlist) = self.selection.get_selected_rows()
self.data.curList = []
for path in pathlist:
iter = model.get_iter(path)
self.popHelper(model,iter,model.iter_n_children(iter))
self.data.updateList = True
def popHelper(self,model,iter,count):
if count == 0:
print model[iter][0],count
#print model[iter][0],count
self.data.curList+=[model[iter][1]]
return
child = model.iter_children(iter)

View File

@ -0,0 +1,41 @@
import gobject
import pygtk
pygtk.require('2.0')
import gtk
class PlistView(gtk.ScrolledWindow):
def __init__(self,data):
gtk.ScrolledWindow.__init__(self)
self.set_policy(gtk.POLICY_AUTOMATIC,gtk.POLICY_AUTOMATIC)
self.data = data
self.tree = None
self.makeList()
gobject.timeout_add(1000,self.checkUpdate)
def checkUpdate(self):
if self.data.updateList == True:
self.data.updateList = False
self.makeList()
return True
def makeList(self):
trackList= gtk.ListStore(int,str,str,str,str)
if self.tree:
self.remove(self.tree)
for index in self.data.curList:
track = self.data.library.files[index]
trackList.append([track.id,track.title,track.artist,track.album,track.length])
self.tree = gtk.TreeView(trackList)
cell = gtk.CellRendererText()
cols = ["Id","Title","Artist","Album","Length"]
for i in range(len(cols)):
col = gtk.TreeViewColumn(cols[i],cell)
col.add_attribute(cell,'text',i)
col.set_resizable(True)
col.set_sort_column_id(i)
self.tree.append_column(col)
self.tree.show()
self.add(self.tree)

View File

@ -10,6 +10,8 @@ class SavedData:
self.size = (800,600)
self.divider = 150
self.library = Library()
self.curList = []
self.updateList = False
self.path = path
if os.path.exists(path):
@ -37,3 +39,4 @@ class SavedData:
self.size = data.size
self.library = data.library
self.divider = data.divider
self.curList = data.curList

View File

@ -8,6 +8,7 @@ from kiwi.ui.objectlist import Column, ObjectList
from GuiObjects.menuItem import MenuItem
from GuiObjects.libView import LibView
from GuiObjects.plistView import PlistView
class Window(gtk.Window):
@ -320,30 +321,32 @@ class Window(gtk.Window):
self.contentPane.add(self.divider)
self.divider.show()
self.libview = LibView(self.data.library)
self.libview = LibView(self.data)
self.libview.show()
self.divider.add1(self.libview)
rightPane=gtk.VBox(False,0)
tracks = gtk.TreeStore(str)
#tracks = gtk.TreeStore(str)
#for file in self.data.library.files:
# tracks.append(None,[file.title])
trackview = gtk.TreeView(tracks)
title = gtk.TreeViewColumn('filename')
trackview.append_column(title)
cell = gtk.CellRendererText()
title.pack_start(cell,True)
title.add_attribute(cell,'text',0)
trackview.set_rules_hint(True)
trackview.show()
trackscroll = gtk.ScrolledWindow()
trackscroll.set_policy(gtk.POLICY_AUTOMATIC,gtk.POLICY_AUTOMATIC)
trackscroll.add(trackview)
trackscroll.show()
#trackview = gtk.TreeView(tracks)
#title = gtk.TreeViewColumn('filename')
#trackview.append_column(title)
#cell = gtk.CellRendererText()
#title.pack_start(cell,True)
#title.add_attribute(cell,'text',0)
#trackview.set_rules_hint(True)
#trackview.show()
#trackscroll = gtk.ScrolledWindow()
#trackscroll.set_policy(gtk.POLICY_AUTOMATIC,gtk.POLICY_AUTOMATIC)
#trackscroll.add(trackview)
#trackscroll.show()
#rightPane.pack_start(trackscroll,False,False,0)
rightPane.add(trackscroll)
self.plistview = PlistView(self.data)
self.plistview.show()
rightPane.add(self.plistview)
self.makeBottomRow(rightPane)
rightPane.show()