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:
|
open:
|
||||||
|
geany src/GuiObjects/*.py &
|
||||||
geany src/*.py &
|
geany src/*.py &
|
||||||
geany src/GuiObjects/*.py
|
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -rf src/*.pyo
|
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.ScrolledWindow):
|
||||||
class LibView(gtk.VBox):
|
class LibView(gtk.VBox):
|
||||||
def __init__(self,library):
|
def __init__(self,data):
|
||||||
#gtk.ScrolledWindow.__init__(self)
|
#gtk.ScrolledWindow.__init__(self)
|
||||||
gtk.VBox.__init__(self,False,0)
|
gtk.VBox.__init__(self,False,0)
|
||||||
self.win = gtk.ScrolledWindow()
|
self.win = gtk.ScrolledWindow()
|
||||||
self.win.set_policy(gtk.POLICY_AUTOMATIC,gtk.POLICY_AUTOMATIC)
|
self.win.set_policy(gtk.POLICY_AUTOMATIC,gtk.POLICY_AUTOMATIC)
|
||||||
self.library = library
|
#self.data.library = library
|
||||||
|
self.data = data
|
||||||
self.treeview = None
|
self.treeview = None
|
||||||
self.col = None
|
self.col = None
|
||||||
self.pbar = gtk.ProgressBar()
|
self.pbar = gtk.ProgressBar()
|
||||||
|
@ -27,23 +28,23 @@ class LibView(gtk.VBox):
|
||||||
|
|
||||||
# Use to update the library pane
|
# Use to update the library pane
|
||||||
def update(self):
|
def update(self):
|
||||||
rval = self.library.scanning
|
rval = self.data.library.scanning
|
||||||
#if self.library.count == 0:
|
#if self.data.library.count == 0:
|
||||||
# return False
|
# return False
|
||||||
if self.treeview:
|
if self.treeview:
|
||||||
self.win.remove(self.treeview)
|
self.win.remove(self.treeview)
|
||||||
self.treeview.remove_column(self.col)
|
self.treeview.remove_column(self.col)
|
||||||
self.pbar.pulse()
|
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)
|
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])
|
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])
|
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:
|
#if rval == False:
|
||||||
# print artist,album,self.library.files[track].title
|
# print artist,album,self.data.library.files[track].title
|
||||||
tree.append(aliter,[self.library.files[track].title,self.library.files[track].id])
|
tree.append(aliter,[self.data.library.files[track].title,self.data.library.files[track].id])
|
||||||
self.treeview = gtk.TreeView(tree)
|
self.treeview = gtk.TreeView(tree)
|
||||||
self.treeview.connect("button_release_event",self.clicked)
|
self.treeview.connect("button_release_event",self.clicked)
|
||||||
self.col = gtk.TreeViewColumn('Library')
|
self.col = gtk.TreeViewColumn('Library')
|
||||||
|
@ -64,12 +65,12 @@ class LibView(gtk.VBox):
|
||||||
|
|
||||||
|
|
||||||
def makeLabel(self):
|
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()
|
self.label.show()
|
||||||
|
|
||||||
|
|
||||||
def updateLabel(self):
|
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()
|
self.label.show()
|
||||||
|
|
||||||
|
|
||||||
|
@ -94,14 +95,17 @@ class LibView(gtk.VBox):
|
||||||
|
|
||||||
def populatePlaylist(self,widgit,func,data):
|
def populatePlaylist(self,widgit,func,data):
|
||||||
(model,pathlist) = self.selection.get_selected_rows()
|
(model,pathlist) = self.selection.get_selected_rows()
|
||||||
|
self.data.curList = []
|
||||||
for path in pathlist:
|
for path in pathlist:
|
||||||
iter = model.get_iter(path)
|
iter = model.get_iter(path)
|
||||||
self.popHelper(model,iter,model.iter_n_children(iter))
|
self.popHelper(model,iter,model.iter_n_children(iter))
|
||||||
|
self.data.updateList = True
|
||||||
|
|
||||||
|
|
||||||
def popHelper(self,model,iter,count):
|
def popHelper(self,model,iter,count):
|
||||||
if count == 0:
|
if count == 0:
|
||||||
print model[iter][0],count
|
#print model[iter][0],count
|
||||||
|
self.data.curList+=[model[iter][1]]
|
||||||
return
|
return
|
||||||
|
|
||||||
child = model.iter_children(iter)
|
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.size = (800,600)
|
||||||
self.divider = 150
|
self.divider = 150
|
||||||
self.library = Library()
|
self.library = Library()
|
||||||
|
self.curList = []
|
||||||
|
self.updateList = False
|
||||||
self.path = path
|
self.path = path
|
||||||
|
|
||||||
if os.path.exists(path):
|
if os.path.exists(path):
|
||||||
|
@ -37,3 +39,4 @@ class SavedData:
|
||||||
self.size = data.size
|
self.size = data.size
|
||||||
self.library = data.library
|
self.library = data.library
|
||||||
self.divider = data.divider
|
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.menuItem import MenuItem
|
||||||
from GuiObjects.libView import LibView
|
from GuiObjects.libView import LibView
|
||||||
|
from GuiObjects.plistView import PlistView
|
||||||
|
|
||||||
|
|
||||||
class Window(gtk.Window):
|
class Window(gtk.Window):
|
||||||
|
@ -320,30 +321,32 @@ class Window(gtk.Window):
|
||||||
self.contentPane.add(self.divider)
|
self.contentPane.add(self.divider)
|
||||||
self.divider.show()
|
self.divider.show()
|
||||||
|
|
||||||
self.libview = LibView(self.data.library)
|
self.libview = LibView(self.data)
|
||||||
self.libview.show()
|
self.libview.show()
|
||||||
self.divider.add1(self.libview)
|
self.divider.add1(self.libview)
|
||||||
|
|
||||||
rightPane=gtk.VBox(False,0)
|
rightPane=gtk.VBox(False,0)
|
||||||
|
|
||||||
tracks = gtk.TreeStore(str)
|
#tracks = gtk.TreeStore(str)
|
||||||
#for file in self.data.library.files:
|
#for file in self.data.library.files:
|
||||||
# tracks.append(None,[file.title])
|
# tracks.append(None,[file.title])
|
||||||
|
|
||||||
trackview = gtk.TreeView(tracks)
|
#trackview = gtk.TreeView(tracks)
|
||||||
title = gtk.TreeViewColumn('filename')
|
#title = gtk.TreeViewColumn('filename')
|
||||||
trackview.append_column(title)
|
#trackview.append_column(title)
|
||||||
cell = gtk.CellRendererText()
|
#cell = gtk.CellRendererText()
|
||||||
title.pack_start(cell,True)
|
#title.pack_start(cell,True)
|
||||||
title.add_attribute(cell,'text',0)
|
#title.add_attribute(cell,'text',0)
|
||||||
trackview.set_rules_hint(True)
|
#trackview.set_rules_hint(True)
|
||||||
trackview.show()
|
#trackview.show()
|
||||||
trackscroll = gtk.ScrolledWindow()
|
#trackscroll = gtk.ScrolledWindow()
|
||||||
trackscroll.set_policy(gtk.POLICY_AUTOMATIC,gtk.POLICY_AUTOMATIC)
|
#trackscroll.set_policy(gtk.POLICY_AUTOMATIC,gtk.POLICY_AUTOMATIC)
|
||||||
trackscroll.add(trackview)
|
#trackscroll.add(trackview)
|
||||||
trackscroll.show()
|
#trackscroll.show()
|
||||||
#rightPane.pack_start(trackscroll,False,False,0)
|
#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)
|
self.makeBottomRow(rightPane)
|
||||||
rightPane.show()
|
rightPane.show()
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue