We're changing this so that the button doesn't set this by itself. This is necessary so that I can use this TabRowButton also when it's not in a repeater (for the global stack in the profile manager).
Contributes to issue CURA-8686.
It's a new component so that we don't have to re-implement it everywhere. In this case we do have to anchor it correctly though because ScrollView doesn't do that by itself.
Contributes to issue CURA-8686.
I didn't realise that Cura already had a menu item. To prevent
Confusion, i've changed Cura.MenuItem to use UM.MenuItem and let all
other menus use Cura.MenuItem
It seems that the extra logic doesn't play well with a menu bar.
Since we don't need to make this menu invisible ever, there is no need for the
extra logic to hide it. As such we can just use the regular menu
CURA-8683
The icon existed only in the UM3NetworkPrinting plugin but it was also used in the ConfigurationItem.qml in Cura, so it had to be moved to the Cura icons.
CURA-8520
Although the ExpandablePopup already sets the anchors of the `headerItem` to account for the arrow icon on the right side, the ConfigurationMenu's extruder row was ignoring it, thus making the elided text of the last extruder to overlap with the arrow icon a bit.
This commit fixes that by explicitly accounting for the width of the arrow in the extruders row.
**Note:** if the Cura window gets resized way too much, the extruder icons will still overlap with the arrow, since there is no space to fit everything.
CURA-8496
When the labels were getting truncated and invisible after reducing the width of Cura's window, their visibility wasn't being restored back and, as a result, the `materialTypeLabel` was the only one that was remaining visible, even if there was enough space for the full `materialBrandColorTypeLabel`.
Changing the ColumnLayout to a Column, where the width is inherited from the parent, fixes that issue.
CURA-8496
Both the `preferredWidth` AND the `width` need to be set for the labels to be properly elided if there is no more room in the ColumnLayout. In addition, the ColumnLayout that contains the variants and material names needs to be visible only if width>0, otherwise when the width is negative, for some reason the `materialTypeLabel` appears again.
CURA-8496