# -*- coding: utf-8 -*- # # (c) Copyright 2001-2015 HP Development Company, L.P. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program 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 General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # Author: Don Welch # # Thanks to Henrique M. Holschuh for various security patches # # Std Lib import os.path # Local from base.g import * from base import utils # Qt try: from qt import * except ImportError: log.error("Unable to load qt3. Is python-qt3 installed?") # TODO: Cache pixmaps def load_pixmap(name, subdir=None, resize_to=None): # Qt3 only name = ''.join([os.path.splitext(name)[0], '.png']) if subdir is None: dir = prop.image_dir ldir = os.path.join(os.getcwd(), 'data', 'images') else: dir = os.path.join(prop.image_dir, subdir) ldir = os.path.join(os.getcwd(), 'data', 'images', subdir) for d in [dir, ldir]: f = os.path.join(d, name) if os.path.exists(f): if resize_to is not None: img = QImage(f) pm = QPixmap() pm.convertFromImage(img.smoothScale(*resize_to), 0) return pm else: return QPixmap(f) for w in utils.walkFiles(dir, recurse=True, abs_paths=True, return_folders=False, pattern=name): if resize_to is not None: img = QImage(w) pm = QPixmap() pm.convertFromImage(img.smoothScale(*resize_to), 0) return pm else: return QPixmap(w) log.error("Pixmap '%s' not found!" % name) return QPixmap()