Exemple #1
0
	def testUndo( self ) :

		# check our custom knob undoes in the same way as
		# standard knobs

		n = nuke.createNode( "ieObject" )
		n2 = nuke.createNode( "Blur" )

		self.assertEqual( n.knob( "object" ).getValue(), None )
		self.assertEqual( n2.knob( "size" ).getValue(), 0 )

		self.assertEqual( nuke.Undo.disabled(), True )

		with IECoreNuke.UndoEnabled() :

			self.assertEqual( nuke.Undo.disabled(), False )

			with IECoreNuke.UndoBlock() :

				n.knob( "object" ).setValue( IECore.IntData( 10 ) )
				self.assertEqual( n.knob( "object" ).getValue(), IECore.IntData( 10 ) )

				n2.knob( "size" ).setValue( 10 )
				self.assertEqual( n2.knob( "size" ).getValue(), 10 )

		self.assertEqual( nuke.Undo.disabled(), True )

		self.assertEqual( n.knob( "object" ).getValue(), IECore.IntData( 10 ) )
		self.assertEqual( n2.knob( "size" ).getValue(), 10 )

		nuke.undo()

		self.assertEqual( n2.knob( "size" ).getValue(), 0 )
		self.assertEqual( n.knob( "object" ).getValue(), None )
Exemple #2
0
    def testModifyParametersAndUndo(self):

        fnOH = IECoreNuke.FnOpHolder.create("mult", "maths/multiply", 2)

        self.assertEqual(fnOH.node().knob("parm_a").getValue(), 1)
        self.assertEqual(fnOH.node().knob("parm_b").getValue(), 2)

        with IECoreNuke.UndoEnabled():

            with fnOH.parameterModificationContext() as parameters:

                parameters["a"].setNumericValue(10)
                parameters["b"].setNumericValue(20)

            self.assertEqual(fnOH.node().knob("parm_a").getValue(), 10)
            self.assertEqual(fnOH.node().knob("parm_b").getValue(), 20)

        nuke.undo()

        self.assertEqual(fnOH.node().knob("parm_a").getValue(), 1)
        self.assertEqual(fnOH.node().knob("parm_b").getValue(), 2)