mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-09 07:56:22 -06:00
CURA-4870 Don't allow to connect more than one instance to the same
group.
This commit is contained in:
parent
222a18e698
commit
99d653cea5
3 changed files with 36 additions and 4 deletions
|
@ -1220,6 +1220,14 @@ class MachineManager(QObject):
|
||||||
for container in hidden_containers:
|
for container in hidden_containers:
|
||||||
container.setMetaDataEntry("connect_group_name", group_name)
|
container.setMetaDataEntry("connect_group_name", group_name)
|
||||||
|
|
||||||
|
## This method checks if there is an instance connected to the given network_key
|
||||||
|
def existNetworkInstances(self, network_key: str) -> bool:
|
||||||
|
metadata_filter = {"um_network_key": network_key}
|
||||||
|
containers = ContainerRegistry.getInstance().findContainerStacks(type = "machine", **metadata_filter)
|
||||||
|
if containers:
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
@pyqtSlot("QVariant")
|
@pyqtSlot("QVariant")
|
||||||
def setGlobalVariant(self, container_node):
|
def setGlobalVariant(self, container_node):
|
||||||
self.blurSettings.emit()
|
self.blurSettings.emit()
|
||||||
|
|
|
@ -147,6 +147,10 @@ class DiscoverUM3Action(MachineAction):
|
||||||
|
|
||||||
return ""
|
return ""
|
||||||
|
|
||||||
|
@pyqtSlot(str, result = bool)
|
||||||
|
def existsKey(self, key) -> bool:
|
||||||
|
return Application.getInstance().getMachineManager().existNetworkInstances(network_key = key)
|
||||||
|
|
||||||
@pyqtSlot()
|
@pyqtSlot()
|
||||||
def loadConfigurationFromPrinter(self):
|
def loadConfigurationFromPrinter(self):
|
||||||
machine_manager = Application.getInstance().getMachineManager()
|
machine_manager = Application.getInstance().getMachineManager()
|
||||||
|
|
|
@ -5,6 +5,7 @@ import QtQuick 2.2
|
||||||
import QtQuick.Controls 1.1
|
import QtQuick.Controls 1.1
|
||||||
import QtQuick.Layouts 1.1
|
import QtQuick.Layouts 1.1
|
||||||
import QtQuick.Window 2.1
|
import QtQuick.Window 2.1
|
||||||
|
import QtQuick.Dialogs 1.2
|
||||||
|
|
||||||
Cura.MachineAction
|
Cura.MachineAction
|
||||||
{
|
{
|
||||||
|
@ -33,14 +34,33 @@ Cura.MachineAction
|
||||||
{
|
{
|
||||||
var printerKey = base.selectedDevice.key
|
var printerKey = base.selectedDevice.key
|
||||||
var printerName = base.selectedDevice.name // TODO To change when the groups have a name
|
var printerName = base.selectedDevice.name // TODO To change when the groups have a name
|
||||||
if(manager.getStoredKey() != printerKey)
|
if (manager.getStoredKey() != printerKey)
|
||||||
|
{
|
||||||
|
// Check if there is another instance with the same key
|
||||||
|
if (!manager.existsKey(printerKey))
|
||||||
{
|
{
|
||||||
manager.setKey(printerKey)
|
manager.setKey(printerKey)
|
||||||
manager.setGroupName(printerName) // TODO To change when the groups have a name
|
manager.setGroupName(printerName) // TODO To change when the groups have a name
|
||||||
completed()
|
completed()
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
existingConnectionDialog.open()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
MessageDialog
|
||||||
|
{
|
||||||
|
id: existingConnectionDialog
|
||||||
|
title: catalog.i18nc("@window:title", "Existing Connection")
|
||||||
|
icon: StandardIcon.Information
|
||||||
|
text: catalog.i18nc("@message:text", "There is an instance already connected to this group")
|
||||||
|
detailedText: catalog.i18nc("@message:description", "You can't connect two instances to the same group. Please use the other instance or connect to another group.")
|
||||||
|
standardButtons: StandardButton.Ok
|
||||||
|
modality: Qt.ApplicationModal
|
||||||
|
}
|
||||||
|
|
||||||
Column
|
Column
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue