示例#1
0
    def __keyRelease(self, qObject, qEvent):

        widget = Widget._owner(qObject)
        if widget._keyReleaseSignal is not None:

            event = GafferUI.KeyEvent(
                Widget._key(qEvent.key()),
                Widget._modifiers(qEvent.modifiers()),
            )

            return widget._keyReleaseSignal(widget, event)

        return False
示例#2
0
    def __keyPress(self, qObject, qEvent):

        if self.__updateDragModifiers(qObject, qEvent):
            return True

        widget = Widget._owner(qObject)
        if widget._keyPressSignal is not None:

            event = GafferUI.KeyEvent(
                Widget._key(qEvent.key()),
                Widget._modifiers(qEvent.modifiers()),
            )

            return widget._keyPressSignal(widget, event)

        return False
    def testAnimationHotkeyWithEditScopes(self):

        script = Gaffer.ScriptNode()
        script["cube"] = GafferScene.Cube()

        script["editScope"] = Gaffer.EditScope()
        script["editScope"].setup(script["cube"]["out"])
        script["editScope"]["in"].setInput(script["cube"]["out"])

        view = GafferSceneUI.SceneView()
        view["in"].setInput(script["editScope"]["out"])
        view["editScope"].setInput(script["editScope"]["out"])

        GafferSceneUI.ContextAlgo.setSelectedPaths(
            view.getContext(), IECore.PathMatcher(["/cube"]))

        tool = GafferSceneUI.TranslateTool(view)
        tool["active"].setValue(True)

        for plug in Gaffer.FloatPlug.RecursiveRange(
                script["cube"]["transform"]):
            self.assertFalse(Gaffer.Animation.isAnimated(plug))
        self.assertFalse(
            GafferScene.EditScopeAlgo.hasTransformEdit(script["editScope"],
                                                       "/cube"))

        view.viewportGadget().keyPressSignal()(view.viewportGadget(),
                                               GafferUI.KeyEvent("S"))

        for plug in Gaffer.FloatPlug.RecursiveRange(
                script["cube"]["transform"]):
            self.assertFalse(Gaffer.Animation.isAnimated(plug))
        self.assertTrue(
            GafferScene.EditScopeAlgo.hasTransformEdit(script["editScope"],
                                                       "/cube"))
        edit = GafferScene.EditScopeAlgo.acquireTransformEdit(
            script["editScope"], "/cube")
        for vectorPlug in (edit.translate, edit.rotate, edit.scale,
                           edit.pivot):
            for plug in vectorPlug:
                self.assertTrue(Gaffer.Animation.isAnimated(plug))

        tool.translate(imath.V3f(1, 0, 0))
        self.assertEqual(script["editScope"]["out"].transform("/cube"),
                         imath.M44f().translate(imath.V3f(1, 0, 0)))
示例#4
0
	def testAnimationHotkey( self ) :

		script = Gaffer.ScriptNode()
		script["cube"] = GafferScene.Cube()

		view = GafferSceneUI.SceneView()
		view["in"].setInput( script["cube"]["out"] )

		GafferSceneUI.ContextAlgo.setSelectedPaths( view.getContext(), IECore.PathMatcher( [ "/cube" ] ) )

		tool = GafferSceneUI.TranslateTool( view )
		tool["active"].setValue( True )

		for plug in Gaffer.FloatPlug.RecursiveRange( script["cube"]["transform"] ) :
			self.assertFalse( Gaffer.Animation.isAnimated( plug ) )

		view.viewportGadget().keyPressSignal()( view.viewportGadget(), GafferUI.KeyEvent( "S" ) )

		for plug in Gaffer.FloatPlug.RecursiveRange( script["cube"]["transform"] ) :
			self.assertTrue( Gaffer.Animation.isAnimated( plug ) )
示例#5
0
文件: Widget.py 项目: ericmehl/gaffer
	def __keyRelease( self, qObject, qEvent ) :

		# When a key is held, the following events are observed:
		#   MacOS: p p p p r
		#   Linux: p r p r p r p r
		# We conform linux to match Mac as it feels more intuitive.
		if qEvent.isAutoRepeat() :
			return True

		if self.__updateDragModifiers( qObject, qEvent ) :
			return True

		widget = Widget._owner( qObject )
		if widget._keyReleaseSignal is not None :

			event = GafferUI.KeyEvent(
				Widget._key( qEvent.key() ),
				Widget._modifiers( qEvent.modifiers() ),
			)

			return widget._keyReleaseSignal( widget, event )

		return False
示例#6
0
    else:
        GafferUI.NodeEditor.acquire(node, floating=True)


def __ancestorWithReadOnlyChildNodes(node):

    result = None
    while isinstance(node, Gaffer.Node):
        if Gaffer.MetadataAlgo.getChildNodesAreReadOnly(node):
            result = node
        node = node.parent()

    return result


__editSourceKeyPress = GafferUI.KeyEvent("E", GafferUI.KeyEvent.Modifiers.Alt)
__editTweaksKeyPress = GafferUI.KeyEvent(
    "E",
    GafferUI.KeyEvent.Modifiers(GafferUI.KeyEvent.Modifiers.Alt
                                | GafferUI.KeyEvent.Modifiers.Shift))


def __viewerKeyPress(viewer, event):

    view = viewer.view()
    if not isinstance(view, GafferSceneUI.SceneView):
        return False

    if event == __editSourceKeyPress:
        selectedPath = __sceneViewSelectedPath(view)
        if selectedPath is not None: