# HG changeset patch # User cheesesucker@33b003aa-7bff-0310-803a-e67f0ece8222 # Date 1245206341 0 # Node ID cad19fe699ee84621be8220b79420cd73531773a # Parent 0adf9423062ebe8b178272ae53172a12e8c1accc Screenshot function for editor diff -r 0adf9423062e -r cad19fe699ee clients/editor/scripts/gui/mapeditor.py --- a/clients/editor/scripts/gui/mapeditor.py Wed Jun 17 01:34:59 2009 +0000 +++ b/clients/editor/scripts/gui/mapeditor.py Wed Jun 17 02:39:01 2009 +0000 @@ -1,6 +1,7 @@ # MapEditor is a plugin for Fifedit. It allows for selection and visual editing of maps. -import math +import math, os, time +from datetime import date import fife import pychan @@ -12,6 +13,7 @@ from menubar import Menu, MenuBar from action import Action, ActionGroup from scripts.mapcontroller import MapController +import fife_utils states = (u'SELECTING', u'INSERTING', u'REMOVING', u'MOVING', u'OBJECTPICKER') for s in states: @@ -177,12 +179,14 @@ zoomInAction = Action(text=u"Zoom in", icon="gui/icons/zoom_in.png") zoomOutAction = Action(text=u"Zoom out", icon="gui/icons/zoom_out.png") zoomResetAction = Action(text=u"Reset zoom", icon="gui/icons/zoom_default.png") + screenshotAction = Action(text=u"Take screenshot", icon="gui/icons/take_screenshot.png") action.activated.connect(self.rotateCounterClockwise, sender=rotateLeftAction) action.activated.connect(self.rotateClockwise, sender=rotateRightAction) action.activated.connect(self.zoomIn, sender=zoomInAction) action.activated.connect(self.zoomOut, sender=zoomOutAction) action.activated.connect(self.resetZoom, sender=zoomResetAction) + action.activated.connect(self.captureScreen, sender=screenshotAction) self._viewGroup = ActionGroup(name=u"View group") self._viewGroup.addAction(rotateLeftAction) @@ -190,6 +194,7 @@ self._viewGroup.addAction(zoomInAction) self._viewGroup.addAction(zoomOutAction) self._viewGroup.addAction(zoomResetAction) + self._viewGroup.addAction(screenshotAction) self._toolbar.addAction(self._viewGroup) self._toolbar.adaptLayout() @@ -434,6 +439,9 @@ elif keyval == fife.Key.DELETE: self._controller.clearSelection() + elif keyval == fife.Key.F7: + self.captureScreen() + elif keystr == "s": self._setMode(SELECTING) @@ -511,5 +519,16 @@ return (offsetX, offsetY) + def captureScreen(self): + userDir = fife_utils.getUserDataDirectory("fife", "editor") + t = userDir+"/screenshots" + if not os.path.isdir(t): + os.makedirs(t) + t += "/screen-%s-%s.png" % (date.today().strftime('%Y-%m-%d'), + time.strftime('%H-%M-%S')) + + self._editor.getEngine().getRenderBackend().captureScreen(t) + print "Saved screenshot to:", t + def pump(self): self._controller.moveCamera(self._scrollX, self._scrollY) \ No newline at end of file