Jelajahi Sumber

Next track button fixed

9and3r 11 tahun lalu
induk
melakukan
722e2e16c0

+ 58 - 26
mopidy_touchscreen/.idea/workspace.xml

@@ -23,11 +23,11 @@
   </component>
   <component name="FileEditorManager">
     <leaf>
-      <file leaf-file-name="screen_manager.py" pinned="false" current="false" current-in-tab="false">
+      <file leaf-file-name="screen_manager.py" pinned="false" current="true" current-in-tab="true">
         <entry file="file://$PROJECT_DIR$/screen_manager.py">
           <provider selected="true" editor-type-id="text-editor">
-            <state vertical-scroll-proportion="0.0" vertical-offset="1020" max-vertical-offset="2940">
-              <caret line="92" column="34" selection-start-line="90" selection-start-column="8" selection-end-line="92" selection-end-column="34" />
+            <state vertical-scroll-proportion="0.45454547" vertical-offset="1995" max-vertical-offset="2940">
+              <caret line="157" column="96" selection-start-line="157" selection-start-column="96" selection-end-line="157" selection-end-column="96" />
               <folding />
             </state>
           </provider>
@@ -46,18 +46,20 @@
       <file leaf-file-name="library_screen.py" pinned="false" current="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/library_screen.py">
           <provider selected="true" editor-type-id="text-editor">
-            <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="450">
-              <caret line="15" column="0" selection-start-line="15" selection-start-column="0" selection-end-line="15" selection-end-column="0" />
-              <folding />
+            <state vertical-scroll-proportion="0.0" vertical-offset="37" max-vertical-offset="780">
+              <caret line="40" column="32" selection-start-line="40" selection-start-column="32" selection-end-line="40" selection-end-column="32" />
+              <folding>
+                <element signature="e#0#31#0" expanded="true" />
+              </folding>
             </state>
           </provider>
         </entry>
       </file>
-      <file leaf-file-name="main_screen.py" pinned="false" current="true" current-in-tab="true">
+      <file leaf-file-name="main_screen.py" pinned="false" current="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/main_screen.py">
           <provider selected="true" editor-type-id="text-editor">
-            <state vertical-scroll-proportion="0.5691906" vertical-offset="1732" max-vertical-offset="2340">
-              <caret line="141" column="24" selection-start-line="141" selection-start-column="24" selection-end-line="141" selection-end-column="24" />
+            <state vertical-scroll-proportion="0.0" vertical-offset="1530" max-vertical-offset="2325">
+              <caret line="139" column="39" selection-start-line="139" selection-start-column="39" selection-end-line="139" selection-end-column="39" />
               <folding />
             </state>
           </provider>
@@ -78,8 +80,8 @@
         <option value="$PROJECT_DIR$/screen_objects.py" />
         <option value="$PROJECT_DIR$/touch_screen.py" />
         <option value="$PROJECT_DIR$/library_screen.py" />
-        <option value="$PROJECT_DIR$/screen_manager.py" />
         <option value="$PROJECT_DIR$/main_screen.py" />
+        <option value="$PROJECT_DIR$/screen_manager.py" />
       </list>
     </option>
   </component>
@@ -293,11 +295,11 @@
       <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="9" side_tool="false" content_ui="tabs" />
       <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
       <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
-      <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
       <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
+      <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
       <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="SLIDING" type="SLIDING" visible="false" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
-      <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
       <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
+      <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
     </layout>
   </component>
   <component name="Vcs.Log.UiProperties">
@@ -320,6 +322,32 @@
     <breakpoint-manager />
   </component>
   <component name="editorHistoryManager">
+    <entry file="file://$PROJECT_DIR$/screen_manager.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state vertical-scroll-proportion="0.0" vertical-offset="210" max-vertical-offset="3120">
+          <caret line="14" column="36" selection-start-line="14" selection-start-column="0" selection-end-line="14" selection-end-column="36" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/playlist_screen.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="555">
+          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="31" selection-end-column="0" />
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/library_screen.py">
+      <provider selected="true" editor-type-id="text-editor">
+        <state vertical-scroll-proportion="0.0" vertical-offset="240" max-vertical-offset="780">
+          <caret line="23" column="32" selection-start-line="23" selection-start-column="32" selection-end-line="23" selection-end-column="32" />
+          <folding>
+            <element signature="e#0#31#0" expanded="true" />
+          </folding>
+        </state>
+      </provider>
+    </entry>
     <entry file="file://$PROJECT_DIR$/screen_manager.py">
       <provider selected="true" editor-type-id="text-editor">
         <state vertical-scroll-proportion="0.0" vertical-offset="1104" max-vertical-offset="3120">
@@ -340,7 +368,9 @@
       <provider selected="true" editor-type-id="text-editor">
         <state vertical-scroll-proportion="0.0" vertical-offset="255" max-vertical-offset="450">
           <caret line="17" column="5" selection-start-line="17" selection-start-column="5" selection-end-line="17" selection-end-column="5" />
-          <folding />
+          <folding>
+            <element signature="e#0#31#0" expanded="true" />
+          </folding>
         </state>
       </provider>
     </entry>
@@ -419,34 +449,36 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/library_screen.py">
+    <entry file="file://$PROJECT_DIR$/playlist_screen.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="450">
-          <caret line="15" column="0" selection-start-line="15" selection-start-column="0" selection-end-line="15" selection-end-column="0" />
+        <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="555">
+          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="31" selection-end-column="0" />
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/screen_manager.py">
+    <entry file="file://$PROJECT_DIR$/library_screen.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state vertical-scroll-proportion="0.0" vertical-offset="1020" max-vertical-offset="2940">
-          <caret line="92" column="34" selection-start-line="90" selection-start-column="8" selection-end-line="92" selection-end-column="34" />
-          <folding />
+        <state vertical-scroll-proportion="0.0" vertical-offset="37" max-vertical-offset="780">
+          <caret line="40" column="32" selection-start-line="40" selection-start-column="32" selection-end-line="40" selection-end-column="32" />
+          <folding>
+            <element signature="e#0#31#0" expanded="true" />
+          </folding>
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/playlist_screen.py">
+    <entry file="file://$PROJECT_DIR$/main_screen.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="555">
-          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="31" selection-end-column="0" />
+        <state vertical-scroll-proportion="0.0" vertical-offset="1530" max-vertical-offset="2325">
+          <caret line="139" column="39" selection-start-line="139" selection-start-column="39" selection-end-line="139" selection-end-column="39" />
           <folding />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/main_screen.py">
+    <entry file="file://$PROJECT_DIR$/screen_manager.py">
       <provider selected="true" editor-type-id="text-editor">
-        <state vertical-scroll-proportion="0.5691906" vertical-offset="1732" max-vertical-offset="2340">
-          <caret line="141" column="24" selection-start-line="141" selection-start-column="24" selection-end-line="141" selection-end-column="24" />
+        <state vertical-scroll-proportion="0.45454547" vertical-offset="1995" max-vertical-offset="2940">
+          <caret line="157" column="96" selection-start-line="157" selection-start-column="96" selection-end-line="157" selection-end-column="96" />
           <folding />
         </state>
       </provider>

+ 24 - 2
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)

+ 2 - 3
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)

+ 2 - 2
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