mirror of https://github.com/chriskiehl/Gooey.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.4 KiB
52 lines
1.4 KiB
'''
|
|
Collection of the image paths.
|
|
|
|
The module is meant to act as a singleton, hence the globals() abuse.
|
|
|
|
Image credit: kidcomic.net
|
|
'''
|
|
import os
|
|
from functools import partial
|
|
|
|
from gooey.gui.util.freeze import getResourcePath
|
|
from gooey.util.functional import merge
|
|
|
|
filenames = {
|
|
'programIcon': 'program_icon.png',
|
|
'successIcon': 'success_icon.png',
|
|
'runningIcon': 'running_icon.png',
|
|
'configIcon': 'config_icon.png',
|
|
'errorIcon': 'error_icon.png'
|
|
}
|
|
|
|
|
|
def loadImages(targetDir):
|
|
defaultImages = resolvePaths(getResourcePath('images'), filenames)
|
|
return {'images': merge(defaultImages, collectOverrides(targetDir, filenames))}
|
|
|
|
|
|
def getImageDirectory(targetDir):
|
|
return getResourcePath('images') \
|
|
if targetDir == 'default' \
|
|
else targetDir
|
|
|
|
|
|
def collectOverrides(targetDir, filenames):
|
|
if targetDir == '::gooey/default':
|
|
return {}
|
|
|
|
pathto = partial(os.path.join, targetDir)
|
|
if not os.path.isdir(targetDir):
|
|
raise IOError('Unable to find the user supplied directory {}'.format(
|
|
targetDir))
|
|
|
|
return {varname: pathto(filename)
|
|
for varname, filename in filenames.items()
|
|
if os.path.exists(pathto(filename))}
|
|
|
|
|
|
def resolvePaths(dirname, filenames):
|
|
return {key: os.path.join(dirname, filename)
|
|
for key, filename in filenames.items()}
|
|
|
|
|