Merge branch 'master' into CURA-6435_new_style_add_machine

This commit is contained in:
Diego Prado Gesto 2019-04-12 16:15:36 +02:00
commit 969b5f7081
11 changed files with 42 additions and 34 deletions

View file

@ -7,6 +7,7 @@ from PyQt5.QtCore import pyqtSlot, pyqtProperty, pyqtSignal, QObject
from UM.i18n import i18nCatalog from UM.i18n import i18nCatalog
from UM.Logger import Logger from UM.Logger import Logger
from UM.Util import parseBool
if TYPE_CHECKING: if TYPE_CHECKING:
from PyQt5.QtCore import QObject from PyQt5.QtCore import QObject
@ -89,7 +90,8 @@ class DiscoveredPrintersModel(QObject):
@pyqtProperty(list, notify = discoveredPrintersChanged) @pyqtProperty(list, notify = discoveredPrintersChanged)
def discoveredPrinters(self) -> List["DiscoveredPrinter"]: def discoveredPrinters(self) -> List["DiscoveredPrinter"]:
item_list = list(x for x in self._discovered_printer_by_ip_dict.values()) item_list = list(
x for x in self._discovered_printer_by_ip_dict.values() if not parseBool(x.device.getProperty("temporary")))
item_list.sort(key = lambda x: x.device.name) item_list.sort(key = lambda x: x.device.name)
return item_list return item_list

View file

@ -212,7 +212,7 @@ class GlobalStack(CuraContainerStack):
# Determine whether or not we should try to get the "resolve" property instead of the # Determine whether or not we should try to get the "resolve" property instead of the
# requested property. # requested property.
def _shouldResolve(self, key: str, property_name: str, context: Optional[PropertyEvaluationContext] = None) -> bool: def _shouldResolve(self, key: str, property_name: str, context: Optional[PropertyEvaluationContext] = None) -> bool:
if property_name is not "value": if property_name != "value":
# Do not try to resolve anything but the "value" property # Do not try to resolve anything but the "value" property
return False return False

View file

