Improve visual appearance of Server panel (see #36)

This commit is contained in:
coderkun 2017-12-25 17:01:19 +01:00
commit abff4b9f2f
2 changed files with 335 additions and 243 deletions

View file

@ -587,6 +587,25 @@
<placeholder/>
</child>
<child type="center">
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">10</property>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">dialog-information-symbolic</property>
<property name="icon_size">6</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkGrid">
<property name="visible">True</property>
<property name="can_focus">False</property>
@ -645,6 +664,8 @@
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">start</property>
<property name="label" translatable="yes">&lt;i&gt;none&lt;/i&gt;</property>
<property name="use_markup">True</property>
<property name="selectable">True</property>
</object>
<packing>
@ -657,6 +678,8 @@
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">start</property>
<property name="label" translatable="yes">&lt;i&gt;none&lt;/i&gt;</property>
<property name="use_markup">True</property>
<property name="selectable">True</property>
</object>
<packing>
@ -669,6 +692,8 @@
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">start</property>
<property name="label" translatable="yes">&lt;i&gt;none&lt;/i&gt;</property>
<property name="use_markup">True</property>
<property name="selectable">True</property>
</object>
<packing>
@ -681,6 +706,8 @@
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">start</property>
<property name="label" translatable="yes">&lt;i&gt;none&lt;/i&gt;</property>
<property name="use_markup">True</property>
<property name="selectable">True</property>
</object>
<packing>
@ -703,6 +730,13 @@
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="name">page0</property>
<property name="title" translatable="yes">Status</property>
@ -724,6 +758,25 @@
<placeholder/>
</child>
<child type="center">
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">10</property>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">starred-symbolic</property>
<property name="icon_size">6</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkGrid">
<property name="visible">True</property>
<property name="can_focus">False</property>
@ -899,6 +952,13 @@
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="name">page1</property>
<property name="title" translatable="yes">Statistics</property>
@ -921,6 +981,25 @@
<placeholder/>
</child>
<child type="center">
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">10</property>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">audio-speakers-symbolic</property>
<property name="icon_size">6</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkListBox" id="server-output-devices">
<property name="visible">True</property>
<property name="can_focus">False</property>
@ -943,6 +1022,13 @@
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="name">page2</property>
<property name="title" translatable="yes">Audio Devices</property>

View file

@ -818,6 +818,7 @@ class ServerPanel(GObject.GObject):
def __init__(self, builder):
GObject.GObject.__init__(self)
self._none_label = ""
self._output_buttons = {}
# Widgets
@ -830,6 +831,7 @@ class ServerPanel(GObject.GObject):
self._status_audio = builder.get_object('server-status-audio')
self._status_bitrate = builder.get_object('server-status-bitrate')
self._status_error = builder.get_object('server-status-error')
self._none_label = self._status_file.get_label()
# Stats widgets
self._stats_artists = builder.get_object('server-stats-artists')
@ -856,26 +858,30 @@ class ServerPanel(GObject.GObject):
def set_status(self, file, audio, bitrate, error):
if not file:
file = ""
self._status_file.set_text(file)
if file:
file = GObject.markup_escape_text(file)
else:
file = self._none_label
self._status_file.set_markup(file)
# Audio information
if audio:
parts = audio.split(":")
if len(parts) == 3:
audio = "{}Hz, {}bit, {}channels".format(parts[0], parts[1], parts[2])
else:
audio = ""
self._status_audio.set_text(audio)
audio = self._none_label
self._status_audio.set_markup(audio)
# Bitrate
if bitrate:
bitrate = bitrate + "kb/s"
else:
bitrate = ""
self._status_bitrate.set_text(bitrate)
bitrate = self._none_label
self._status_bitrate.set_markup(bitrate)
# Error
if not error:
error = ""
if error:
error = GObject.markup_escape_text(error)
else:
error = self._none_label
self._status_error.set_markup(error)