8d148b639b
change to src layout
81 lines
2.4 KiB
Python
81 lines
2.4 KiB
Python
import sys
|
|
|
|
if sys.version_info < (3, 7):
|
|
HAS_IMPORTLIB_RESOURCE = False
|
|
from pkg_resources import resource_filename
|
|
else:
|
|
HAS_IMPORTLIB_RESOURCE = True
|
|
from importlib.resources import path
|
|
|
|
from ..Qt import QtGui, QtWidgets
|
|
|
|
|
|
# def get_path_importlib(package, resource):
|
|
# return path(package, resource)
|
|
#
|
|
#
|
|
# def _get_path_pkg(package, resource):
|
|
# return resource_filename(package, resource)
|
|
#
|
|
#
|
|
# if HAS_IMPORTLIB_RESOURCE:
|
|
# get_path = get_path_importlib
|
|
# else:
|
|
# get_path = _get_path_pkg
|
|
|
|
|
|
def make_action_icons(widget):
|
|
global HAS_IMPORTLIB_RESOURCE
|
|
icon_type = QtWidgets.QApplication.instance().theme
|
|
from json import loads
|
|
|
|
if HAS_IMPORTLIB_RESOURCE:
|
|
with path('resources.icons', 'icons.json') as fp:
|
|
with fp.open('r') as f:
|
|
icon_list = loads(f.read())
|
|
|
|
for ac, img in icon_list[widget.objectName()].items():
|
|
dirname = 'resources.icons.%s_light' % icon_type
|
|
with path(dirname, img+'.png') as imgpath:
|
|
icon = QtGui.QIcon()
|
|
icon.addPixmap(QtGui.QPixmap(str(imgpath)), QtGui.QIcon.Normal, QtGui.QIcon.Off)
|
|
getattr(widget, ac).setIcon(icon)
|
|
|
|
else:
|
|
with open(resource_filename('resources.icons', 'icons.json'), 'r') as f:
|
|
icon_list = loads(f.read())
|
|
|
|
for ac, img in icon_list[widget.objectName()].items():
|
|
dirname = 'resources.icons.%s_light' % icon_type
|
|
imgpath = resource_filename(dirname, img+'.png')
|
|
icon = QtGui.QIcon()
|
|
icon.addPixmap(QtGui.QPixmap(str(imgpath)), QtGui.QIcon.Normal, QtGui.QIcon.Off)
|
|
getattr(widget, ac).setIcon(icon)
|
|
|
|
|
|
def get_icon(icon_name):
|
|
try:
|
|
icon_type = QtWidgets.QApplication.instance().theme
|
|
except AttributeError:
|
|
icon_type = 'normal'
|
|
|
|
global HAS_IMPORTLIB_RESOURCE
|
|
|
|
if icon_name != 'logo':
|
|
dirname = f'resources.icons.{icon_type}_light'
|
|
else:
|
|
dirname = 'resources.icons'
|
|
|
|
if HAS_IMPORTLIB_RESOURCE:
|
|
with path(dirname, icon_name+'.png') as imgpath:
|
|
icon = QtGui.QIcon()
|
|
icon.addPixmap(QtGui.QPixmap(str(imgpath)), QtGui.QIcon.Normal, QtGui.QIcon.Off)
|
|
|
|
return icon
|
|
else:
|
|
imgpath = resource_filename(dirname, icon_name+'.png')
|
|
icon = QtGui.QIcon()
|
|
icon.addPixmap(QtGui.QPixmap(imgpath), QtGui.QIcon.Normal, QtGui.QIcon.Off)
|
|
|
|
return icon
|