Mercurial > fife-parpg
view engine/extensions/fife_utils.py @ 343:8e71629c4c43
Several changes to layer, camera and map dialogs:
* Renamed CameraEditor and LayerEditor to CameraDialog and LayerDialog
* Moved CameraDialog and LayerDialog into their own modules in scripts.gui so other components can use them.
* Prettier camera dialog
* Added LayerDialog to map wizard
author | cheesesucker@33b003aa-7bff-0310-803a-e67f0ece8222 |
---|---|
date | Tue, 25 Aug 2009 01:21:00 +0000 |
parents | 48c99636453e |
children | dfd48d49c044 |
line wrap: on
line source
#!/usr/bin/env python # -*- coding: utf-8 -*- # #################################################################### # Copyright (C) 2005-2009 by the FIFE team # http://www.fifengine.de # This file is part of FIFE. # # FIFE is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the # Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # #################################################################### import fife, re, sys, os __all__ = ['is_fife_exc', 'getUserDataDirectory'] _exc_re = re.compile(r'_\[(\w+)\]_') """ This file contains some functions that may be useful """ def is_fife_exc(type, original_exc): """ Checks if an exception is of given type. Example: try: obj = self.model.createObject(str(id), str(nspace), parent) except RuntimeError, e: if is_fife_exc(fife.NameClash, e): raise NameClash('Tried to create already existing object, ignoring') raise """ ret = False m = _exc_re.search(str(original_exc)) if m: if m.group(1) == type('').getTypeStr(): ret = True return ret def getUserDataDirectory(vendor, appname): """ Gets the proper location to save configuration and data files, depending on depending on OS. Windows: %APPDATA%\vendor\appname Mac: ~/Library/Application Support/vendor/appname Linux/Unix/Other: ~/.vendor/appname See: Brian Vanderburg II @ http://mail.python.org/pipermail/python-list/2008-May/660779.html """ dir = None # WINDOWS if os.name == "nt": # Try env APPDATA or USERPROFILE or HOMEDRIVE/HOMEPATH if "APPDATA" in os.environ: dir = os.environ["APPDATA"] if ((dir is None) or (not os.path.isdir(dir))) and ("USERPROFILE" in os.environ): dir = os.environ["USERPROFILE"] if os.path.isdir(os.path.join(dir, "Application Data")): dir = os.path.join(dir, "Application Data") if ((dir is None) or (not os.path.isdir(dir))) and ("HOMEDRIVE" in os.environ) and ("HOMEPATH" in os.environ): dir = os.environ["HOMEDRIVE"] + os.environ["HOMEPATH"] if os.path.isdir(os.path.join(dir, "Application Data")): dir = os.path.join(dir, "Application Data") if (dir is None) or (not os.path.isdir(dir)): dir = os.path.expanduser("~") # On windows, add vendor and app name dir = os.path.join(dir, vendor, appname) # Mac elif os.name == "mac": # ?? may not be entirely correct dir = os.path.expanduser("~") dir = os.path.join(dir, "Library", "Application Support") dir = os.path.join(dir, vendor, appname) # Unix/Linux/all others if dir is None: dir = os.path.expanduser("~") dir = os.path.join(dir, "."+vendor, appname) # Create vendor/appname folder if it doesn't exist if not os.path.isdir(dir): os.makedirs(dir) return dir