@ -65,6 +65,7 @@ Item
{ {
id: description id: description
text: details.description || "" text: details.description || ""
font: UM.Theme.getFont("default")
anchors anchors
{ {
top: title.bottom top: title.bottom

View file

@ -53,7 +53,7 @@ class AuthorsModel(ListModel):
# Filter on all the key-word arguments. # Filter on all the key-word arguments.
for key, value in self._filter.items(): for key, value in self._filter.items():
if key is "package_types": if key == "package_types":
key_filter = lambda item, value = value: value in item["package_types"] # type: ignore key_filter = lambda item, value = value: value in item["package_types"] # type: ignore
elif "*" in value: elif "*" in value:
key_filter = lambda item, key = key, value = value: self._matchRegExp(item, key, value) # type: ignore key_filter = lambda item, key = key, value = value: self._matchRegExp(item, key, value) # type: ignore

View file

@ -112,7 +112,7 @@ class PackagesModel(ListModel):
# Filter on all the key-word arguments. # Filter on all the key-word arguments.
for key, value in self._filter.items(): for key, value in self._filter.items():
if key is "tags": if key == "tags":
key_filter = lambda item, v = value: v in item["tags"] key_filter = lambda item, v = value: v in item["tags"]
elif "*" in value: elif "*" in value:
key_filter = lambda candidate, k = key, v = value: self._matchRegExp(candidate, k, v) key_filter = lambda candidate, k = key, v = value: self._matchRegExp(candidate, k, v)

View file

@ -613,12 +613,12 @@ class Toolbox(QObject, Extension):
self._server_response_data[response_type] = json_data["data"] self._server_response_data[response_type] = json_data["data"]
self._models[response_type].setMetadata(self._server_response_data[response_type]) self._models[response_type].setMetadata(self._server_response_data[response_type])
if response_type is "packages": if response_type == "packages":
self._models[response_type].setFilter({"type": "plugin"}) self._models[response_type].setFilter({"type": "plugin"})
self.reBuildMaterialsModels() self.reBuildMaterialsModels()
self.reBuildPluginsModels() self.reBuildPluginsModels()
self._notifyPackageManager() self._notifyPackageManager()
elif response_type is "authors": elif response_type == "authors":
self._models[response_type].setFilter({"package_types": "material"}) self._models[response_type].setFilter({"package_types": "material"})
self._models[response_type].setFilter({"tags": "generic"}) self._models[response_type].setFilter({"tags": "generic"})

View file

@ -27,6 +27,7 @@ from UM.Version import Version
from . import ClusterUM3OutputDevice, LegacyUM3OutputDevice from . import ClusterUM3OutputDevice, LegacyUM3OutputDevice
from .Cloud.CloudOutputDeviceManager import CloudOutputDeviceManager from .Cloud.CloudOutputDeviceManager import CloudOutputDeviceManager
from .Cloud.CloudOutputDevice import CloudOutputDevice # typing
if TYPE_CHECKING: if TYPE_CHECKING:
from PyQt5.QtNetwork import QNetworkReply from PyQt5.QtNetwork import QNetworkReply
@ -181,7 +182,7 @@ class UM3OutputDevicePlugin(OutputDevicePlugin):
um_network_key = CuraApplication.getInstance().getGlobalContainerStack().getMetaDataEntry("um_network_key") um_network_key = CuraApplication.getInstance().getGlobalContainerStack().getMetaDataEntry("um_network_key")
if key == um_network_key: if key == um_network_key:
self.getOutputDeviceManager().addOutputDevice(self._discovered_devices[key]) self.getOutputDeviceManager().addOutputDevice(self._discovered_devices[key])
self.checkCloudFlowIsPossible() self.checkCloudFlowIsPossible(None)
else: else:
self.getOutputDeviceManager().removeOutputDevice(key) self.getOutputDeviceManager().removeOutputDevice(key)
if key.startswith("manual:"): if key.startswith("manual:"):
@ -488,7 +489,7 @@ class UM3OutputDevicePlugin(OutputDevicePlugin):
return True return True
## Check if the prerequsites are in place to start the cloud flow ## Check if the prerequsites are in place to start the cloud flow
def checkCloudFlowIsPossible(self) -> None: def checkCloudFlowIsPossible(self, cluster: Optional[CloudOutputDevice]) -> None:
Logger.log("d", "Checking if cloud connection is possible...") Logger.log("d", "Checking if cloud connection is possible...")
# Pre-Check: Skip if active machine already has been cloud connected or you said don't ask again # Pre-Check: Skip if active machine already has been cloud connected or you said don't ask again
@ -595,7 +596,7 @@ class UM3OutputDevicePlugin(OutputDevicePlugin):
self._cloud_flow_complete_message.hide() self._cloud_flow_complete_message.hide()
# Check for cloud flow again with newly selected machine # Check for cloud flow again with newly selected machine
self.checkCloudFlowIsPossible() self.checkCloudFlowIsPossible(None)
def _createCloudFlowStartMessage(self): def _createCloudFlowStartMessage(self):
self._start_cloud_flow_message = Message( self._start_cloud_flow_message = Message(

View file

@ -205,7 +205,7 @@ Item
Row Row
{ {
height: visible ? childrenRect.height : 0 height: visible ? UM.Theme.getSize("setting_control").height : 0
visible: extrudersModel.count > 1 // If there is only one extruder, there is no point to enable/disable that. visible: extrudersModel.count > 1 // If there is only one extruder, there is no point to enable/disable that.
Label Label
@ -223,7 +223,7 @@ Item
{ {
checked: Cura.MachineManager.activeStack != null ? Cura.MachineManager.activeStack.isEnabled : false checked: Cura.MachineManager.activeStack != null ? Cura.MachineManager.activeStack.isEnabled : false
enabled: !checked || Cura.MachineManager.numberExtrudersEnabled > 1 //Disable if it's the last enabled extruder. enabled: !checked || Cura.MachineManager.numberExtrudersEnabled > 1 //Disable if it's the last enabled extruder.
height: UM.Theme.getSize("setting_control").height height: parent.height
style: UM.Theme.styles.checkbox style: UM.Theme.styles.checkbox
/* Use a MouseArea to process the click on this checkbox. /* Use a MouseArea to process the click on this checkbox.
@ -242,7 +242,7 @@ Item
Row Row
{ {
height: visible ? childrenRect.height: 0 height: visible ? UM.Theme.getSize("print_setup_big_item").height : 0
visible: Cura.MachineManager.hasMaterials visible: Cura.MachineManager.hasMaterials
Label Label
@ -267,7 +267,7 @@ Item
tooltip: text tooltip: text
width: selectors.controlWidth width: selectors.controlWidth
height: UM.Theme.getSize("print_setup_big_item").height height: parent.height
style: UM.Theme.styles.print_setup_header_button style: UM.Theme.styles.print_setup_header_button
activeFocusOnPress: true activeFocusOnPress: true
@ -302,7 +302,7 @@ Item
Row Row
{ {
height: visible ? childrenRect.height: 0 height: visible ? UM.Theme.getSize("print_setup_big_item").height : 0
visible: Cura.MachineManager.hasVariants visible: Cura.MachineManager.hasVariants
Label Label
@ -321,7 +321,7 @@ Item
id: variantSelection id: variantSelection
text: Cura.MachineManager.activeVariantName text: Cura.MachineManager.activeVariantName
tooltip: Cura.MachineManager.activeVariantName tooltip: Cura.MachineManager.activeVariantName
height: UM.Theme.getSize("print_setup_big_item").height height: parent.height
width: selectors.controlWidth width: selectors.controlWidth
style: UM.Theme.styles.print_setup_header_button style: UM.Theme.styles.print_setup_header_button
activeFocusOnPress: true; activeFocusOnPress: true;

View file

@ -133,7 +133,14 @@ Item
supportExtruderCombobox.color = supportExtruderCombobox.model.getItem(supportExtruderCombobox.currentIndex).color supportExtruderCombobox.color = supportExtruderCombobox.model.getItem(supportExtruderCombobox.currentIndex).color
} }
} }
onCurrentIndexChanged: supportExtruderCombobox.color = supportExtruderCombobox.model.getItem(supportExtruderCombobox.currentIndex).color onCurrentIndexChanged:
{
var maybeColor = supportExtruderCombobox.model.getItem(supportExtruderCombobox.currentIndex).color
if(maybeColor)
{
supportExtruderCombobox.color = maybeColor
}
}
Binding Binding
{ {

View file

@ -7,9 +7,6 @@ import QtQuick.Controls 2.3
import UM 1.3 as UM import UM 1.3 as UM
import Cura 1.1 as Cura import Cura 1.1 as Cura
import "../PrinterSelector"
// //
// This is the widget for adding a network printer. There are 2 parts in this widget. One is a scroll view of a list // This is the widget for adding a network printer. There are 2 parts in this widget. One is a scroll view of a list
// of discovered network printers. Beneath the scroll view is a container with 3 buttons: "Refresh", "Add by IP", and // of discovered network printers. Beneath the scroll view is a container with 3 buttons: "Refresh", "Add by IP", and
@ -84,13 +81,11 @@ Item
} }
} }
delegate: MachineSelectorButton delegate: Cura.MachineSelectorButton
{ {
text: modelData.device.name text: modelData.device.name
anchors.left: parent.left width: networkPrinterListView.width
anchors.right: parent.right
anchors.rightMargin: UM.Theme.getSize("default_margin").width
outputDevice: modelData.device outputDevice: modelData.device
enabled: !modelData.isUnknownMachineType enabled: !modelData.isUnknownMachineType
@ -119,22 +114,23 @@ Item
} }
} }
// Horizontal line separating the buttons (below) and the discovered network printers (above)
Rectangle
{
id: separator
anchors.left: parent.left
anchors.top: networkPrinterInfo.bottom
anchors.right: parent.right
height: UM.Theme.getSize("default_lining").height
color: UM.Theme.getColor("lining")
}
Item Item
{ {
id: controlsRectangle id: controlsRectangle
anchors.left: parent.left anchors.left: parent.left
anchors.right: parent.right anchors.right: parent.right
anchors.top: networkPrinterInfo.bottom anchors.top: separator.bottom
// Horizontal line separating the buttons (below) and the discovered network printers (above)
Rectangle
{
anchors.left: parent.left
anchors.top: parent.top
anchors.right: parent.right
height: UM.Theme.getSize("default_lining").width
color: UM.Theme.getColor("lining")
}
height: UM.Theme.getSize("message_action_button").height + UM.Theme.getSize("default_margin").height height: UM.Theme.getSize("message_action_button").height + UM.Theme.getSize("default_margin").height

View file

@ -1,6 +1,7 @@
module Cura module Cura
MachineSelector 1.0 MachineSelector.qml MachineSelector 1.0 MachineSelector.qml
MachineSelectorButton 1.0 MachineSelectorButton.qml
CustomConfigurationSelector 1.0 CustomConfigurationSelector.qml CustomConfigurationSelector 1.0 CustomConfigurationSelector.qml
PrintSetupSelector 1.0 PrintSetupSelector.qml PrintSetupSelector 1.0 PrintSetupSelector.qml
ActionButton 1.0 ActionButton.qml ActionButton 1.0 ActionButton.qml