Source code for mu.resources
"""
Copyright (c) 2015-2017 Nicholas H.Tollervey and others (see the AUTHORS file).
Based upon work done for Puppy IDE by Dan Pope, Nicholas Tollervey and Damien
George.
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 3 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, see <http://www.gnu.org/licenses/>.
"""
from pkg_resources import resource_filename, resource_string
from PyQt5.QtGui import QPixmap, QIcon, QMovie
from PyQt5.QtCore import QDir
import os
# The following lines add the images and css directories to the search path.
QDir.addSearchPath("images", resource_filename(__name__, "images"))
QDir.addSearchPath("css", resource_filename(__name__, "css"))
[docs]def path(name, resource_dir="images/", ext=""):
"""Return the filename for the referenced image."""
return resource_filename(__name__, resource_dir + name + ext)
[docs]def load_icon(name):
"""Load an icon from the resources directory."""
svg_path = path(name, ext=".svg")
if os.path.exists(svg_path):
svg_icon = QIcon(svg_path)
if svg_icon:
return svg_icon
return QIcon(path(name))
[docs]def load_pixmap(name, size=None):
"""Load a pixmap from the resources directory."""
if size is not None:
icon = load_icon(name)
return icon.pixmap(size)
return QPixmap(path(name))
[docs]def load_movie(name):
"""Load an animated GIF from the resources directory."""
return QMovie(path(name))
[docs]def load_stylesheet(name):
"""Load a CSS stylesheet from the resources directory."""
return resource_string(__name__, "css/" + name).decode("utf8")
[docs]def load_font_data(name):
"""
Load the (binary) content of a font as bytes
"""
return resource_string(__name__, "fonts/" + name)