Just a little bit of work on the cover viewer. Added a clipping group to display this a little better and fixed up its positioning problems. More to come...
This commit is contained in:
parent
5904a77c52
commit
cae16838cf
|
@ -270,7 +270,7 @@ class VideoController:
|
|||
return
|
||||
|
||||
current_pos = self.video_texture.get_position()
|
||||
new_pos = int(current_pos + amount)
|
||||
new_pos = int(int(current_pos) + int(amount))
|
||||
|
||||
if new_pos >= self.video_texture.get_duration():
|
||||
new_pos = self.video_texture.get_duration()-1
|
||||
|
|
|
@ -23,17 +23,33 @@ class coverViewer(clutter.Group):
|
|||
self.videoLibrary = []
|
||||
self.textureLibrary = []
|
||||
self.folderLibrary = []
|
||||
|
||||
self.covers_group = clutter.Group()
|
||||
self.covers_width = int(width * self.covers_size_percent)
|
||||
self.covers_height = int(height * self.covers_size_percent)
|
||||
self.current_video_details = video_details_group(self.covers_width)
|
||||
self.num_covers = 0
|
||||
self.cover_gap = 1
|
||||
|
||||
self.num_visible_rows = rows
|
||||
self.num_columns = columns
|
||||
self.cover_size = int(self.covers_width / self.num_columns) #A cover will be cover_size * cover_size (X * Y)
|
||||
|
||||
|
||||
#The viewer actually sits within another group that clips its size
|
||||
self.covers_group_clip = clutter.Group()
|
||||
self.covers_group_clip.add(self.covers_group)
|
||||
#Nasty hack to get around centering problem
|
||||
self.covers_group.set_position(int(self.cover_size/2), int(self.cover_size/2))
|
||||
#And setup the clip size and position
|
||||
scale_amount = int(self.cover_size * self.scaleFactor - self.cover_size)
|
||||
clip_width = (self.cover_size*columns) + scale_amount #Width is the cover size by the number of colums, plus the additional amount required for scaling
|
||||
clip_height = (self.cover_size*rows) + scale_amount
|
||||
self.covers_group_clip.set_clip(-(scale_amount/2), -(scale_amount/2), clip_width, clip_height)
|
||||
|
||||
|
||||
self.current_video_details = video_details_group(self.covers_width)
|
||||
self.num_covers = 0
|
||||
self.cover_gap = 1
|
||||
|
||||
|
||||
#Setup input queue controller
|
||||
self.input_queue = InputQueue()
|
||||
self.input_queue.set_action(InputQueue.NORTH, self.move_up)
|
||||
|
@ -48,12 +64,13 @@ class coverViewer(clutter.Group):
|
|||
|
||||
self.currentSelection = 0
|
||||
|
||||
self.add(self.covers_group)
|
||||
self.add(self.covers_group_clip)
|
||||
covers_x = int(width * (1-self.covers_size_percent)/2)
|
||||
covers_y = int(height * (1-self.covers_size_percent)/2)
|
||||
#self.covers_group.set_position(covers_x, covers_y)
|
||||
#self.covers_group.set_depth(1) #self.cover_size)
|
||||
self.covers_group.show()
|
||||
self.covers_group_clip.show()
|
||||
|
||||
#self.stage.add(self.current_video_description)
|
||||
self.current_video_details.show()
|
||||
|
@ -284,6 +301,7 @@ class coverViewer(clutter.Group):
|
|||
def addIncomingRow(self, min, max):
|
||||
for i in range(min, max):
|
||||
self.covers_group.add(self.textureLibrary[i])
|
||||
self.textureLibrary[i].set_opacity(0)
|
||||
self.textureLibrary[i].show()
|
||||
|
||||
def get_current_item(self):
|
||||
|
|
|
@ -20,6 +20,7 @@ from modules.video_player.folder_menu import folderMenu
|
|||
|
||||
class Module():
|
||||
title = "Videos"
|
||||
STATE_FOLDERS, STATE_COVERS, STATE_VIDEO = range(3)
|
||||
|
||||
coverViewerWidth = 750
|
||||
coverViewerHeight = 600
|
||||
|
@ -40,7 +41,7 @@ class Module():
|
|||
|
||||
#Setup initial vars
|
||||
self.is_playing = False
|
||||
self.controlState = "folder" #Options are "folder", "cover" or "video"
|
||||
self.controlState = self.STATE_FOLDERS
|
||||
self.foldersPosX = (self.coverViewerPosX - self.cover_size) / 2
|
||||
self.foldersPosY = (self.stage.get_height() - self.coverViewerHeight) / 2
|
||||
|
||||
|
@ -53,6 +54,7 @@ class Module():
|
|||
base_folder_menu.set_position(self.foldersPosX, self.foldersPosY)
|
||||
self.folderLibrary.append(base_folder_menu)
|
||||
self.load_base_folders(self.baseDir, base_folder_menu)
|
||||
|
||||
self.currentViewer = base_folder_menu.get_current_viewer()
|
||||
|
||||
def setup_ui(self):
|
||||
|
@ -146,22 +148,22 @@ class Module():
|
|||
|
||||
#*****************************************************************
|
||||
#"State based input handling
|
||||
if self.controlState == "folder":
|
||||
if self.controlState == self.STATE_FOLDERS:
|
||||
if event.keyval == clutter.keysyms.Escape:
|
||||
return True
|
||||
elif event.keyval == right:
|
||||
self.controlState = "cover"
|
||||
self.controlState = self.STATE_COVERS
|
||||
self.currentViewer = self.folderLibrary[self.folder_level].get_current_viewer()
|
||||
self.currentViewer.select_first()
|
||||
|
||||
self.folderLibrary[self.folder_level].on_key_press_event(event)
|
||||
|
||||
#**********************************************************
|
||||
elif self.controlState == "video":
|
||||
elif self.controlState == self.STATE_VIDEO:
|
||||
if event.keyval == clutter.keysyms.Escape:
|
||||
self.videoController.stop_video()
|
||||
self.is_playing = False
|
||||
self.controlState = "cover"
|
||||
self.controlState = self.STATE_COVERS
|
||||
else:
|
||||
self.videoController.on_key_press_event(event)
|
||||
|
||||
|
@ -173,7 +175,7 @@ class Module():
|
|||
else:
|
||||
self.pause()
|
||||
#**********************************************************
|
||||
elif self.controlState == "cover":
|
||||
elif self.controlState == self.STATE_COVERS:
|
||||
if (event.keyval == up) or (event.keyval == down) or (event.keyval == left) or (event.keyval == right):
|
||||
self.currentViewer.on_key_press_event(event)
|
||||
|
||||
|
@ -187,7 +189,7 @@ class Module():
|
|||
|
||||
if event.keyval == clutter.keysyms.Escape:
|
||||
self.currentViewer.select_none()
|
||||
self.controlState = "folder"
|
||||
self.controlState = self.STATE_FOLDERS
|
||||
|
||||
|
||||
|
||||
|
@ -220,8 +222,11 @@ class Module():
|
|||
self.currentViewer.set_opacity(0)
|
||||
self.currentViewer.show_all()
|
||||
self.currentViewer.show()
|
||||
#self.currentViewer_clip.show()
|
||||
self.currentViewer.set_position(self.coverViewerPosX, self.coverViewerPosY)
|
||||
self.stage.add(self.currentViewer)
|
||||
|
||||
#self.stage.add(self.currentViewer)
|
||||
self.stage.add(self.currentViewer)
|
||||
|
||||
|
||||
#Fade everything in
|
||||
|
@ -270,7 +275,7 @@ class Module():
|
|||
uri = "file://" + str(vid.filename)
|
||||
self.videoController.play_video(uri, self)
|
||||
self.is_playing = True
|
||||
self.controlState = "video"
|
||||
self.controlState = self.STATE_VIDEO
|
||||
|
||||
self.stage.remove(self.currentViewer)
|
||||
|
||||
|
@ -286,7 +291,7 @@ class Module():
|
|||
self.behaviour = clutter.BehaviourOpacity(opacity_start=0, opacity_end=255, alpha=alpha)
|
||||
self.behaviour.apply(self.currentViewer)
|
||||
|
||||
self.stage.add()
|
||||
self.stage.add(self.currentViewer)
|
||||
self.currentViewer.show()
|
||||
timeline.start()
|
||||
|
||||
|
|
Loading…
Reference in New Issue