library_screen.py 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. from .list_view import ListView
  2. import logging
  3. logger = logging.getLogger(__name__)
  4. class LibraryScreen():
  5. def __init__(self, size, base_size, manager):
  6. self.size = size
  7. self.base_size = base_size
  8. self.manager = manager
  9. self.list_view = ListView((0,self.base_size),(self.size[0],self.size[1]-2*self.base_size), self.base_size, manager.fonts)
  10. self.directory_list = []
  11. self.library = None
  12. self.library_strings = None
  13. self.lookup_uri(None)
  14. def lookup_uri(self, uri):
  15. self.library_strings = []
  16. if uri is not None:
  17. self.directory_list.append(uri)
  18. self.library_strings.append("..")
  19. self.library = self.manager.core.library.browse(uri).get()
  20. for lib in self.library:
  21. self.library_strings.append(lib.name)
  22. self.list_view.set_list(self.library_strings)
  23. def go_up_directory(self):
  24. if len(self.directory_list) > 0:
  25. self.lookup_uri(self.directory_list.pop())
  26. else:
  27. self.lookup_uri(None)
  28. def update(self, screen):
  29. self.list_view.render(screen)
  30. def touch_event(self, touch_event):
  31. clicked = self.list_view.touch_event(touch_event)
  32. if clicked is not None:
  33. if len(self.directory_list) > 0:
  34. if clicked == 0:
  35. self.go_up_directory()
  36. else:
  37. self.lookup_uri(self.library[clicked-1].uri)
  38. else:
  39. self.lookup_uri(self.library[clicked].uri)