Fix EditorSession not being released after tab is closed
This commit is contained in:
parent
9abe610e9f
commit
1e2eda9c47
@ -589,12 +589,14 @@ class MCEditApp(QtGui.QApplication):
|
|||||||
for menu in previousSession.menus:
|
for menu in previousSession.menus:
|
||||||
menuBar.removeAction(menu.menuAction())
|
menuBar.removeAction(menu.menuAction())
|
||||||
|
|
||||||
if session is not None:
|
if session is None:
|
||||||
|
self.undoGroup.setActiveStack(None)
|
||||||
|
else:
|
||||||
self.undoGroup.setActiveStack(session.undoStack)
|
self.undoGroup.setActiveStack(session.undoStack)
|
||||||
|
|
||||||
log.info("Adding session menus: %s", session.menus)
|
log.info("Adding session menus: %s", session.menus)
|
||||||
for menu in session.menus:
|
for menu in session.menus:
|
||||||
menuBar.insertMenu(self.mainWindow.menuWindow.menuAction(), menu)
|
menuBar.insertAction(self.mainWindow.menuWindow.menuAction(), menu.menuAction())
|
||||||
|
|
||||||
for action in session.topToolbarActions:
|
for action in session.topToolbarActions:
|
||||||
if action is None:
|
if action is None:
|
||||||
@ -719,6 +721,8 @@ class MCEditApp(QtGui.QApplication):
|
|||||||
self.undoGroup.removeStack(session.undoStack)
|
self.undoGroup.removeStack(session.undoStack)
|
||||||
self.sessions.remove(session)
|
self.sessions.remove(session)
|
||||||
session.dealloc()
|
session.dealloc()
|
||||||
|
del tab
|
||||||
|
del session
|
||||||
gc.collect()
|
gc.collect()
|
||||||
else:
|
else:
|
||||||
self.tabWidget.removeTab(index)
|
self.tabWidget.removeTab(index)
|
||||||
|
@ -547,9 +547,6 @@ class EditorSession(QtCore.QObject):
|
|||||||
self.worldEditor.close()
|
self.worldEditor.close()
|
||||||
self.worldEditor = None
|
self.worldEditor = None
|
||||||
|
|
||||||
# Break all reference cycles just to be absolutely sure.
|
|
||||||
self.__dict__.clear()
|
|
||||||
|
|
||||||
def _updateVersionsAndResourcePacks(self):
|
def _updateVersionsAndResourcePacks(self):
|
||||||
self.mcVersionMapper = QtCore.QSignalMapper()
|
self.mcVersionMapper = QtCore.QSignalMapper()
|
||||||
self.mcVersionMapper.mapped[str].connect(self.changeMCVersion)
|
self.mcVersionMapper.mapped[str].connect(self.changeMCVersion)
|
||||||
|
@ -19,7 +19,7 @@ class BlockReplacementButton(QtGui.QWidget):
|
|||||||
super(BlockReplacementButton, self).__init__()
|
super(BlockReplacementButton, self).__init__()
|
||||||
|
|
||||||
self.replacementList = BlockReplacementList()
|
self.replacementList = BlockReplacementList()
|
||||||
self.replacementDialog = QtGui.QDialog(QtGui.qApp.mainWindow)
|
self.replacementDialog = QtGui.QDialog()
|
||||||
|
|
||||||
self.replacementOk = QtGui.QPushButton(self.tr("OK"))
|
self.replacementOk = QtGui.QPushButton(self.tr("OK"))
|
||||||
self.replacementOk.clicked.connect(self.replacementDialog.accept)
|
self.replacementOk.clicked.connect(self.replacementDialog.accept)
|
||||||
|
Reference in New Issue
Block a user