[gnome-music/wip/jfelder/gtk4-v3: 23/110] Adapt PlayerToolbar to GTK4 changes




commit f0ec3b145da3e5c782a357c3df111a23f0e29dd6
Author: Marinus Schraal <mschraal gnome org>
Date:   Sun Apr 11 21:10:39 2021 +0200

    Adapt PlayerToolbar to GTK4 changes

 data/org.gnome.Music.css            |  2 --
 data/ui/PlayerToolbar.ui            | 50 +++++++++----------------------------
 gnomemusic/widgets/playertoolbar.py | 26 +++++++------------
 gnomemusic/window.py                |  4 +--
 4 files changed, 23 insertions(+), 59 deletions(-)
---
diff --git a/data/org.gnome.Music.css b/data/org.gnome.Music.css
index 9e2cea716..640a52583 100644
--- a/data/org.gnome.Music.css
+++ b/data/org.gnome.Music.css
@@ -31,7 +31,6 @@
 
 .semi-circular {
     border-radius: 20px;
-    -gtk-outline-radius: 20px;
 }
 
 .semi-circular:hover {
@@ -43,7 +42,6 @@
 
 .pill {
     border-radius: 9999px;
-    -gtk-outline-radius: 9999px;
 }
 
 .smooth-scale {
diff --git a/data/ui/PlayerToolbar.ui b/data/ui/PlayerToolbar.ui
index f67fbae81..12d0c5f6c 100644
--- a/data/ui/PlayerToolbar.ui
+++ b/data/ui/PlayerToolbar.ui
@@ -1,36 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <interface>
   <requires lib="gtk+" version="3.12"/>
-  <object class="GtkImage" id="next_image">
-    <property name="visible">True</property>
-    <property name="can_focus">False</property>
-    <property name="icon_name">media-skip-forward-symbolic</property>
-    <property name="icon_size">1</property>
-  </object>
-  <object class="GtkImage" id="_pause_image">
-    <property name="visible">True</property>
-    <property name="can_focus">False</property>
-    <property name="icon_name">media-playback-pause-symbolic</property>
-    <property name="icon_size">3</property>
-    <property name="margin-bottom">4</property>
-    <property name="margin-top">4</property>
-  </object>
-  <object class="GtkImage" id="_play_image">
-    <property name="visible">True</property>
-    <property name="can_focus">False</property>
-    <property name="icon_name">media-playback-start-symbolic</property>
-    <property name="icon_size">3</property>
-    <property name="margin-bottom">4</property>
-    <property name="margin-top">4</property>
-  </object>
-  <object class="GtkImage" id="previous_image">
-    <property name="visible">True</property>
-    <property name="can_focus">False</property>
-    <property name="icon_name">media-skip-backward-symbolic</property>
-    <property name="icon_size">1</property>
-  </object>
   <template class="PlayerToolbar" parent="GtkActionBar">
     <property name="can_focus">False</property>
+    <property name="revealed">False</property>
     <child>
       <object class="GtkBox" id="_song_info_box">
         <property name="visible">True</property>
@@ -86,6 +59,7 @@
     </child>
     <child type="center">
       <object class="GtkBox" id="_buttons_and_scale">
+        <property name="hexpand">True</property>
         <property name="orientation">vertical</property>
         <property name="visible">True</property>
         <property name="can_focus">False</property>
@@ -106,8 +80,7 @@
                 <property name="sensitive">False</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">True</property>
-                <property name="image">previous_image</property>
-                <property name="always_show_image">True</property>
+                <property name="icon_name">media-skip-backward-symbolic</property>
                 <property name="tooltip_text" translatable="yes">Previous</property>
                 <signal name="clicked" handler="_on_prev_button_clicked" swapped="no"/>
                 <style>
@@ -123,14 +96,19 @@
                 <property name="sensitive">False</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">True</property>
-                <property name="image">_play_image</property>
-                <property name="always_show_image">True</property>
+
                 <property name="tooltip_text" translatable="yes">Play</property>
                 <signal name="clicked" handler="_on_play_button_clicked" swapped="no"/>
                 <style>
                   <class name="border-solid"/>
                   <class name="pill"/>
                 </style>
+                <child>
+                  <object class="GtkImage" id="_play_pause_image">
+                    <property name="icon_name">media-playback-start-symbolic</property>
+                    <property name="icon_size">2</property>
+                  </object>
+                </child>
               </object>
             </child>
             <child>
@@ -140,8 +118,7 @@
                 <property name="sensitive">False</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">True</property>
-                <property name="image">next_image</property>
-                <property name="always_show_image">True</property>
+                <property name="icon_name">media-skip-forward-symbolic</property>
                 <property name="tooltip_text" translatable="yes">Next</property>
                 <signal name="clicked" handler="_on_next_button_clicked" swapped="no"/>
                 <style>
@@ -208,7 +185,7 @@
         </child>
       </object>
     </child>
-    <child>
+    <child type="end">
       <object class="GtkBox" id="menuBox">
         <property name="height_request">34</property>
         <property name="visible">True</property>
@@ -251,9 +228,6 @@
           </object>
         </child>
       </object>
-      <packing>
-        <property name="pack-type">end</property>
-      </packing>
     </child>
   </template>
 </interface>
diff --git a/gnomemusic/widgets/playertoolbar.py b/gnomemusic/widgets/playertoolbar.py
index 5b98d0e5c..cafc45924 100644
--- a/gnomemusic/widgets/playertoolbar.py
+++ b/gnomemusic/widgets/playertoolbar.py
@@ -29,6 +29,7 @@ from gnomemusic.defaulticon import DefaultIcon
 from gnomemusic.gstplayer import Playback
 from gnomemusic.utils import ArtSize
 from gnomemusic.player import Player, RepeatMode
+from gnomemusic.widgets.artstack import ArtStack  # noqa: F401
 from gnomemusic.widgets.smoothscale import SmoothScale  # noqa: F401
 from gnomemusic.widgets.twolinetip import TwoLineTip
 import gnomemusic.utils as utils
@@ -45,12 +46,10 @@ class PlayerToolbar(Gtk.ActionBar):
 
     _artist_label = Gtk.Template.Child()
     _art_stack = Gtk.Template.Child()
-    _buttons_and_scale = Gtk.Template.Child()
     _duration_label = Gtk.Template.Child()
     _next_button = Gtk.Template.Child()
-    _pause_image = Gtk.Template.Child()
     _play_button = Gtk.Template.Child()
-    _play_image = Gtk.Template.Child()
+    _play_pause_image = Gtk.Template.Child()
     _prev_button = Gtk.Template.Child()
     _progress_scale = Gtk.Template.Child()
     _progress_time_label = Gtk.Template.Child()
@@ -69,13 +68,6 @@ class PlayerToolbar(Gtk.ActionBar):
 
         self._tooltip = TwoLineTip()
 
-        # A centered widget has an expand child property set to False
-        # by default. It needs to be True to have a progress scale
-        # at the correct size.
-        main_container = self._buttons_and_scale.get_parent()
-        main_container.child_set_property(
-            self._buttons_and_scale, "expand", True)
-
         repeat_menu = Gio.Menu.new()
         for mode in RepeatMode:
             item = Gio.MenuItem.new()
@@ -158,26 +150,26 @@ class PlayerToolbar(Gtk.ActionBar):
 
     def _sync_repeat_image(self) -> None:
         self._repeat_image.set_from_icon_name(
-            self._player.props.repeat_mode.icon, Gtk.IconSize.MENU)
+            self._player.props.repeat_mode.icon)
 
     def _sync_playing(self, player, state):
         if (self._player.props.state == Playback.STOPPED
                 and not self._player.props.has_next
                 and not self._player.props.has_previous):
-            self.hide()
+            self.props.revealed = False
             return
 
-        self.show()
+        self.props.revealed = True
 
         if self._player.props.state == Playback.PLAYING:
-            image = self._pause_image
+            icon_name = "media-playback-pause-symbolic"
             tooltip = _("Pause")
         else:
-            image = self._play_image
+            icon_name = "media-playback-start-symbolic"
             tooltip = _("Play")
 
-        if self._play_button.get_image() != image:
-            self._play_button.set_image(image)
+        if self._play_pause_image.props.icon_name != icon_name:
+            self._play_pause_image.props.icon_name = icon_name
 
         self._play_button.set_tooltip_text(tooltip)
 
diff --git a/gnomemusic/window.py b/gnomemusic/window.py
index 9ec551cb9..c3719987f 100644
--- a/gnomemusic/window.py
+++ b/gnomemusic/window.py
@@ -444,7 +444,7 @@ class Window(Adw.ApplicationWindow):
     def _on_selection_mode_changed(self, widget, data=None):
         if (not self.props.selection_mode
                 and self._player.state == Playback.STOPPED):
-            self._player_toolbar.hide()
+            self._player_toolbar.props.revealed = False
 
     def _on_add_to_playlist(self, widget: SelectionToolbar) -> None:
 
@@ -478,4 +478,4 @@ class Window(Adw.ApplicationWindow):
 
         :param bool visible: actionbar visibility
         """
-        self._player_toolbar.set_visible(visible)
+        self._player_toolbar.props.revealed = visible


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]