Internet and IP indicator

This commit is contained in:
9and3r
2014-07-30 01:44:44 +02:00
parent 722e2e16c0
commit 44fe85c960
3 changed files with 121 additions and 32 deletions

View File

@@ -23,11 +23,11 @@
</component>
<component name="FileEditorManager">
<leaf>
<file leaf-file-name="screen_manager.py" pinned="false" current="true" current-in-tab="true">
<file leaf-file-name="screen_manager.py" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/screen_manager.py">
<provider selected="true" editor-type-id="text-editor">
<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" />
<state vertical-scroll-proportion="0.0" vertical-offset="2814" max-vertical-offset="3240">
<caret line="218" column="45" selection-start-line="218" selection-start-column="45" selection-end-line="218" selection-end-column="45" />
<folding />
</state>
</provider>
@@ -58,13 +58,25 @@
<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.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" />
<state vertical-scroll-proportion="0.0" vertical-offset="1537" max-vertical-offset="2325">
<caret line="59" column="52" selection-start-line="59" selection-start-column="52" selection-end-line="59" selection-end-column="52" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="menu_screen.py" pinned="false" current="true" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/menu_screen.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.6866841" vertical-offset="787" max-vertical-offset="1185">
<caret line="70" column="80" selection-start-line="70" selection-start-column="80" selection-end-line="70" selection-end-column="80" />
<folding>
<element signature="e#0#31#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
</leaf>
</component>
<component name="FindManager">
@@ -75,13 +87,13 @@
<component name="IdeDocumentHistory">
<option name="changedFiles">
<list>
<option value="$PROJECT_DIR$/menu_screen.py" />
<option value="$PROJECT_DIR$/list_view.py" />
<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$/main_screen.py" />
<option value="$PROJECT_DIR$/screen_manager.py" />
<option value="$PROJECT_DIR$/menu_screen.py" />
</list>
</option>
</component>
@@ -420,13 +432,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/menu_screen.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.3524804" vertical-offset="0" max-vertical-offset="383">
<caret line="9" column="32" selection-start-line="9" selection-start-column="32" selection-end-line="9" selection-end-column="32" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/list_view.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="-1.1148825" vertical-offset="1222" max-vertical-offset="1605">
@@ -449,14 +454,6 @@
</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="37" max-vertical-offset="780">
@@ -467,22 +464,40 @@
</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$/main_screen.py">
<provider selected="true" editor-type-id="text-editor">
<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" />
<state vertical-scroll-proportion="0.0" vertical-offset="592" max-vertical-offset="2325">
<caret line="59" column="52" selection-start-line="59" selection-start-column="52" selection-end-line="59" selection-end-column="52" />
<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.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" />
<state vertical-scroll-proportion="0.0" vertical-offset="2814" max-vertical-offset="3240">
<caret line="218" column="45" selection-start-line="218" selection-start-column="45" selection-end-line="218" selection-end-column="45" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/menu_screen.py">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.6866841" vertical-offset="787" max-vertical-offset="1185">
<caret line="70" column="80" selection-start-line="70" selection-start-column="80" selection-end-line="70" selection-end-column="80" />
<folding>
<element signature="e#0#31#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</component>
</project>

View File

