diff --git a/example/example.py b/example/example.py index abaeeb9..af394e3 100644 --- a/example/example.py +++ b/example/example.py @@ -50,12 +50,12 @@ sys.path.insert(0, abspath(dirname(abspath(__file__)) + '/..')) # must be in this place, after setting path, to not need to install import qdarkstyle -from qdarkstyle import QT_BINDING, QT_ABSTRACTION +from qdarkstyle import QT_BINDING, QT_ABSTRACTION, IMAGES_PATH # Constants EXAMPLE_PATH = os.path.abspath(os.path.dirname(__file__)) REPO_PATH = os.path.dirname(EXAMPLE_PATH) -SCREENSHOTS_PATH = os.path.join(REPO_PATH, 'screenshots') +SCREENSHOTS_PATH = IMAGES_PATH def main(): diff --git a/qdarkstyle/__init__.py b/qdarkstyle/__init__.py index 3a7c66a..59a01f4 100644 --- a/qdarkstyle/__init__.py +++ b/qdarkstyle/__init__.py @@ -96,6 +96,7 @@ QRC_FILE = STYLE_FILE.replace('.qss', '.qrc') # Paths PACKAGE_PATH = os.path.abspath(os.path.dirname(__file__)) REPO_PATH = os.path.dirname(PACKAGE_PATH) +IMAGES_PATH = os.path.join(PACKAGE_PATH, '../images') QSS_PATH = os.path.join(PACKAGE_PATH, 'qss') RC_PATH = os.path.join(PACKAGE_PATH, 'rc') SVG_PATH = os.path.join(PACKAGE_PATH, 'svg') diff --git a/qdarkstyle/utils/images.py b/qdarkstyle/utils/images.py index d9c9620..54c9560 100755 --- a/qdarkstyle/utils/images.py +++ b/qdarkstyle/utils/images.py @@ -16,9 +16,11 @@ from qtpy.QtGui import QIcon from qtpy.QtWidgets import QApplication # Local imports -from qdarkstyle import _logger, RC_PATH, REPO_PATH, SVG_PATH +from qdarkstyle import _logger, RC_PATH, REPO_PATH, SVG_PATH, IMAGES_PATH from qdarkstyle.palette import DarkPalette +IMAGE_BLACKLIST = ['base_palette'] + def _get_file_color_map(fname, palette): """Return map of files to color from given palette.""" @@ -66,31 +68,33 @@ def convert_svg_to_png(svg_path, png_path, height, width): img.save(png_path) -def create_palette_image(base_svg_path=SVG_PATH, path=REPO_PATH, +def create_palette_image(base_svg_path=SVG_PATH, path=IMAGES_PATH, palette=DarkPalette): """Create palette image svg and png image on specified path.""" # Needed to use QPixmap app = QApplication([]) - base_palette_svg_path = os.path.join(base_svg_path, 'palette.svg') + base_palette_svg_path = os.path.join(base_svg_path, 'base_palette.svg') palette_svg_path = os.path.join(path, 'palette.svg') palette_png_path = os.path.join(path, 'palette.png') + _logger().info("Creating palette image ...") + _logger().info("From : %s" % palette_svg_path) + _logger().info("To : %s" % palette_png_path) + with open(base_palette_svg_path, 'r') as fh: data = fh.read() color_palette = palette.color_palette() + for color_name, color_value in color_palette.items(): data = data.replace('{{ ' + color_name + ' }}', color_value.lower()) - with open(palette_svg_path, 'w') as fh: + with open(palette_svg_path, 'w+') as fh: fh.write(data) convert_svg_to_png(palette_svg_path, palette_png_path, 4000, 4000) - _logger().info(palette_svg_path) - _logger().info(palette_png_path) - return palette_svg_path, palette_png_path @@ -110,18 +114,30 @@ def create_images(base_svg_path=SVG_PATH, rc_path=RC_PATH, 32: '.png', 64: '@2x.png', } + + _logger().info("Creating images ...") + _logger().info("From : %s" % base_svg_path) + _logger().info("Temp : %s" % temp_dir) + _logger().info("To : %s" % rc_path) + for height, ext in heights.items(): for svg_fname in svg_fnames: - _logger().info(svg_fname) - svg_path = os.path.join(base_svg_path, svg_fname) + svg_name = svg_fname.split('.')[0] + if svg_name not in IMAGE_BLACKLIST: + _logger().info("Working on: %s" % svg_fname) - color_files = _get_file_color_map(svg_fname, palette=palette) - for color_svg_name, color in color_files.items(): - temp_svg_path = os.path.join(temp_dir, color_svg_name) - _logger().info(temp_svg_path) - _create_colored_svg(svg_path, temp_svg_path, color) - width = height - png_fname = color_svg_name.replace('.svg', ext) - png_path = os.path.join(rc_path, png_fname) - convert_svg_to_png(temp_svg_path, png_path, height, width) - _logger().info(png_path) + svg_path = os.path.join(base_svg_path, svg_fname) + color_files = _get_file_color_map(svg_fname, palette=palette) + + for color_svg_name, color in color_files.items(): + temp_svg_path = os.path.join(temp_dir, color_svg_name) + + _logger().debug("Temporary file: %s" % temp_svg_path) + + _create_colored_svg(svg_path, temp_svg_path, color) + width = height + png_fname = color_svg_name.replace('.svg', ext) + png_path = os.path.join(rc_path, png_fname) + convert_svg_to_png(temp_svg_path, png_path, height, width) + + _logger().debug("Path: %s" % png_path)