This adds a function 'triggerFirst' to the file provider that triggers the first file provider in the model. That should then be the local file provider, but if the plug-in is disabled for some reason it would use another plug-in.
Contributes to issue CURA-7868.
As Ghostkeeper suspected correctly in the review comment https://github.com/Ultimaker/Cura/pull/9012#discussion_r549707433
the binding wasn't working because the model was being retrieved using a function
(CuraApplication.getFileProviderModel()).
Separating this model into a variable allows us to properly bind the "visible" properties of the
menu items with the count property of the model without a problem.
CURA-7868
When there is only one file provider (i.e. the local file provider), the Open File(s) will be a
simple item in the File menu.
When there are more than one file providers, the Open File(s) will become a submenu in the File
menu, which will contain all the file providers as submenu items.
CURA-7868
This doesn't actually speed up the process, but it does give some indication
that something is going on while the changes are happening
Contributes to #8250
This fixes the issue of the "Select configuration" label appearing on
top of the extruders in the configuration menu. This could be observed
when adding a UM2 with Olsson block.
Gracefully handle the case where the machine manager is requested to
delete the last machine in Cura. In this case, instead of deleting
everything of this machine and still keep it as an active machine,
the machine manager will set the active machine to None.
The QML files which depend on the active machine were changed to
properly handle themselves when there is no active machine.
CURA-7454
I have no idea why i thought a listview was needed for this when
this was made. The data shouldn't be flicable, so it makes way more sense to
use a row layout
CURA-7480
This happens when the printer is changed, such as when changing the Machine Width in the machine settings dialogue. It updates these menus then and if not all extruders are defined it'll give the following errors:
2020-03-20 16:56:57,839 - WARNING - [MainThread] UM.Qt.QtApplication.__onQmlWarning [406]: file:///home/trin/Gedeeld/Projects/Cura/resources/qml/Menus/SettingsMenu.qml:51: TypeError: Cannot read property 'isEnabled' of undefined
2020-03-20 16:56:57,840 - WARNING - [MainThread] UM.Qt.QtApplication.__onQmlWarning [406]: file:///home/trin/Gedeeld/Projects/Cura/resources/qml/Menus/SettingsMenu.qml:44: TypeError: Cannot read property 'isEnabled' of undefined
2020-03-20 16:56:57,841 - WARNING - [MainThread] UM.Qt.QtApplication.__onQmlWarning [406]: file:///home/trin/Gedeeld/Projects/Cura/resources/qml/Menus/MaterialMenu.qml:26: TypeError: Cannot read property 'isEnabled' of undefined
2020-03-20 16:56:57,841 - WARNING - [MainThread] UM.Qt.QtApplication.__onQmlWarning [406]: file:///home/trin/Gedeeld/Projects/Cura/resources/qml/Menus/MaterialMenu.qml:28: TypeError: Cannot read property 'material' of undefined
Done during Turbo Testing and Tooling.
This commit adds a button "Add more materials from Marketplace" in the
menu that pops up in the material list while configuring the materials
into custom ones. The button redirects the user to the Marketplace
materials page (https://marketplace.ultimaker.com/app/cura/materials)
CURA-7027
Conflicts:
resources/bundled_packages/cura.json -> 4.1 to 4.2 upgrade package added simultaneously
tests/TestMachineManager.py -> Due to changes in conftest.py
tests/conftest.py -> Simultaneously expanding the magic mocks to have some correct properties