Make the NavlibClient being registered as a tool

CURA-7435
This commit is contained in:
Erwan MATHIEU 2025-02-20 14:42:33 +01:00
parent 16e26ed1fd
commit dd2490d702
2 changed files with 9 additions and 5 deletions

View file

@ -8,7 +8,7 @@ from cura.PickingPass import PickingPass
from UM.Scene.Iterator.DepthFirstIterator import DepthFirstIterator from UM.Scene.Iterator.DepthFirstIterator import DepthFirstIterator
from UM.Scene.SceneNode import SceneNode from UM.Scene.SceneNode import SceneNode
from UM.Resources import Resources from UM.Resources import Resources
from UM.PluginObject import PluginObject from UM.Tool import Tool
from UM.Logger import Logger from UM.Logger import Logger
from .OverlayNode import OverlayNode from .OverlayNode import OverlayNode
import pynavlib.pynavlib_interface as pynav import pynavlib.pynavlib_interface as pynav
@ -19,11 +19,11 @@ if TYPE_CHECKING:
from UM.Scene import Scene from UM.Scene import Scene
from UM.View.Renderer import Renderer from UM.View.Renderer import Renderer
class NavlibClient(pynav.NavlibNavigationModel, PluginObject): class NavlibClient(pynav.NavlibNavigationModel, Tool):
def __init__(self, scene: Scene, renderer: Renderer) -> None: def __init__(self, scene: Scene, renderer: Renderer) -> None:
pynav.NavlibNavigationModel.__init__(self, False, pynav.NavlibOptions.RowMajorOrder) pynav.NavlibNavigationModel.__init__(self, False, pynav.NavlibOptions.RowMajorOrder)
PluginObject.__init__(self) Tool.__init__(self)
self._scene = scene self._scene = scene
self._renderer = renderer self._renderer = renderer
self._pointer_pick = None self._pointer_pick = None

View file

@ -10,13 +10,17 @@ if TYPE_CHECKING:
def getMetaData() -> Dict[str, Any]: def getMetaData() -> Dict[str, Any]:
return {} return {
"tool": {
"visible": False
}
}
def register(app: "Application") -> Dict[str, Any]: def register(app: "Application") -> Dict[str, Any]:
try: try:
from .NavlibClient import NavlibClient from .NavlibClient import NavlibClient
return { "view_manipulator": NavlibClient(app.getController().getScene(), app.getRenderer()) } return { "tool": NavlibClient(app.getController().getScene(), app.getRenderer()) }
except BaseException as exception: except BaseException as exception:
Logger.warning(f"Unable to load 3Dconnexion library: {exception}") Logger.warning(f"Unable to load 3Dconnexion library: {exception}")
return { } return { }