Browse Source

Add a maximumWidth to the ActionButton

In case the text is too long, it can exceed the limits of the container. This is an optional flag that will work only in case it's set up.

Contributes to CURA-6412.
Diego Prado Gesto 6 years ago
parent
commit
a793a06b60

+ 5 - 1
resources/qml/ActionButton.qml

@@ -40,6 +40,10 @@ Button
     // we elide the text to the right so the text will be cut off with the three dots at the end.
     property var fixedWidthMode: false
 
+    // This property is used when the space for the button is limited. In case the button needs to grow with the text,
+    // but it can exceed a maximum, then this value have to be set.
+    property int maximumWidth: 0
+
     leftPadding: UM.Theme.getSize("default_margin").width
     rightPadding: UM.Theme.getSize("default_margin").width
     height: UM.Theme.getSize("action_button").height
@@ -73,7 +77,7 @@ Button
             renderType: Text.NativeRendering
             height: parent.height
             anchors.verticalCenter: parent.verticalCenter
-            width: fixedWidthMode ? button.width - button.leftPadding - button.rightPadding : undefined
+            width: fixedWidthMode ? button.width - button.leftPadding - button.rightPadding : ((maximumWidth != 0 && contentWidth > maximumWidth) ? maximumWidth : undefined)
             horizontalAlignment: Text.AlignHCenter
             verticalAlignment: Text.AlignVCenter
             elide: Text.ElideRight

+ 2 - 0
resources/qml/PrinterSelector/MachineSelector.qml

@@ -159,6 +159,7 @@ Cura.ExpandablePopup
                 leftPadding: UM.Theme.getSize("default_margin").width
                 rightPadding: UM.Theme.getSize("default_margin").width
                 text: catalog.i18nc("@button", "Add printer")
+                maximumWidth: UM.Theme.getSize("machine_selector_widget_content").width / 2 - 2.5 * UM.Theme.getSize("default_margin").width
                 onClicked:
                 {
                     toggleContent()
@@ -171,6 +172,7 @@ Cura.ExpandablePopup
                 leftPadding: UM.Theme.getSize("default_margin").width
                 rightPadding: UM.Theme.getSize("default_margin").width
                 text: catalog.i18nc("@button", "Manage printers")
+                maximumWidth: UM.Theme.getSize("machine_selector_widget_content").width / 2 - 2.5 * UM.Theme.getSize("default_margin").width
                 onClicked:
                 {
                     toggleContent()