Disable copy paste when either 3mf reader or writer is disabled

CURA-7913
This commit is contained in:
c.lamboo 2023-08-08 12:17:08 +02:00
parent f8b3fb3d67
commit c393d915d7
2 changed files with 16 additions and 5 deletions

View File

@ -193,6 +193,9 @@ class CuraActions(QObject):
@pyqtSlot()
def copy(self) -> None:
mesh_writer = cura.CuraApplication.CuraApplication.getInstance().getMeshFileHandler().getWriter("3MFWriter")
if not mesh_writer:
Logger.log("e", "No 3MF writer found, unable to copy.")
return
# Get the selected nodes
selected_objects = Selection.getAllSelectedObjects()
@ -204,11 +207,14 @@ class CuraActions(QObject):
@pyqtSlot()
def paste(self) -> None:
application = cura.CuraApplication.CuraApplication.getInstance()
mesh_reader = application.getMeshFileHandler().getReaderForFile(".3mf")
if not mesh_reader:
Logger.log("e", "No 3MF reader found, unable to paste.")
return
# Parse the scene from the clipboard
scene_string = QApplication.clipboard().text()
mesh_reader = application.getMeshFileHandler().getReaderForFile(".3mf")
nodes = mesh_reader.stringToSceneNodes(scene_string)
# Find all fixed nodes, these are the nodes that should be avoided when arranging

View File

@ -6,7 +6,7 @@ pragma Singleton
import QtQuick 2.10
import QtQuick.Controls 2.4
import UM 1.1 as UM
import Cura 1.0 as Cura
import Cura 1.5 as Cura
Item
{
@ -75,6 +75,11 @@ Item
property alias copy: copyAction
property alias cut: cutAction
readonly property bool copy_paste_enabled: {
const all_enabled_packages = CuraApplication.getPackageManager().allEnabledPackages;
return all_enabled_packages.includes("3MFReader") && all_enabled_packages.includes("3MFWriter");
}
UM.I18nCatalog{id: catalog; name: "cura"}
@ -318,7 +323,7 @@ Item
id: copyAction
text: catalog.i18nc("@action:inmenu menubar:edit", "Copy to clipboard")
onTriggered: CuraActions.copy()
enabled: UM.Controller.toolsEnabled && UM.Selection.hasSelection
enabled: UM.Controller.toolsEnabled && UM.Selection.hasSelection && copy_paste_enabled
shortcut: StandardKey.Copy
}
@ -327,7 +332,7 @@ Item
id: pasteAction
text: catalog.i18nc("@action:inmenu menubar:edit", "Paste from clipboard")
onTriggered: CuraActions.paste()
enabled: UM.Controller.toolsEnabled
enabled: UM.Controller.toolsEnabled && copy_paste_enabled
shortcut: StandardKey.Paste
}
@ -336,7 +341,7 @@ Item
id: cutAction
text: catalog.i18nc("@action:inmenu menubar:edit", "Cut")
onTriggered: CuraActions.cut()
enabled: UM.Controller.toolsEnabled && UM.Selection.hasSelection
enabled: UM.Controller.toolsEnabled && UM.Selection.hasSelection && copy_paste_enabled
shortcut: StandardKey.Cut
}