Loading launch.py +16 −4 Original line number Diff line number Diff line Loading @@ -25,7 +25,8 @@ REQ_WIN = [ ] PATH_ROOT=Path(__file__).parent PATH_FONTS=PATH_ROOT/'fonts' PATH_FONTS=str(PATH_ROOT/'fonts') FONT_EXTS = {'.ttf','.otf','.ttc','.pfb'} IS_WIN7 = "Windows-7" in platform() Loading Loading @@ -156,6 +157,7 @@ def main(): from utils.logger import setup_logging, logger as LOGGER import utils.shared as shared from utils.io_utils import find_all_files_recursive from utils import config as program_config from qtpy.QtCore import QTranslator, QLocale, Qt Loading Loading @@ -216,12 +218,22 @@ def main(): # Fonts # Load custom fonts if they exist for font in os.listdir(PATH_FONTS): if font.lower().endswith(('ttf','otf','ttc','pfb')): fnt_idx = QFontDatabase.addApplicationFont((PATH_FONTS/font).as_posix()) if osp.exists(PATH_FONTS): for fp in find_all_files_recursive(PATH_FONTS, FONT_EXTS): fnt_idx = QFontDatabase.addApplicationFont(fp) if fnt_idx >= 0: shared.CUSTOM_FONTS.append(QFontDatabase.applicationFontFamilies(fnt_idx)[0]) if sys.platform == 'win32' and args.headless: # font database does not initialise on windows with qpa -offscreen: # whttps://github.com/dmMaze/BallonsTranslator/issues/519 from qtpy.QtCore import QStandardPaths font_dir_list = QStandardPaths.standardLocations(QStandardPaths.FontsLocation) for fd in font_dir_list: fp_list = find_all_files_recursive(fd, FONT_EXTS) for fp in fp_list: fnt_idx = QFontDatabase.addApplicationFont(fp) if shared.FLAG_QT6: shared.FONT_FAMILIES = set(f for f in QFontDatabase.families()) else: Loading utils/io_utils.py +19 −1 Original line number Diff line number Diff line Loading @@ -2,7 +2,7 @@ import json, os, sys, time, io import os.path as osp from pathlib import Path import importlib from typing import List, Dict, Callable from typing import List, Dict, Callable, Union import base64 import traceback Loading Loading @@ -53,6 +53,24 @@ def find_all_imgs(img_dir, abs_path=False, sort=False): return imglist def find_all_files_recursive(tgt_dir: Union[List, str], ext: Union[List, set], exclude_dirs=None): if isinstance(tgt_dir, str): tgt_dir = [tgt_dir] if exclude_dirs is None: exclude_dirs = set() filelst = [] for d in tgt_dir: for root, _, files in os.walk(d): if osp.basename(root) in exclude_dirs: continue for f in files: if Path(f).suffix.lower() in ext: filelst.append(osp.join(root, f)) return filelst def imread(imgpath, read_type=cv2.IMREAD_COLOR): if not osp.exists(imgpath): return None Loading Loading
launch.py +16 −4 Original line number Diff line number Diff line Loading @@ -25,7 +25,8 @@ REQ_WIN = [ ] PATH_ROOT=Path(__file__).parent PATH_FONTS=PATH_ROOT/'fonts' PATH_FONTS=str(PATH_ROOT/'fonts') FONT_EXTS = {'.ttf','.otf','.ttc','.pfb'} IS_WIN7 = "Windows-7" in platform() Loading Loading @@ -156,6 +157,7 @@ def main(): from utils.logger import setup_logging, logger as LOGGER import utils.shared as shared from utils.io_utils import find_all_files_recursive from utils import config as program_config from qtpy.QtCore import QTranslator, QLocale, Qt Loading Loading @@ -216,12 +218,22 @@ def main(): # Fonts # Load custom fonts if they exist for font in os.listdir(PATH_FONTS): if font.lower().endswith(('ttf','otf','ttc','pfb')): fnt_idx = QFontDatabase.addApplicationFont((PATH_FONTS/font).as_posix()) if osp.exists(PATH_FONTS): for fp in find_all_files_recursive(PATH_FONTS, FONT_EXTS): fnt_idx = QFontDatabase.addApplicationFont(fp) if fnt_idx >= 0: shared.CUSTOM_FONTS.append(QFontDatabase.applicationFontFamilies(fnt_idx)[0]) if sys.platform == 'win32' and args.headless: # font database does not initialise on windows with qpa -offscreen: # whttps://github.com/dmMaze/BallonsTranslator/issues/519 from qtpy.QtCore import QStandardPaths font_dir_list = QStandardPaths.standardLocations(QStandardPaths.FontsLocation) for fd in font_dir_list: fp_list = find_all_files_recursive(fd, FONT_EXTS) for fp in fp_list: fnt_idx = QFontDatabase.addApplicationFont(fp) if shared.FLAG_QT6: shared.FONT_FAMILIES = set(f for f in QFontDatabase.families()) else: Loading
utils/io_utils.py +19 −1 Original line number Diff line number Diff line Loading @@ -2,7 +2,7 @@ import json, os, sys, time, io import os.path as osp from pathlib import Path import importlib from typing import List, Dict, Callable from typing import List, Dict, Callable, Union import base64 import traceback Loading Loading @@ -53,6 +53,24 @@ def find_all_imgs(img_dir, abs_path=False, sort=False): return imglist def find_all_files_recursive(tgt_dir: Union[List, str], ext: Union[List, set], exclude_dirs=None): if isinstance(tgt_dir, str): tgt_dir = [tgt_dir] if exclude_dirs is None: exclude_dirs = set() filelst = [] for d in tgt_dir: for root, _, files in os.walk(d): if osp.basename(root) in exclude_dirs: continue for f in files: if Path(f).suffix.lower() in ext: filelst.append(osp.join(root, f)) return filelst def imread(imgpath, read_type=cv2.IMREAD_COLOR): if not osp.exists(imgpath): return None Loading