[gnome-music/wip/mschraal/tracker-only-features: 3/4] songwidget: Adhere to is_tracker CoreSong property
- From: Marinus Schraal <mschraal src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-music/wip/mschraal/tracker-only-features: 3/4] songwidget: Adhere to is_tracker CoreSong property
- Date: Wed, 7 Aug 2019 14:35:27 +0000 (UTC)
commit 647d4ad7bdeb4dd214e6eb440f6addf4c8350e6d
Author: Marinus Schraal <mschraal gnome org>
Date: Wed Aug 7 14:52:01 2019 +0200
songwidget: Adhere to is_tracker CoreSong property
When CoreSong is not based on a Tracker based media item:
* Do not show the selection and star widgets
* In selection mode make the widget insensitive
data/ui/SongWidget.ui | 44 ++++++++++++++++++++++++++--------------
gnomemusic/widgets/songwidget.py | 12 ++++++++++-
2 files changed, 40 insertions(+), 16 deletions(-)
---
diff --git a/data/ui/SongWidget.ui b/data/ui/SongWidget.ui
index 27d54fcf..11748098 100644
--- a/data/ui/SongWidget.ui
+++ b/data/ui/SongWidget.ui
@@ -150,30 +150,44 @@
</object>
</child>
<child>
- <object class="GtkEventBox" id="_star_eventbox">
+ <object class="GtkStack" id="_star_stack">
+ <property name="can-focus">False</property>
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="no_show_all">True</property>
- <property name="halign">end</property>
- <property name="valign">center</property>
- <property name="visible_window">True</property>
- <property name="margin_right">12</property>
- <signal name="button-release-event" handler="_on_star_toggle" swapped="no"/>
- <signal name="enter-notify-event" handler="_on_star_hover" swapped="no"/>
- <signal name="leave-notify-event" handler="_on_star_unhover" swapped="no"/>
<child>
- <object class="StarImage" id="_star_image">
+ <object class="GtkEventBox" id="_star_eventbox">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="halign">end</property>
<property name="valign">center</property>
- <property name="margin_start">10</property>
+ <property name="visible_window">True</property>
+ <property name="margin_right">12</property>
+ <signal name="button-release-event" handler="_on_star_toggle" swapped="no"/>
+ <signal name="enter-notify-event" handler="_on_star_hover" swapped="no"/>
+ <signal name="leave-notify-event" handler="_on_star_unhover" swapped="no"/>
+ <child>
+ <object class="StarImage" id="_star_image">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="valign">center</property>
+ <property name="margin_start">10</property>
+ </object>
+ </child>
</object>
+ <packing>
+ <property name="name">star</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ </object>
+ <packing>
+ <property name="name">empty</property>
+ <property name="position">1</property>
+ </packing>
</child>
</object>
</child>
- <child>
- <placeholder/>
- </child>
</object>
</child>
</template>
diff --git a/gnomemusic/widgets/songwidget.py b/gnomemusic/widgets/songwidget.py
index 14f84b85..3a796ed5 100644
--- a/gnomemusic/widgets/songwidget.py
+++ b/gnomemusic/widgets/songwidget.py
@@ -74,6 +74,7 @@ class SongWidget(Gtk.EventBox):
_duration_label = Gtk.Template.Child()
_star_eventbox = Gtk.Template.Child()
_star_image = Gtk.Template.Child()
+ _star_stack = Gtk.Template.Child()
_play_icon = Gtk.Template.Child()
_size_group = Gtk.Template.Child()
@@ -141,7 +142,6 @@ class SongWidget(Gtk.EventBox):
self.bind_property(
'show-favorite', self._star_eventbox, 'visible',
GObject.BindingFlags.SYNC_CREATE)
- self._star_eventbox.set_no_show_all(True)
self.bind_property(
'show-song-number', self._number_label, 'visible',
GObject.BindingFlags.SYNC_CREATE)
@@ -155,6 +155,9 @@ class SongWidget(Gtk.EventBox):
self.props.coresong.connect(
"notify::validation", self._on_validation_changed)
+ if not self.props.coresong.props.is_tracker:
+ self._star_stack.props.visible_child_name = "empty"
+
self._number_label.props.no_show_all = True
if can_dnd is True:
@@ -254,6 +257,13 @@ class SongWidget(Gtk.EventBox):
:param bool value: Selection mode
"""
+ if (not self.props.coresong.props.is_tracker
+ and value):
+ self.props.sensitive = False
+ return
+
+ self.props.sensitive = True
+
self._selection_mode = value
self._select_button.set_visible(value)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]