def pixmap_cache(name, path=None): """ Return the QPixmap corresponding to a filename. If the filename does not contain a path component, 'path' is used (or if 'path' is not specified, the local 'images' directory is used). """ if name[:1] == '@': image = convert_image(name.replace(' ', '_').lower()) if image is not None: return image.create_image() name_path, name = os.path.split(name) name = name.replace(' ', '_').lower() if name_path: filename = os.path.join(name_path, name) else: if path is None: filename = os.path.join(os.path.dirname(__file__), 'images', name) else: filename = os.path.join(path, name) filename = os.path.abspath(filename) if is_qt5: pm = QtGui.QPixmapCache.find(filename) if pm is None: pm = QtGui.QPixmap(filename) QtGui.QPixmapCache.insert(filename, pm) else: pm = QtGui.QPixmap() if not QtGui.QPixmapCache.find(filename, pm): pm.load(filename) QtGui.QPixmapCache.insert(filename, pm) return pm
def pixmap_cache(name, path=None): """ Convert an image file name to a cached QPixmap Returns the QPixmap corresponding to a filename. If the filename does not contain a path component, 'path' is used (or if 'path' is not specified, the local 'images' directory is used). """ if name[:1] == "@": image = convert_image(name.replace(" ", "_").lower()) if image is not None: return image.create_image() name_path, name = os.path.split(name) name = name.replace(" ", "_").lower() if name_path: filename = os.path.join(name_path, name) else: if path is None: filename = os.path.join(os.path.dirname(__file__), "images", name) else: filename = os.path.join(path, name) filename = os.path.abspath(filename) if is_qt5: pm = QtGui.QPixmapCache.find(filename) if pm is None: pm = QtGui.QPixmap(filename) QtGui.QPixmapCache.insert(filename, pm) else: pm = QtGui.QPixmap() if not QtGui.QPixmapCache.find(filename, pm): pm.load(filename) QtGui.QPixmapCache.insert(filename, pm) return pm
def convert_theme(value, level=3): """ Converts a specified value to a Theme if possible. """ if not isinstance(value, six.string_types): return value if (value[:1] == '@') and (value.find(':') >= 2): try: from .image.image import ImageLibrary info = ImageLibrary.image_info(value) except: info = None if info is not None: return info.theme from .theme import Theme return Theme(image=convert_image(value, level + 1))