organize editorapp.py
This commit is contained in:
parent
de969c05f1
commit
29b5fa2b28
@ -237,6 +237,8 @@ class MCEditApp(QtGui.QApplication):
|
|||||||
|
|
||||||
QtCore.QTimer.singleShot(0, self.didFinishLaunching)
|
QtCore.QTimer.singleShot(0, self.didFinishLaunching)
|
||||||
|
|
||||||
|
# --- Startup code ---
|
||||||
|
|
||||||
def didFinishLaunching(self):
|
def didFinishLaunching(self):
|
||||||
# --- Open files from command line ---
|
# --- Open files from command line ---
|
||||||
|
|
||||||
@ -251,6 +253,39 @@ class MCEditApp(QtGui.QApplication):
|
|||||||
eval_globals = {"session": session}
|
eval_globals = {"session": session}
|
||||||
exec(self.args.eval, eval_globals)
|
exec(self.args.eval, eval_globals)
|
||||||
|
|
||||||
|
consoleWidget = None
|
||||||
|
|
||||||
|
def createDebugMenu(self):
|
||||||
|
debugMenu = self.mainWindow.menuBar().addMenu("&Debug")
|
||||||
|
|
||||||
|
def raiseError():
|
||||||
|
raise ValueError("User requested error")
|
||||||
|
|
||||||
|
debugMenu.addAction("Raise Error").triggered.connect(raiseError)
|
||||||
|
|
||||||
|
def showConsole():
|
||||||
|
if self.consoleWidget is None:
|
||||||
|
self.consoleWidget = terminal_widget(sessions=self.sessions)
|
||||||
|
self.consoleWidget.show()
|
||||||
|
|
||||||
|
debugMenu.addAction("IPython Console").triggered.connect(showConsole)
|
||||||
|
|
||||||
|
objGraph = ObjGraphWidget()
|
||||||
|
|
||||||
|
def showObjGraph():
|
||||||
|
objGraph.show()
|
||||||
|
|
||||||
|
debugMenu.addAction("ObjGraph").triggered.connect(showObjGraph)
|
||||||
|
|
||||||
|
def showHeapy():
|
||||||
|
from guppy import hpy
|
||||||
|
h = hpy()
|
||||||
|
print(h.heap())
|
||||||
|
|
||||||
|
debugMenu.addAction("Heap Trace").triggered.connect(showHeapy)
|
||||||
|
|
||||||
|
return debugMenu
|
||||||
|
|
||||||
|
|
||||||
def ensureSingle(self):
|
def ensureSingle(self):
|
||||||
serverName = "MCEdit.Application"
|
serverName = "MCEdit.Application"
|
||||||
@ -295,6 +330,8 @@ class MCEditApp(QtGui.QApplication):
|
|||||||
except EnvironmentError as e:
|
except EnvironmentError as e:
|
||||||
log.info("%r", e)
|
log.info("%r", e)
|
||||||
|
|
||||||
|
# --- Status Bar ---
|
||||||
|
|
||||||
def updateStatusLabel(self, pos=None, blocktype=None, cps=None, fps=None):
|
def updateStatusLabel(self, pos=None, blocktype=None, cps=None, fps=None):
|
||||||
if pos is not None:
|
if pos is not None:
|
||||||
self.positionLabel.setText("%s" % (tuple(pos),))
|
self.positionLabel.setText("%s" % (tuple(pos),))
|
||||||
@ -382,6 +419,8 @@ class MCEditApp(QtGui.QApplication):
|
|||||||
|
|
||||||
self.sessionDockWidgets[:] = ()
|
self.sessionDockWidgets[:] = ()
|
||||||
|
|
||||||
|
# --- Recent files ---
|
||||||
|
|
||||||
def updateRecentFilesMenu(self):
|
def updateRecentFilesMenu(self):
|
||||||
recentFiles = RecentFilesSetting.value()
|
recentFiles = RecentFilesSetting.value()
|
||||||
for filename in recentFiles:
|
for filename in recentFiles:
|
||||||
@ -408,39 +447,15 @@ class MCEditApp(QtGui.QApplication):
|
|||||||
# self.mceditMenu.addAction(act)
|
# self.mceditMenu.addAction(act)
|
||||||
# self.recentFilesActions.append(act)
|
# self.recentFilesActions.append(act)
|
||||||
|
|
||||||
|
def addRecentFile(self, filename):
|
||||||
|
recentFiles = RecentFilesSetting.jsonValue([])
|
||||||
|
recentFiles.append(filename)
|
||||||
|
if len(recentFiles) > self.recentFileLimit:
|
||||||
|
recentFiles = recentFiles[1:]
|
||||||
|
|
||||||
consoleWidget = None
|
RecentFilesSetting.setJsonValue(recentFiles)
|
||||||
|
|
||||||
def createDebugMenu(self):
|
# --- Tabs and sessions ---
|
||||||
debugMenu = self.mainWindow.menuBar().addMenu("&Debug")
|
|
||||||
|
|
||||||
def raiseError():
|
|
||||||
raise ValueError("User requested error")
|
|
||||||
|
|
||||||
debugMenu.addAction("Raise Error").triggered.connect(raiseError)
|
|
||||||
|
|
||||||
def showConsole():
|
|
||||||
if self.consoleWidget is None:
|
|
||||||
self.consoleWidget = terminal_widget(sessions=self.sessions)
|
|
||||||
self.consoleWidget.show()
|
|
||||||
|
|
||||||
debugMenu.addAction("IPython Console").triggered.connect(showConsole)
|
|
||||||
|
|
||||||
objGraph = ObjGraphWidget()
|
|
||||||
|
|
||||||
def showObjGraph():
|
|
||||||
objGraph.show()
|
|
||||||
|
|
||||||
debugMenu.addAction("ObjGraph").triggered.connect(showObjGraph)
|
|
||||||
|
|
||||||
def showHeapy():
|
|
||||||
from guppy import hpy
|
|
||||||
h = hpy()
|
|
||||||
print(h.heap())
|
|
||||||
|
|
||||||
debugMenu.addAction("Heap Trace").triggered.connect(showHeapy)
|
|
||||||
|
|
||||||
return debugMenu
|
|
||||||
|
|
||||||
def tabCloseRequested(self, index):
|
def tabCloseRequested(self, index):
|
||||||
tab = self.tabWidget.widget(index)
|
tab = self.tabWidget.widget(index)
|
||||||
@ -491,16 +506,6 @@ class MCEditApp(QtGui.QApplication):
|
|||||||
tab = self.currentTab()
|
tab = self.currentTab()
|
||||||
return getattr(tab, 'editorSession', None)
|
return getattr(tab, 'editorSession', None)
|
||||||
|
|
||||||
def showBlockList(self):
|
|
||||||
session = self.currentSession()
|
|
||||||
|
|
||||||
blockList = BlockListWidget(session.worldEditor.blocktypes, session.textureAtlas)
|
|
||||||
self.tabWidget.insertTab(0, blockList, "Blocks for world %s" % session.filename)
|
|
||||||
self.tabWidget.setCurrentIndex(0)
|
|
||||||
|
|
||||||
def hideWorldList(self):
|
|
||||||
self.tabWidget.removeTab(self.tabWidget.indexOf(self.worldList))
|
|
||||||
|
|
||||||
def loadFile(self, filename, readonly=False):
|
def loadFile(self, filename, readonly=False):
|
||||||
self.hideWorldList()
|
self.hideWorldList()
|
||||||
try:
|
try:
|
||||||
@ -521,6 +526,8 @@ class MCEditApp(QtGui.QApplication):
|
|||||||
# XXX trigger viewportMoved to update minimap after GL initialization
|
# XXX trigger viewportMoved to update minimap after GL initialization
|
||||||
# session.editorTab.currentView().viewportMoved.emit(session.editorTab.currentView())
|
# session.editorTab.currentView().viewportMoved.emit(session.editorTab.currentView())
|
||||||
|
|
||||||
|
# --- World List actions ---
|
||||||
|
|
||||||
def editWorldFromList(self, filename):
|
def editWorldFromList(self, filename):
|
||||||
for editor in self.sessions:
|
for editor in self.sessions:
|
||||||
if editor.filename == filename:
|
if editor.filename == filename:
|
||||||
@ -597,12 +604,16 @@ class MCEditApp(QtGui.QApplication):
|
|||||||
|
|
||||||
recentFileLimit = 15
|
recentFileLimit = 15
|
||||||
|
|
||||||
def addRecentFile(self, filename):
|
# --- App-level widgets(?) ---
|
||||||
recentFiles = RecentFilesSetting.jsonValue([])
|
|
||||||
recentFiles.append(filename)
|
|
||||||
if len(recentFiles) > self.recentFileLimit:
|
|
||||||
recentFiles = recentFiles[1:]
|
|
||||||
|
|
||||||
RecentFilesSetting.setJsonValue(recentFiles)
|
def showBlockList(self):
|
||||||
|
session = self.currentSession()
|
||||||
|
|
||||||
|
blockList = BlockListWidget(session.worldEditor.blocktypes, session.textureAtlas)
|
||||||
|
self.tabWidget.insertTab(0, blockList, "Blocks for world %s" % session.filename)
|
||||||
|
self.tabWidget.setCurrentIndex(0)
|
||||||
|
|
||||||
|
def hideWorldList(self):
|
||||||
|
self.tabWidget.removeTab(self.tabWidget.indexOf(self.worldList))
|
||||||
|
|
||||||
RecentFilesSetting = Settings().getOption('open_world_dialog/recent_files')
|
RecentFilesSetting = Settings().getOption('open_world_dialog/recent_files')
|
||||||
|
Reference in New Issue
Block a user