I don’t remember the exact circumstances when Maya decides to do it for you
or not, but you could explicitly define an undo chunk:
cmds.undoInfo(openChunk=True)try:
testLoop()finally:
cmds.undoInfo(closeChunk=True)
On Sat Dec 20 2014 at 8:21:33 AM ynedelin <[email protected]> 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/4b20c166-e487-4b7c-b7d3-0eb754494cbf%40googlegroups.com
> <https://groups.google.com/d/msgid/python_inside_maya/4b20c166-e487-4b7c-b7d3-0eb754494cbf%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>
--
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/CAPGFgA1kn-uJHsfEka1GVWi-SzeXvw-OygQoVf1bTG0-nwV8yw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.