diff --git a/mopidy_touchscreen/.idea/workspace.xml b/mopidy_touchscreen/.idea/workspace.xml index 837613c..dee3905 100644 --- a/mopidy_touchscreen/.idea/workspace.xml +++ b/mopidy_touchscreen/.idea/workspace.xml @@ -23,11 +23,11 @@ - + - - + + @@ -46,18 +46,20 @@ - - - + + + + + - + - - + + @@ -78,8 +80,8 @@ @@ -293,11 +295,11 @@ - + - + @@ -320,6 +322,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -340,7 +368,9 @@ - + + + @@ -419,22 +449,6 @@ - - - - - - - - - - - - - - - - @@ -443,10 +457,28 @@ + + + + + + + + + + - - + + + + + + + + + + diff --git a/mopidy_touchscreen/library_screen.py b/mopidy_touchscreen/library_screen.py index a742711..6df5c2c 100644 --- a/mopidy_touchscreen/library_screen.py +++ b/mopidy_touchscreen/library_screen.py @@ -1,5 +1,7 @@ from .list_view import ListView +import logging +logger = logging.getLogger(__name__) class LibraryScreen(): @@ -8,12 +10,26 @@ class LibraryScreen(): self.base_size = base_size self.manager = manager self.list_view = ListView((0,self.base_size),(self.size[0],self.size[1]-2*self.base_size), self.base_size, manager.fonts) - self.library = self.manager.core.library.browse(None).get() + self.directory_list = [] + self.library = None + self.library_strings = None + self.lookup_uri(None) + + def lookup_uri(self, uri): self.library_strings = [] + if uri is not None: + self.directory_list.append(uri) + self.library_strings.append("..") + self.library = self.manager.core.library.browse(uri).get() for lib in self.library: self.library_strings.append(lib.name) self.list_view.set_list(self.library_strings) + def go_up_directory(self): + if len(self.directory_list) > 0: + self.lookup_uri(self.directory_list.pop()) + else: + self.lookup_uri(None) def update(self, screen): self.list_view.render(screen) @@ -21,4 +37,10 @@ class LibraryScreen(): def touch_event(self, touch_event): clicked = self.list_view.touch_event(touch_event) if clicked is not None: - pass + if len(self.directory_list) > 0: + if clicked == 0: + self.go_up_directory() + else: + self.lookup_uri(self.library[clicked-1].uri) + else: + self.lookup_uri(self.library[clicked].uri) diff --git a/mopidy_touchscreen/main_screen.py b/mopidy_touchscreen/main_screen.py index 8510698..8872dbf 100644 --- a/mopidy_touchscreen/main_screen.py +++ b/mopidy_touchscreen/main_screen.py @@ -60,10 +60,9 @@ class MainScreen(): self.touch_text_manager.set_touch_object("previous", button) size_1 = button.get_right_pos() - button = TouchAndTextItem(self.fonts['icon'], u"\ue61d", (0, 0), None) + size_2 = self.fonts['icon'].size(u"\ue61d")[0] + button = TouchAndTextItem(self.fonts['icon'], u"\ue61d", (self.size[0] - size_2, self.base_size * 6), None) self.touch_text_manager.set_touch_object("next", button) - size_2 = button.get_right_pos() - button.pos = (self.size[0] - size_2, self.base_size * 6) #Progress progress = Progressbar(self.fonts['base'],time.strftime('%M:%S', time.gmtime(0))+"/"+time.strftime('%M:%S', time.gmtime(0)),(size_1, self.base_size*6), (self.size[0] - size_1- size_2,self.base_size),track.length/1000, False) diff --git a/mopidy_touchscreen/screen_manager.py b/mopidy_touchscreen/screen_manager.py index 08a90d6..0a05a41 100644 --- a/mopidy_touchscreen/screen_manager.py +++ b/mopidy_touchscreen/screen_manager.py @@ -103,7 +103,7 @@ class ScreenManager(): x = button.get_right_pos() #Down bar - self.down_bar = pygame.Surface((self.size[0], self.base_size), pygame.SRCALPHA) + self.down_bar = pygame.Surface((self.size[0], self.size[1] - self.base_size * 7), pygame.SRCALPHA) self.down_bar.fill((0, 0, 0, 128)) self.options_changed() @@ -116,7 +116,7 @@ class ScreenManager(): self.background.draw_background(surface) self.screens[self.current_screen].update(surface) surface.blit(self.top_bar, (0, 0)) - surface.blit(self.top_bar, (0, self.base_size * 7)) + surface.blit(self.down_bar, (0, self.base_size * 7)) self.screen_objects_manager.render(surface) return surface