Browse Source

Merge pull request #16096 from Ultimaker/CURA-8754_Refresh-button-Material-Sync-list-doesn't-provide-any-feedback

Cura 8754 refresh button material sync list doesn't provide any feedback
Jaime van Kessel 1 year ago
parent
commit
016a716eba
1 changed files with 40 additions and 0 deletions
  1. 40 0
      resources/qml/Preferences/Materials/MaterialsSyncDialog.qml

+ 40 - 0
resources/qml/Preferences/Materials/MaterialsSyncDialog.qml

@@ -430,11 +430,51 @@ UM.Window
                                 {
                                 {
                                     id: refreshListButton
                                     id: refreshListButton
                                     Layout.alignment: Qt.AlignVCenter
                                     Layout.alignment: Qt.AlignVCenter
+                                    readonly property int _AccountSyncState_SYNCING: 0
+                                    visible: Cura.API.account.syncState != _AccountSyncState_SYNCING
+                                    enabled: visible
                                     text: catalog.i18nc("@button", "Refresh List")
                                     text: catalog.i18nc("@button", "Refresh List")
                                     iconSource: UM.Theme.getIcon("ArrowDoubleCircleRight")
                                     iconSource: UM.Theme.getIcon("ArrowDoubleCircleRight")
                                     onClicked: Cura.API.account.sync(true)
                                     onClicked: Cura.API.account.sync(true)
                                 }
                                 }
 
 
+                                Item
+                                {
+                                    width: childrenRect.width
+                                    Layout.alignment: Qt.AlignVCenter
+                                    height: refreshListButton.height
+                                    visible: !refreshListButton.visible
+
+                                    UM.ColorImage
+                                    {
+                                        id: refreshingIcon
+                                        height: UM.Theme.getSize("action_button_icon").height
+                                        width: height
+                                        anchors.verticalCenter: refreshingLabel.verticalCenter
+                                        source: UM.Theme.getIcon("ArrowDoubleCircleRight")
+                                        color: UM.Theme.getColor("primary")
+
+                                        RotationAnimator
+                                        {
+                                            target: refreshingIcon
+                                            from: 0
+                                            to: 360
+                                            duration: 1000
+                                            loops: Animation.Infinite
+                                            running: true
+                                        }
+                                    }
+                                    UM.Label
+                                    {
+                                        id: refreshingLabel
+                                        anchors.left: refreshingIcon.right
+                                        anchors.leftMargin: UM.Theme.getSize("narrow_margin").width
+                                        text: catalog.i18nc("@button", "Refreshing...")
+                                        color: UM.Theme.getColor("primary")
+                                        font: UM.Theme.getFont("medium")
+                                    }
+                                }
+
                                 Cura.TertiaryButton
                                 Cura.TertiaryButton
                                 {
                                 {
                                     id: printerListTroubleshooting
                                     id: printerListTroubleshooting