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/> <placeholder/>
</child> </child>
<child type="center"> <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"> <object class="GtkGrid">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">False</property> <property name="can_focus">False</property>
@ -645,6 +664,8 @@
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">False</property> <property name="can_focus">False</property>
<property name="halign">start</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> <property name="selectable">True</property>
</object> </object>
<packing> <packing>
@ -657,6 +678,8 @@
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">False</property> <property name="can_focus">False</property>
<property name="halign">start</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> <property name="selectable">True</property>
</object> </object>
<packing> <packing>
@ -669,6 +692,8 @@
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">False</property> <property name="can_focus">False</property>
<property name="halign">start</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> <property name="selectable">True</property>
</object> </object>
<packing> <packing>
@ -681,6 +706,8 @@
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">False</property> <property name="can_focus">False</property>
<property name="halign">start</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> <property name="selectable">True</property>
</object> </object>
<packing> <packing>
@ -703,6 +730,13 @@
</packing> </packing>
</child> </child>
</object> </object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing> <packing>
<property name="name">page0</property> <property name="name">page0</property>
<property name="title" translatable="yes">Status</property> <property name="title" translatable="yes">Status</property>
@ -724,6 +758,25 @@
<placeholder/> <placeholder/>
</child> </child>
<child type="center"> <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"> <object class="GtkGrid">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">False</property> <property name="can_focus">False</property>
@ -899,6 +952,13 @@
</packing> </packing>
</child> </child>
</object> </object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing> <packing>
<property name="name">page1</property> <property name="name">page1</property>
<property name="title" translatable="yes">Statistics</property> <property name="title" translatable="yes">Statistics</property>
@ -921,6 +981,25 @@
<placeholder/> <placeholder/>
</child> </child>
<child type="center"> <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"> <object class="GtkListBox" id="server-output-devices">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">False</property> <property name="can_focus">False</property>
@ -943,6 +1022,13 @@
</packing> </packing>
</child> </child>
</object> </object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing> <packing>
<property name="name">page2</property> <property name="name">page2</property>
<property name="title" translatable="yes">Audio Devices</property> <property name="title" translatable="yes">Audio Devices</property>

View file

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