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:
parent
ae0ba5468e
commit
9bb8ecc0a0
|
@ -1,7 +1,7 @@
|
|||
|
||||
open:
|
||||
geany src/GuiObjects/*.py &
|
||||
geany src/*.py &
|
||||
geany src/GuiObjects/*.py
|
||||
|
||||
clean:
|
||||
rm -rf src/*.pyo
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
|
||||
__all__ = ['menuItem','libView']
|
||||
__all__ = ['menuItem','libView','plistView']
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
|
@ -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
|
||||
|
|
|
@ -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()
|
||||
|
||||
|
|
Loading…
Reference in New Issue