@@ -1,4 +1,9 @@
from .list_view import ListView
from .screen_objects import *
import mopidy
import os
import socket
class MenuScreen():
@@ -6,13 +11,63 @@ class MenuScreen():
self.size = size
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.list_view.set_list(["Exit mopidy", "Shutdown", "Restart"])
self.ip = None
self.screen_objects = ScreenObjectsManager()
#Exit mopidy button
button = TouchAndTextItem(self.manager.fonts['icon'], u"\ue611", (0, self.base_size), None)
self.screen_objects.set_touch_object("exit_icon", button)
button = TouchAndTextItem(self.manager.fonts['base'], "Exit Mopidy", (button.get_right_pos(), self.base_size), None)
self.screen_objects.set_touch_object("exit", button)
#Shutdown button
button = TouchAndTextItem(self.manager.fonts['icon'], u"\ue60b", (0, self.base_size * 2), None)
self.screen_objects.set_touch_object("shutdown_icon", button)
button = TouchAndTextItem(self.manager.fonts['base'], "Shutdown", (button.get_right_pos(), self.base_size * 2), None)
self.screen_objects.set_touch_object("shutdown", button)
#Restart button
button = TouchAndTextItem(self.manager.fonts['icon'], u"\ue609", (0, self.base_size * 3), None)
self.screen_objects.set_touch_object("restart_icon", button)
button = TouchAndTextItem(self.manager.fonts['base'], "Restart", (button.get_right_pos(), self.base_size * 3), None)
self.screen_objects.set_touch_object("restart", button)
#IP addres
button = TouchAndTextItem(self.manager.fonts['base'], "IP: ", (0, self.base_size * 4), None)
self.screen_objects.set_touch_object("ip", button)
#self.list_view = ListView((0,self.base_size),(self.size[0],self.size[1]-2*self.base_size), self.base_size, manager.fonts)
#self.list_view.set_list(["Exit mopidy", "Shutdown", "Restart"])
def update(self, screen):
self.list_view.render(screen)
self.screen_objects.render(screen)
#self.list_view.render(screen)
def touch_event(self, touch_event):
clicked = self.list_view.touch_event(touch_event)
if clicked is not None:
pass
#clicked = self.list_view.touch_event(touch_event)
clicked = self.screen_objects.get_touch_objects_in_pos(touch_event.current_pos)
for key in clicked:
if key == "exit_icon" or key == "exit":
mopidy.utils.process.exit_process()
elif key == "shutdown_icon" or key == "shutdown":
os.system("shutdown now -h")
elif key == "ip":
self.check_connection()
def check_connection(self):
try:
self.manager.set_connection(False, True)
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(("8.8.8.8", 80))
self.ip = s.getsockname()[0]
s.close()
self.screen_objects.get_touch_object("ip").set_text("IP: " + self.ip, "None")
self.manager.set_connection(True, False)
except socket.error:
s.close()
self.ip = None
self.screen_objects.get_touch_object("ip").set_text("IP: No internet", "None")
self.manager.set_connection(False, False)

View File

@@ -63,6 +63,11 @@ class ScreenManager():
self.screen_objects_manager.set_touch_object("single", button)
x = button.get_right_pos()
#Internet
button = TouchAndTextItem(self.fonts['icon'], u"\ue602 ", (x, 0), None)
self.screen_objects_manager.set_touch_object("internet", button)
x = button.get_right_pos()
#Mute
button = TouchAndTextItem(self.fonts['icon'], u"\ue61f ", (x, 0), None)
self.screen_objects_manager.set_touch_object("mute", button)
@@ -109,6 +114,7 @@ class ScreenManager():
self.options_changed()
self.mute_changed(self.core.playback.mute.get())
self.playback_state_changed(self.core.playback.state.get(), self.core.playback.state.get())
self.screens[4].check_connection()
self.change_screen(self.current_screen)
def update(self):
@@ -156,6 +162,8 @@ class ScreenManager():
self.core.tracklist.set_repeat(not self.core.tracklist.repeat.get())
elif key == "single":
self.core.tracklist.set_single(not self.core.tracklist.single.get())
elif key == "internet":
self.screens[4].check_connection()
elif key[:-1] == "menu_":
self.change_screen(int(key[-1:]))
self.screens[self.current_screen].touch_event(touch_event)
@@ -200,4 +208,15 @@ class ScreenManager():
self.screen_objects_manager.get_touch_object("menu_"+str(new_screen)).set_active(True)
def playlists_loaded(self):
self.screens[3].playlists_loaded()
self.screens[3].playlists_loaded()
def set_connection(self, connection, loading):
internet = self.screen_objects_manager.get_touch_object("internet")
if loading:
internet.set_text(u"\ue627",None)
internet.set_active(False)
else:
internet.set_text(u"\ue602",None)
internet.set_active(connection)