Thanks Justin,
I tried adding this to the function that runs in the pyside button and I 
got the same result, undo was still only recording the move commands one at 
a time.

yury 


On Friday, December 19, 2014 11:21:32 AM UTC-8, ynedelin wrote:
>
>
> Hey Guys
> I was wondering if anyone have seen this behavior.
>
> I have this small function  
>
>
>
>
>
>
> *""" test undo with QT """import maya.cmds as mcdef testLoop():    sel = 
> mc.ls <http://mc.ls>(sl=1)    for node in sel:        mc.move(1,1,1, node, 
> relative=1)*
>
> If I run this on a selection of nodes from script editor I can undo the 
> whole function with a single undo
>
> but
>
> if I run this from a pyside button I have to undo every 'move' command so 
> if there are 10 selected objects I have to run undo 10 times. 
>
> What am I doing wrong?
>
> Thanks a lot.
> here is my UI script
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> *from PySide import QtCore, QtGui, QtUiToolsfrom shiboken import 
> wrapInstanceimport maya.OpenMayaUI as omuiimport pysideuicimport maya.cmds 
> as mcimport os, sys, inspectimport testUndo as TfilePath = 
> os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))uiFile
>  
> = os.path.join( filePath , "testUndo.ui")main_window_ptr = 
> omui.MQtUtil.mainWindow()_parentWindow = 
> wrapInstance(long(main_window_ptr), QtGui.QWidget)class 
> UiLoader(QtUiTools.QUiLoader):    def __init__(self, baseinstance):        
> QtUiTools.QUiLoader.__init__(self, baseinstance)        self.baseinstance = 
> baseinstance    def createWidget(self, class_name, parent=None, 
> name=''):        if parent is None and self.baseinstance:            return 
> self.baseinstance        else:            widget = 
> QtUiTools.QUiLoader.createWidget(self, class_name, parent, name)            
> if self.baseinstance:                setattr(self.baseinstance, name, 
> widget)            return widgetdef loadUi(uifile, baseinstance=None):    
> loader = UiLoader(baseinstance)    widget = loader.load(uifile)    
> QtCore.QMetaObject.connectSlotsByName(widget)    return widgetclass 
> TestUndoWindow(QtGui.QMainWindow):    def __init__(self, parent = 
> None):        QtGui.QMainWindow.__init__(self, parent=_parentWindow)        
> loadUi(uiFile, self)    def establishConnections(self):          
> self.testUndo_btn.clicked.connect(self.testUndo)    def 
> testUndo(self):        T.testLoop()*
>

-- 
You received this message because you are subscribed to the Google Groups 
"Python Programming for Autodesk Maya" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/python_inside_maya/fbd396be-8233-4fe2-a507-87a8a495c52e%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to