diff --git a/CMakeLists.txt b/CMakeLists.txt index c1141caa4..58c87512d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -305,6 +305,7 @@ pkg_check_modules (GTHREAD REQUIRED gthread-2.0>=2.44) pkg_check_modules (GOBJECT REQUIRED gobject-2.0>=2.44) pkg_check_modules (SIGC REQUIRED sigc++-2.0>=2.3.1) pkg_check_modules (LENSFUN REQUIRED lensfun>=0.2) +pkg_check_modules (RSVG REQUIRED librsvg-2.0>=2.40) if(WIN32) add_definitions(-DWIN32) diff --git a/rtdata/CMakeLists.txt b/rtdata/CMakeLists.txt index f8efa1523..46722ba01 100644 --- a/rtdata/CMakeLists.txt +++ b/rtdata/CMakeLists.txt @@ -8,14 +8,9 @@ file(GLOB FONTS "fonts/*") set(PROFILESDIR "profiles") set(THEMEDIR "themes") -# Images, mostly icons, which are generated using the generatePngIcons script: -set(IMAGES_THEMED - "images/themed/png/dark" - "images/themed/png/light" - ) - -# Other images which are generated manually: -file(GLOB IMAGES_NONTHEMED "images/non-themed/png/*") +file(GLOB IMG_SVG LIST_DIRECTORIES false "images/svg/*") +file(GLOB IMG_PNG LIST_DIRECTORIES false "images/png/*") +file(GLOB IMG_ICO LIST_DIRECTORIES false "images/*") if(WIN32) set(OPTIONSFILE "options/options.win") @@ -32,11 +27,11 @@ endif() if(UNIX) configure_file("${CMAKE_CURRENT_SOURCE_DIR}/rawtherapee.desktop.in" "${CMAKE_CURRENT_BINARY_DIR}/rawtherapee.desktop") install(FILES "${CMAKE_CURRENT_BINARY_DIR}/rawtherapee.desktop" DESTINATION ${DESKTOPDIR}) - install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/images/non-themed/png/rawtherapee-logo-16.png" DESTINATION "${ICONSDIR}/hicolor/16x16/apps" RENAME rawtherapee.png) - install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/images/non-themed/png/rawtherapee-logo-24.png" DESTINATION "${ICONSDIR}/hicolor/24x24/apps" RENAME rawtherapee.png) - install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/images/non-themed/png/rawtherapee-logo-48.png" DESTINATION "${ICONSDIR}/hicolor/48x48/apps" RENAME rawtherapee.png) - install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/images/non-themed/png/rawtherapee-logo-128.png" DESTINATION "${ICONSDIR}/hicolor/128x128/apps" RENAME rawtherapee.png) - install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/images/non-themed/png/rawtherapee-logo-256.png" DESTINATION "${ICONSDIR}/hicolor/256x256/apps" RENAME rawtherapee.png) + install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/images/png/rawtherapee-logo-16.png" DESTINATION "${ICONSDIR}/hicolor/16x16/apps" RENAME rawtherapee.png) + install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/images/png/rawtherapee-logo-24.png" DESTINATION "${ICONSDIR}/hicolor/24x24/apps" RENAME rawtherapee.png) + install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/images/png/rawtherapee-logo-48.png" DESTINATION "${ICONSDIR}/hicolor/48x48/apps" RENAME rawtherapee.png) + install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/images/png/rawtherapee-logo-128.png" DESTINATION "${ICONSDIR}/hicolor/128x128/apps" RENAME rawtherapee.png) + install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/images/png/rawtherapee-logo-256.png" DESTINATION "${ICONSDIR}/hicolor/256x256/apps" RENAME rawtherapee.png) endif() install(FILES ${LANGUAGEFILES} DESTINATION "${DATADIR}/languages") @@ -52,13 +47,9 @@ endif() install(DIRECTORY ${PROFILESDIR} DESTINATION "${DATADIR}" FILES_MATCHING PATTERN "*.pp3") install(DIRECTORY ${THEMEDIR} DESTINATION "${DATADIR}") -foreach(theme ${IMAGES_THEMED}) - install(DIRECTORY ${theme} DESTINATION "${DATADIR}/images") -endforeach() - -#install(DIRECTORY ${IMAGES_NONTHEMED} DESTINATION "${DATADIR}/images" FILES_MATCHING PATTERN "*.png") -#install(DIRECTORY ${IMAGES_NONTHEMED} DESTINATION "${DATADIR}/images/") -install(FILES ${IMAGES_NONTHEMED} DESTINATION "${DATADIR}/images") +install(FILES ${IMG_SVG} DESTINATION "${DATADIR}/images") +install(FILES ${IMG_PNG} DESTINATION "${DATADIR}/images") +install(FILES ${IMG_ICO} DESTINATION "${DATADIR}/images") if(APPLE) # CMake escapes first item quote character. Do not remove 'DUMMY_VARIABLE=' diff --git a/rtdata/dcpprofiles/FUJIFILM X-T10.dcp b/rtdata/dcpprofiles/FUJIFILM X-T10.dcp deleted file mode 100644 index 9b360b244..000000000 Binary files a/rtdata/dcpprofiles/FUJIFILM X-T10.dcp and /dev/null differ diff --git a/rtdata/images/non-themed/png/rawtherapee-logo-128.png b/rtdata/images/non-themed/png/rawtherapee-logo-128.png deleted file mode 100644 index 0a224b3d9..000000000 Binary files a/rtdata/images/non-themed/png/rawtherapee-logo-128.png and /dev/null differ diff --git a/rtdata/images/non-themed/png/rawtherapee-logo-16.png b/rtdata/images/non-themed/png/rawtherapee-logo-16.png deleted file mode 100644 index 7b67f7408..000000000 Binary files a/rtdata/images/non-themed/png/rawtherapee-logo-16.png and /dev/null differ diff --git a/rtdata/images/non-themed/png/rawtherapee-logo-24.png b/rtdata/images/non-themed/png/rawtherapee-logo-24.png deleted file mode 100644 index 6b13e0c98..000000000 Binary files a/rtdata/images/non-themed/png/rawtherapee-logo-24.png and /dev/null differ diff --git a/rtdata/images/non-themed/png/rawtherapee-logo-256.png b/rtdata/images/non-themed/png/rawtherapee-logo-256.png deleted file mode 100644 index 00fdb390f..000000000 Binary files a/rtdata/images/non-themed/png/rawtherapee-logo-256.png and /dev/null differ diff --git a/rtdata/images/non-themed/png/rawtherapee-logo-48.png b/rtdata/images/non-themed/png/rawtherapee-logo-48.png deleted file mode 100644 index cbd46b20e..000000000 Binary files a/rtdata/images/non-themed/png/rawtherapee-logo-48.png and /dev/null differ diff --git a/rtdata/images/non-themed/png/splash.png b/rtdata/images/non-themed/png/splash.png deleted file mode 100644 index f3c523b88..000000000 Binary files a/rtdata/images/non-themed/png/splash.png and /dev/null differ diff --git a/rtdata/images/non-themed/rawtherapee.ico b/rtdata/images/non-themed/rawtherapee.ico deleted file mode 100644 index d7befa1a7..000000000 Binary files a/rtdata/images/non-themed/rawtherapee.ico and /dev/null differ diff --git a/rtdata/images/non-themed/png/empty.png b/rtdata/images/png/empty.png similarity index 100% rename from rtdata/images/non-themed/png/empty.png rename to rtdata/images/png/empty.png diff --git a/rtdata/images/png/rawtherapee-logo-128.png b/rtdata/images/png/rawtherapee-logo-128.png new file mode 100644 index 000000000..d479e15f1 Binary files /dev/null and b/rtdata/images/png/rawtherapee-logo-128.png differ diff --git a/rtdata/images/png/rawtherapee-logo-16.png b/rtdata/images/png/rawtherapee-logo-16.png new file mode 100644 index 000000000..dc8084ffc Binary files /dev/null and b/rtdata/images/png/rawtherapee-logo-16.png differ diff --git a/rtdata/images/png/rawtherapee-logo-24.png b/rtdata/images/png/rawtherapee-logo-24.png new file mode 100644 index 000000000..9ba43bc2f Binary files /dev/null and b/rtdata/images/png/rawtherapee-logo-24.png differ diff --git a/rtdata/images/png/rawtherapee-logo-256.png b/rtdata/images/png/rawtherapee-logo-256.png new file mode 100644 index 000000000..a6693fcdd Binary files /dev/null and b/rtdata/images/png/rawtherapee-logo-256.png differ diff --git a/rtdata/images/png/rawtherapee-logo-32.png b/rtdata/images/png/rawtherapee-logo-32.png new file mode 100644 index 000000000..c4e862bb8 Binary files /dev/null and b/rtdata/images/png/rawtherapee-logo-32.png differ diff --git a/rtdata/images/png/rawtherapee-logo-48.png b/rtdata/images/png/rawtherapee-logo-48.png new file mode 100644 index 000000000..ed1841d2a Binary files /dev/null and b/rtdata/images/png/rawtherapee-logo-48.png differ diff --git a/rtdata/images/png/rawtherapee-logo-64.png b/rtdata/images/png/rawtherapee-logo-64.png new file mode 100644 index 000000000..d876b0e91 Binary files /dev/null and b/rtdata/images/png/rawtherapee-logo-64.png differ diff --git a/rtdata/images/rawtherapee.ico b/rtdata/images/rawtherapee.ico new file mode 100644 index 000000000..d5e6425af Binary files /dev/null and b/rtdata/images/rawtherapee.ico differ diff --git a/rtdata/images/rawtherapee_ico.xcf b/rtdata/images/rawtherapee_ico.xcf new file mode 100644 index 000000000..c46ec64f7 Binary files /dev/null and b/rtdata/images/rawtherapee_ico.xcf differ diff --git a/rtdata/images/themed/svg/add-small.svg b/rtdata/images/svg/add-small.svg similarity index 100% rename from rtdata/images/themed/svg/add-small.svg rename to rtdata/images/svg/add-small.svg diff --git a/rtdata/images/themed/svg/add.svg b/rtdata/images/svg/add.svg similarity index 100% rename from rtdata/images/themed/svg/add.svg rename to rtdata/images/svg/add.svg diff --git a/rtdata/images/themed/svg/aperture.svg b/rtdata/images/svg/aperture.svg similarity index 100% rename from rtdata/images/themed/svg/aperture.svg rename to rtdata/images/svg/aperture.svg diff --git a/rtdata/images/themed/svg/arrow-down-small.svg b/rtdata/images/svg/arrow-down-small.svg similarity index 100% rename from rtdata/images/themed/svg/arrow-down-small.svg rename to rtdata/images/svg/arrow-down-small.svg diff --git a/rtdata/images/themed/svg/arrow-left-small.svg b/rtdata/images/svg/arrow-left-small.svg similarity index 100% rename from rtdata/images/themed/svg/arrow-left-small.svg rename to rtdata/images/svg/arrow-left-small.svg diff --git a/rtdata/images/themed/svg/arrow-right-small.svg b/rtdata/images/svg/arrow-right-small.svg similarity index 100% rename from rtdata/images/themed/svg/arrow-right-small.svg rename to rtdata/images/svg/arrow-right-small.svg diff --git a/rtdata/images/themed/svg/arrow-up-small.svg b/rtdata/images/svg/arrow-up-small.svg similarity index 100% rename from rtdata/images/themed/svg/arrow-up-small.svg rename to rtdata/images/svg/arrow-up-small.svg diff --git a/rtdata/images/themed/svg/arrow-updown.svg b/rtdata/images/svg/arrow-updown.svg similarity index 100% rename from rtdata/images/themed/svg/arrow-updown.svg rename to rtdata/images/svg/arrow-updown.svg diff --git a/rtdata/images/themed/svg/arrow2-left.svg b/rtdata/images/svg/arrow2-left.svg similarity index 100% rename from rtdata/images/themed/svg/arrow2-left.svg rename to rtdata/images/svg/arrow2-left.svg diff --git a/rtdata/images/themed/svg/arrow2-right.svg b/rtdata/images/svg/arrow2-right.svg similarity index 100% rename from rtdata/images/themed/svg/arrow2-right.svg rename to rtdata/images/svg/arrow2-right.svg diff --git a/rtdata/images/themed/svg/atom.svg b/rtdata/images/svg/atom.svg similarity index 100% rename from rtdata/images/themed/svg/atom.svg rename to rtdata/images/svg/atom.svg diff --git a/rtdata/images/themed/svg/bayer.svg b/rtdata/images/svg/bayer.svg similarity index 100% rename from rtdata/images/themed/svg/bayer.svg rename to rtdata/images/svg/bayer.svg diff --git a/rtdata/images/themed/svg/beforeafter.svg b/rtdata/images/svg/beforeafter.svg similarity index 100% rename from rtdata/images/themed/svg/beforeafter.svg rename to rtdata/images/svg/beforeafter.svg diff --git a/rtdata/images/themed/svg/cancel-small.svg b/rtdata/images/svg/cancel-small.svg similarity index 100% rename from rtdata/images/themed/svg/cancel-small.svg rename to rtdata/images/svg/cancel-small.svg diff --git a/rtdata/images/themed/svg/cancel.svg b/rtdata/images/svg/cancel.svg similarity index 100% rename from rtdata/images/themed/svg/cancel.svg rename to rtdata/images/svg/cancel.svg diff --git a/rtdata/images/themed/svg/circle-black-small.svg b/rtdata/images/svg/circle-black-small.svg similarity index 100% rename from rtdata/images/themed/svg/circle-black-small.svg rename to rtdata/images/svg/circle-black-small.svg diff --git a/rtdata/images/themed/svg/circle-blue-green-small.svg b/rtdata/images/svg/circle-blue-green-small.svg similarity index 100% rename from rtdata/images/themed/svg/circle-blue-green-small.svg rename to rtdata/images/svg/circle-blue-green-small.svg diff --git a/rtdata/images/themed/svg/circle-blue-red-small.svg b/rtdata/images/svg/circle-blue-red-small.svg similarity index 100% rename from rtdata/images/themed/svg/circle-blue-red-small.svg rename to rtdata/images/svg/circle-blue-red-small.svg diff --git a/rtdata/images/themed/svg/circle-blue-small.svg b/rtdata/images/svg/circle-blue-small.svg similarity index 100% rename from rtdata/images/themed/svg/circle-blue-small.svg rename to rtdata/images/svg/circle-blue-small.svg diff --git a/rtdata/images/themed/svg/circle-blue-yellow-small.svg b/rtdata/images/svg/circle-blue-yellow-small.svg similarity index 100% rename from rtdata/images/themed/svg/circle-blue-yellow-small.svg rename to rtdata/images/svg/circle-blue-yellow-small.svg diff --git a/rtdata/images/themed/svg/circle-cyan-red-small.svg b/rtdata/images/svg/circle-cyan-red-small.svg similarity index 100% rename from rtdata/images/themed/svg/circle-cyan-red-small.svg rename to rtdata/images/svg/circle-cyan-red-small.svg diff --git a/rtdata/images/themed/svg/circle-cyan-small.svg b/rtdata/images/svg/circle-cyan-small.svg similarity index 100% rename from rtdata/images/themed/svg/circle-cyan-small.svg rename to rtdata/images/svg/circle-cyan-small.svg diff --git a/rtdata/images/themed/svg/circle-darkgray-small.svg b/rtdata/images/svg/circle-darkgray-small.svg similarity index 100% rename from rtdata/images/themed/svg/circle-darkgray-small.svg rename to rtdata/images/svg/circle-darkgray-small.svg diff --git a/rtdata/images/themed/svg/circle-empty-blue-small.svg b/rtdata/images/svg/circle-empty-blue-small.svg similarity index 100% rename from rtdata/images/themed/svg/circle-empty-blue-small.svg rename to rtdata/images/svg/circle-empty-blue-small.svg diff --git a/rtdata/images/themed/svg/circle-empty-darkgray-small.svg b/rtdata/images/svg/circle-empty-darkgray-small.svg similarity index 100% rename from rtdata/images/themed/svg/circle-empty-darkgray-small.svg rename to rtdata/images/svg/circle-empty-darkgray-small.svg diff --git a/rtdata/images/themed/svg/circle-empty-gray-small.svg b/rtdata/images/svg/circle-empty-gray-small.svg similarity index 100% rename from rtdata/images/themed/svg/circle-empty-gray-small.svg rename to rtdata/images/svg/circle-empty-gray-small.svg diff --git a/rtdata/images/themed/svg/circle-empty-green-small.svg b/rtdata/images/svg/circle-empty-green-small.svg similarity index 100% rename from rtdata/images/themed/svg/circle-empty-green-small.svg rename to rtdata/images/svg/circle-empty-green-small.svg diff --git a/rtdata/images/themed/svg/circle-empty-purple-small.svg b/rtdata/images/svg/circle-empty-purple-small.svg similarity index 100% rename from rtdata/images/themed/svg/circle-empty-purple-small.svg rename to rtdata/images/svg/circle-empty-purple-small.svg diff --git a/rtdata/images/themed/svg/circle-empty-red-small.svg b/rtdata/images/svg/circle-empty-red-small.svg similarity index 100% rename from rtdata/images/themed/svg/circle-empty-red-small.svg rename to rtdata/images/svg/circle-empty-red-small.svg diff --git a/rtdata/images/themed/svg/circle-empty-yellow-small.svg b/rtdata/images/svg/circle-empty-yellow-small.svg similarity index 100% rename from rtdata/images/themed/svg/circle-empty-yellow-small.svg rename to rtdata/images/svg/circle-empty-yellow-small.svg diff --git a/rtdata/images/themed/svg/circle-gray-blue-small.svg b/rtdata/images/svg/circle-gray-blue-small.svg similarity index 100% rename from rtdata/images/themed/svg/circle-gray-blue-small.svg rename to rtdata/images/svg/circle-gray-blue-small.svg diff --git a/rtdata/images/themed/svg/circle-gray-green-small.svg b/rtdata/images/svg/circle-gray-green-small.svg similarity index 100% rename from rtdata/images/themed/svg/circle-gray-green-small.svg rename to rtdata/images/svg/circle-gray-green-small.svg diff --git a/rtdata/images/themed/svg/circle-gray-red-small.svg b/rtdata/images/svg/circle-gray-red-small.svg similarity index 100% rename from rtdata/images/themed/svg/circle-gray-red-small.svg rename to rtdata/images/svg/circle-gray-red-small.svg diff --git a/rtdata/images/themed/svg/circle-gray-small.svg b/rtdata/images/svg/circle-gray-small.svg similarity index 100% rename from rtdata/images/themed/svg/circle-gray-small.svg rename to rtdata/images/svg/circle-gray-small.svg diff --git a/rtdata/images/themed/svg/circle-green-blue-small.svg b/rtdata/images/svg/circle-green-blue-small.svg similarity index 100% rename from rtdata/images/themed/svg/circle-green-blue-small.svg rename to rtdata/images/svg/circle-green-blue-small.svg diff --git a/rtdata/images/themed/svg/circle-green-red-small.svg b/rtdata/images/svg/circle-green-red-small.svg similarity index 100% rename from rtdata/images/themed/svg/circle-green-red-small.svg rename to rtdata/images/svg/circle-green-red-small.svg diff --git a/rtdata/images/themed/svg/circle-green-small.svg b/rtdata/images/svg/circle-green-small.svg similarity index 100% rename from rtdata/images/themed/svg/circle-green-small.svg rename to rtdata/images/svg/circle-green-small.svg diff --git a/rtdata/images/themed/svg/circle-magenta-small.svg b/rtdata/images/svg/circle-magenta-small.svg similarity index 100% rename from rtdata/images/themed/svg/circle-magenta-small.svg rename to rtdata/images/svg/circle-magenta-small.svg diff --git a/rtdata/images/themed/svg/circle-orange-small.svg b/rtdata/images/svg/circle-orange-small.svg similarity index 100% rename from rtdata/images/themed/svg/circle-orange-small.svg rename to rtdata/images/svg/circle-orange-small.svg diff --git a/rtdata/images/themed/svg/circle-purple-small.svg b/rtdata/images/svg/circle-purple-small.svg similarity index 100% rename from rtdata/images/themed/svg/circle-purple-small.svg rename to rtdata/images/svg/circle-purple-small.svg diff --git a/rtdata/images/themed/svg/circle-red-blue-small.svg b/rtdata/images/svg/circle-red-blue-small.svg similarity index 100% rename from rtdata/images/themed/svg/circle-red-blue-small.svg rename to rtdata/images/svg/circle-red-blue-small.svg diff --git a/rtdata/images/themed/svg/circle-red-cyan-small.svg b/rtdata/images/svg/circle-red-cyan-small.svg similarity index 100% rename from rtdata/images/themed/svg/circle-red-cyan-small.svg rename to rtdata/images/svg/circle-red-cyan-small.svg diff --git a/rtdata/images/themed/svg/circle-red-green-small.svg b/rtdata/images/svg/circle-red-green-small.svg similarity index 100% rename from rtdata/images/themed/svg/circle-red-green-small.svg rename to rtdata/images/svg/circle-red-green-small.svg diff --git a/rtdata/images/themed/svg/circle-red-small.svg b/rtdata/images/svg/circle-red-small.svg similarity index 100% rename from rtdata/images/themed/svg/circle-red-small.svg rename to rtdata/images/svg/circle-red-small.svg diff --git a/rtdata/images/themed/svg/circle-white-small.svg b/rtdata/images/svg/circle-white-small.svg similarity index 100% rename from rtdata/images/themed/svg/circle-white-small.svg rename to rtdata/images/svg/circle-white-small.svg diff --git a/rtdata/images/themed/svg/circle-yellow-blue-small.svg b/rtdata/images/svg/circle-yellow-blue-small.svg similarity index 100% rename from rtdata/images/themed/svg/circle-yellow-blue-small.svg rename to rtdata/images/svg/circle-yellow-blue-small.svg diff --git a/rtdata/images/themed/svg/circle-yellow-small.svg b/rtdata/images/svg/circle-yellow-small.svg similarity index 100% rename from rtdata/images/themed/svg/circle-yellow-small.svg rename to rtdata/images/svg/circle-yellow-small.svg diff --git a/rtdata/images/themed/svg/color-circles.svg b/rtdata/images/svg/color-circles.svg similarity index 100% rename from rtdata/images/themed/svg/color-circles.svg rename to rtdata/images/svg/color-circles.svg diff --git a/rtdata/images/themed/svg/color-picker-add-hicontrast.svg b/rtdata/images/svg/color-picker-add-hicontrast.svg similarity index 100% rename from rtdata/images/themed/svg/color-picker-add-hicontrast.svg rename to rtdata/images/svg/color-picker-add-hicontrast.svg diff --git a/rtdata/images/themed/svg/color-picker-add.svg b/rtdata/images/svg/color-picker-add.svg similarity index 100% rename from rtdata/images/themed/svg/color-picker-add.svg rename to rtdata/images/svg/color-picker-add.svg diff --git a/rtdata/images/themed/svg/color-picker-bars.svg b/rtdata/images/svg/color-picker-bars.svg similarity index 100% rename from rtdata/images/themed/svg/color-picker-bars.svg rename to rtdata/images/svg/color-picker-bars.svg diff --git a/rtdata/images/themed/svg/color-picker-hicontrast.svg b/rtdata/images/svg/color-picker-hicontrast.svg similarity index 100% rename from rtdata/images/themed/svg/color-picker-hicontrast.svg rename to rtdata/images/svg/color-picker-hicontrast.svg diff --git a/rtdata/images/themed/svg/color-picker-hide.svg b/rtdata/images/svg/color-picker-hide.svg similarity index 100% rename from rtdata/images/themed/svg/color-picker-hide.svg rename to rtdata/images/svg/color-picker-hide.svg diff --git a/rtdata/images/themed/svg/color-picker-small.svg b/rtdata/images/svg/color-picker-small.svg similarity index 100% rename from rtdata/images/themed/svg/color-picker-small.svg rename to rtdata/images/svg/color-picker-small.svg diff --git a/rtdata/images/themed/svg/color-picker.svg b/rtdata/images/svg/color-picker.svg similarity index 100% rename from rtdata/images/themed/svg/color-picker.svg rename to rtdata/images/svg/color-picker.svg diff --git a/rtdata/images/themed/svg/contrastmask-off.svg b/rtdata/images/svg/contrastmask-off.svg similarity index 100% rename from rtdata/images/themed/svg/contrastmask-off.svg rename to rtdata/images/svg/contrastmask-off.svg diff --git a/rtdata/images/themed/svg/contrastmask-on.svg b/rtdata/images/svg/contrastmask-on.svg similarity index 100% rename from rtdata/images/themed/svg/contrastmask-on.svg rename to rtdata/images/svg/contrastmask-on.svg diff --git a/rtdata/images/themed/svg/copy.svg b/rtdata/images/svg/copy.svg similarity index 100% rename from rtdata/images/themed/svg/copy.svg rename to rtdata/images/svg/copy.svg diff --git a/rtdata/images/themed/svg/crop-auto-small.svg b/rtdata/images/svg/crop-auto-small.svg similarity index 100% rename from rtdata/images/themed/svg/crop-auto-small.svg rename to rtdata/images/svg/crop-auto-small.svg diff --git a/rtdata/images/themed/svg/crop-auto.svg b/rtdata/images/svg/crop-auto.svg similarity index 100% rename from rtdata/images/themed/svg/crop-auto.svg rename to rtdata/images/svg/crop-auto.svg diff --git a/rtdata/images/themed/svg/crop-point-hicontrast.svg b/rtdata/images/svg/crop-point-hicontrast.svg similarity index 100% rename from rtdata/images/themed/svg/crop-point-hicontrast.svg rename to rtdata/images/svg/crop-point-hicontrast.svg diff --git a/rtdata/images/themed/svg/crop-small.svg b/rtdata/images/svg/crop-small.svg similarity index 100% rename from rtdata/images/themed/svg/crop-small.svg rename to rtdata/images/svg/crop-small.svg diff --git a/rtdata/images/themed/svg/crop.svg b/rtdata/images/svg/crop.svg similarity index 100% rename from rtdata/images/themed/svg/crop.svg rename to rtdata/images/svg/crop.svg diff --git a/rtdata/images/themed/svg/crossed-arrows-in.svg b/rtdata/images/svg/crossed-arrows-in.svg similarity index 100% rename from rtdata/images/themed/svg/crossed-arrows-in.svg rename to rtdata/images/svg/crossed-arrows-in.svg diff --git a/rtdata/images/themed/svg/crossed-arrows-out.svg b/rtdata/images/svg/crossed-arrows-out.svg similarity index 100% rename from rtdata/images/themed/svg/crossed-arrows-out.svg rename to rtdata/images/svg/crossed-arrows-out.svg diff --git a/rtdata/images/themed/svg/crosshair-adjust.svg b/rtdata/images/svg/crosshair-adjust.svg similarity index 100% rename from rtdata/images/themed/svg/crosshair-adjust.svg rename to rtdata/images/svg/crosshair-adjust.svg diff --git a/rtdata/images/themed/svg/crosshair-hicontrast.svg b/rtdata/images/svg/crosshair-hicontrast.svg similarity index 100% rename from rtdata/images/themed/svg/crosshair-hicontrast.svg rename to rtdata/images/svg/crosshair-hicontrast.svg diff --git a/rtdata/images/themed/svg/crosshair-node-curve.svg b/rtdata/images/svg/crosshair-node-curve.svg similarity index 100% rename from rtdata/images/themed/svg/crosshair-node-curve.svg rename to rtdata/images/svg/crosshair-node-curve.svg diff --git a/rtdata/images/themed/svg/crosshair-small.svg b/rtdata/images/svg/crosshair-small.svg similarity index 100% rename from rtdata/images/themed/svg/crosshair-small.svg rename to rtdata/images/svg/crosshair-small.svg diff --git a/rtdata/images/themed/svg/curve-catmullrom-small.svg b/rtdata/images/svg/curve-catmullrom-small.svg similarity index 100% rename from rtdata/images/themed/svg/curve-catmullrom-small.svg rename to rtdata/images/svg/curve-catmullrom-small.svg diff --git a/rtdata/images/themed/svg/curve-catmullrom.svg b/rtdata/images/svg/curve-catmullrom.svg similarity index 100% rename from rtdata/images/themed/svg/curve-catmullrom.svg rename to rtdata/images/svg/curve-catmullrom.svg diff --git a/rtdata/images/themed/svg/curve-controlpoints-small.svg b/rtdata/images/svg/curve-controlpoints-small.svg similarity index 100% rename from rtdata/images/themed/svg/curve-controlpoints-small.svg rename to rtdata/images/svg/curve-controlpoints-small.svg diff --git a/rtdata/images/themed/svg/curve-controlpoints.svg b/rtdata/images/svg/curve-controlpoints.svg similarity index 100% rename from rtdata/images/themed/svg/curve-controlpoints.svg rename to rtdata/images/svg/curve-controlpoints.svg diff --git a/rtdata/images/themed/svg/curve-flat-small.svg b/rtdata/images/svg/curve-flat-small.svg similarity index 100% rename from rtdata/images/themed/svg/curve-flat-small.svg rename to rtdata/images/svg/curve-flat-small.svg diff --git a/rtdata/images/themed/svg/curve-flat.svg b/rtdata/images/svg/curve-flat.svg similarity index 100% rename from rtdata/images/themed/svg/curve-flat.svg rename to rtdata/images/svg/curve-flat.svg diff --git a/rtdata/images/themed/svg/curve-linear-small.svg b/rtdata/images/svg/curve-linear-small.svg similarity index 100% rename from rtdata/images/themed/svg/curve-linear-small.svg rename to rtdata/images/svg/curve-linear-small.svg diff --git a/rtdata/images/themed/svg/curve-linear.svg b/rtdata/images/svg/curve-linear.svg similarity index 100% rename from rtdata/images/themed/svg/curve-linear.svg rename to rtdata/images/svg/curve-linear.svg diff --git a/rtdata/images/themed/svg/curve-nurbs-small.svg b/rtdata/images/svg/curve-nurbs-small.svg similarity index 100% rename from rtdata/images/themed/svg/curve-nurbs-small.svg rename to rtdata/images/svg/curve-nurbs-small.svg diff --git a/rtdata/images/themed/svg/curve-nurbs.svg b/rtdata/images/svg/curve-nurbs.svg similarity index 100% rename from rtdata/images/themed/svg/curve-nurbs.svg rename to rtdata/images/svg/curve-nurbs.svg diff --git a/rtdata/images/themed/svg/curve-parametric-small.svg b/rtdata/images/svg/curve-parametric-small.svg similarity index 100% rename from rtdata/images/themed/svg/curve-parametric-small.svg rename to rtdata/images/svg/curve-parametric-small.svg diff --git a/rtdata/images/themed/svg/curve-parametric.svg b/rtdata/images/svg/curve-parametric.svg similarity index 100% rename from rtdata/images/themed/svg/curve-parametric.svg rename to rtdata/images/svg/curve-parametric.svg diff --git a/rtdata/images/themed/svg/curve-spline-small.svg b/rtdata/images/svg/curve-spline-small.svg similarity index 100% rename from rtdata/images/themed/svg/curve-spline-small.svg rename to rtdata/images/svg/curve-spline-small.svg diff --git a/rtdata/images/themed/svg/curve-spline.svg b/rtdata/images/svg/curve-spline.svg similarity index 100% rename from rtdata/images/themed/svg/curve-spline.svg rename to rtdata/images/svg/curve-spline.svg diff --git a/rtdata/images/themed/svg/detail.svg b/rtdata/images/svg/detail.svg similarity index 55% rename from rtdata/images/themed/svg/detail.svg rename to rtdata/images/svg/detail.svg index 4bdc2fb9b..89aab821b 100644 --- a/rtdata/images/themed/svg/detail.svg +++ b/rtdata/images/svg/detail.svg @@ -26,14 +26,14 @@ borderopacity="1.0" inkscape:pageopacity="0" inkscape:pageshadow="2" - inkscape:zoom="33.75" - inkscape:cx="12" - inkscape:cy="12" + inkscape:zoom="23.982705" + inkscape:cx="12.31753" + inkscape:cy="11.474855" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" inkscape:window-width="1920" - inkscape:window-height="1019" + inkscape:window-height="1021" inkscape:window-x="0" inkscape:window-y="0" inkscape:window-maximized="1" @@ -54,52 +54,7 @@ dotted="false" /> - - - - - - - - - - - - - + id="defs815" /> @@ -108,7 +63,7 @@ image/svg+xml - + Maciej Dworak @@ -145,40 +100,13 @@ inkscape:groupmode="layer" inkscape:label="Layer 1"> - - + id="g6269"> - - + transform="matrix(0.00261272,-0.00261272,-0.00261272,-0.00261272,23.800878,14.72487)" /> + style="opacity:0.1;fill:#2a7fff;fill-rule:evenodd;stroke:none" /> + style="opacity:0.7;fill:#2a7fff;fill-rule:evenodd;stroke:none" /> + + + + + + + + + + + + + + + + + + + + diff --git a/rtdata/images/themed/svg/device-floppy.svg b/rtdata/images/svg/device-floppy.svg similarity index 100% rename from rtdata/images/themed/svg/device-floppy.svg rename to rtdata/images/svg/device-floppy.svg diff --git a/rtdata/images/themed/svg/device-hdd.svg b/rtdata/images/svg/device-hdd.svg similarity index 100% rename from rtdata/images/themed/svg/device-hdd.svg rename to rtdata/images/svg/device-hdd.svg diff --git a/rtdata/images/themed/svg/device-network.svg b/rtdata/images/svg/device-network.svg similarity index 100% rename from rtdata/images/themed/svg/device-network.svg rename to rtdata/images/svg/device-network.svg diff --git a/rtdata/images/themed/svg/device-optical.svg b/rtdata/images/svg/device-optical.svg similarity index 100% rename from rtdata/images/themed/svg/device-optical.svg rename to rtdata/images/svg/device-optical.svg diff --git a/rtdata/images/themed/svg/device-usb.svg b/rtdata/images/svg/device-usb.svg similarity index 100% rename from rtdata/images/themed/svg/device-usb.svg rename to rtdata/images/svg/device-usb.svg diff --git a/rtdata/images/themed/svg/distortion-auto-small.svg b/rtdata/images/svg/distortion-auto-small.svg similarity index 100% rename from rtdata/images/themed/svg/distortion-auto-small.svg rename to rtdata/images/svg/distortion-auto-small.svg diff --git a/rtdata/images/themed/svg/distortion-auto.svg b/rtdata/images/svg/distortion-auto.svg similarity index 100% rename from rtdata/images/themed/svg/distortion-auto.svg rename to rtdata/images/svg/distortion-auto.svg diff --git a/rtdata/images/themed/svg/distortion-barrel-small.svg b/rtdata/images/svg/distortion-barrel-small.svg similarity index 100% rename from rtdata/images/themed/svg/distortion-barrel-small.svg rename to rtdata/images/svg/distortion-barrel-small.svg diff --git a/rtdata/images/themed/svg/distortion-barrel.svg b/rtdata/images/svg/distortion-barrel.svg similarity index 100% rename from rtdata/images/themed/svg/distortion-barrel.svg rename to rtdata/images/svg/distortion-barrel.svg diff --git a/rtdata/images/themed/svg/distortion-pincushion-small.svg b/rtdata/images/svg/distortion-pincushion-small.svg similarity index 100% rename from rtdata/images/themed/svg/distortion-pincushion-small.svg rename to rtdata/images/svg/distortion-pincushion-small.svg diff --git a/rtdata/images/themed/svg/distortion-pincushion.svg b/rtdata/images/svg/distortion-pincushion.svg similarity index 100% rename from rtdata/images/themed/svg/distortion-pincushion.svg rename to rtdata/images/svg/distortion-pincushion.svg diff --git a/rtdata/images/themed/svg/edit-point.svg b/rtdata/images/svg/edit-point.svg similarity index 100% rename from rtdata/images/themed/svg/edit-point.svg rename to rtdata/images/svg/edit-point.svg diff --git a/rtdata/images/themed/svg/equilizer-narrow.svg b/rtdata/images/svg/equilizer-narrow.svg similarity index 100% rename from rtdata/images/themed/svg/equilizer-narrow.svg rename to rtdata/images/svg/equilizer-narrow.svg diff --git a/rtdata/images/themed/svg/equilizer-wide.svg b/rtdata/images/svg/equilizer-wide.svg similarity index 100% rename from rtdata/images/themed/svg/equilizer-wide.svg rename to rtdata/images/svg/equilizer-wide.svg diff --git a/rtdata/images/themed/svg/expander-closed-small.svg b/rtdata/images/svg/expander-closed-small.svg similarity index 100% rename from rtdata/images/themed/svg/expander-closed-small.svg rename to rtdata/images/svg/expander-closed-small.svg diff --git a/rtdata/images/themed/svg/expander-open-small.svg b/rtdata/images/svg/expander-open-small.svg similarity index 100% rename from rtdata/images/themed/svg/expander-open-small.svg rename to rtdata/images/svg/expander-open-small.svg diff --git a/rtdata/images/themed/svg/exposure.svg b/rtdata/images/svg/exposure.svg similarity index 100% rename from rtdata/images/themed/svg/exposure.svg rename to rtdata/images/svg/exposure.svg diff --git a/rtdata/images/themed/svg/filetype-hdr.svg b/rtdata/images/svg/filetype-hdr.svg similarity index 70% rename from rtdata/images/themed/svg/filetype-hdr.svg rename to rtdata/images/svg/filetype-hdr.svg index 86729442d..bb5776d6f 100644 --- a/rtdata/images/themed/svg/filetype-hdr.svg +++ b/rtdata/images/svg/filetype-hdr.svg @@ -26,14 +26,14 @@ borderopacity="1.0" inkscape:pageopacity="0" inkscape:pageshadow="2" - inkscape:zoom="34.25" + inkscape:zoom="34.333333" inkscape:cx="12" inkscape:cy="12" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" inkscape:window-width="1920" - inkscape:window-height="1019" + inkscape:window-height="1021" inkscape:window-x="0" inkscape:window-y="0" inkscape:window-maximized="1" @@ -115,17 +115,6 @@ x="0.49999997" y="7.5" ry="0" /> - Arial Black, normal, 6pt. Resize manually to fit. + + + + + diff --git a/rtdata/images/themed/svg/filetype-ps.svg b/rtdata/images/svg/filetype-ps.svg similarity index 71% rename from rtdata/images/themed/svg/filetype-ps.svg rename to rtdata/images/svg/filetype-ps.svg index c0dc6069c..f10eabffd 100644 --- a/rtdata/images/themed/svg/filetype-ps.svg +++ b/rtdata/images/svg/filetype-ps.svg @@ -26,14 +26,14 @@ borderopacity="1.0" inkscape:pageopacity="0" inkscape:pageshadow="2" - inkscape:zoom="34.25" + inkscape:zoom="34.333333" inkscape:cx="12" inkscape:cy="12" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" inkscape:window-width="1920" - inkscape:window-height="1019" + inkscape:window-height="1021" inkscape:window-x="0" inkscape:window-y="0" inkscape:window-maximized="1" @@ -115,17 +115,6 @@ x="0.49999997" y="7.5" ry="0" /> - Arial Black, normal, 6pt. Resize manually to fit. + + + + diff --git a/rtdata/images/themed/svg/filter-clear.svg b/rtdata/images/svg/filter-clear.svg similarity index 100% rename from rtdata/images/themed/svg/filter-clear.svg rename to rtdata/images/svg/filter-clear.svg diff --git a/rtdata/images/themed/svg/filter-original.svg b/rtdata/images/svg/filter-original.svg similarity index 100% rename from rtdata/images/themed/svg/filter-original.svg rename to rtdata/images/svg/filter-original.svg diff --git a/rtdata/images/themed/svg/filter-original2.svg b/rtdata/images/svg/filter-original2.svg similarity index 100% rename from rtdata/images/themed/svg/filter-original2.svg rename to rtdata/images/svg/filter-original2.svg diff --git a/rtdata/images/themed/svg/filter.svg b/rtdata/images/svg/filter.svg similarity index 100% rename from rtdata/images/themed/svg/filter.svg rename to rtdata/images/svg/filter.svg diff --git a/rtdata/images/themed/svg/flip-horizontal.svg b/rtdata/images/svg/flip-horizontal.svg similarity index 100% rename from rtdata/images/themed/svg/flip-horizontal.svg rename to rtdata/images/svg/flip-horizontal.svg diff --git a/rtdata/images/themed/svg/flip-vertical.svg b/rtdata/images/svg/flip-vertical.svg similarity index 100% rename from rtdata/images/themed/svg/flip-vertical.svg rename to rtdata/images/svg/flip-vertical.svg diff --git a/rtdata/images/themed/svg/focusscreen-off.svg b/rtdata/images/svg/focusscreen-off.svg similarity index 100% rename from rtdata/images/themed/svg/focusscreen-off.svg rename to rtdata/images/svg/focusscreen-off.svg diff --git a/rtdata/images/themed/svg/focusscreen-on.svg b/rtdata/images/svg/focusscreen-on.svg similarity index 100% rename from rtdata/images/themed/svg/focusscreen-on.svg rename to rtdata/images/svg/focusscreen-on.svg diff --git a/rtdata/images/themed/svg/folder-closed-home-small.svg b/rtdata/images/svg/folder-closed-home-small.svg similarity index 100% rename from rtdata/images/themed/svg/folder-closed-home-small.svg rename to rtdata/images/svg/folder-closed-home-small.svg diff --git a/rtdata/images/themed/svg/folder-closed-home.svg b/rtdata/images/svg/folder-closed-home.svg similarity index 100% rename from rtdata/images/themed/svg/folder-closed-home.svg rename to rtdata/images/svg/folder-closed-home.svg diff --git a/rtdata/images/themed/svg/folder-closed-recent-small.svg b/rtdata/images/svg/folder-closed-recent-small.svg similarity index 100% rename from rtdata/images/themed/svg/folder-closed-recent-small.svg rename to rtdata/images/svg/folder-closed-recent-small.svg diff --git a/rtdata/images/themed/svg/folder-closed-recent.svg b/rtdata/images/svg/folder-closed-recent.svg similarity index 100% rename from rtdata/images/themed/svg/folder-closed-recent.svg rename to rtdata/images/svg/folder-closed-recent.svg diff --git a/rtdata/images/themed/svg/folder-closed-small.svg b/rtdata/images/svg/folder-closed-small.svg similarity index 100% rename from rtdata/images/themed/svg/folder-closed-small.svg rename to rtdata/images/svg/folder-closed-small.svg diff --git a/rtdata/images/themed/svg/folder-closed.svg b/rtdata/images/svg/folder-closed.svg similarity index 100% rename from rtdata/images/themed/svg/folder-closed.svg rename to rtdata/images/svg/folder-closed.svg diff --git a/rtdata/images/themed/svg/folder-open-recent-small.svg b/rtdata/images/svg/folder-open-recent-small.svg similarity index 100% rename from rtdata/images/themed/svg/folder-open-recent-small.svg rename to rtdata/images/svg/folder-open-recent-small.svg diff --git a/rtdata/images/themed/svg/folder-open-recent.svg b/rtdata/images/svg/folder-open-recent.svg similarity index 100% rename from rtdata/images/themed/svg/folder-open-recent.svg rename to rtdata/images/svg/folder-open-recent.svg diff --git a/rtdata/images/themed/svg/folder-open-small.svg b/rtdata/images/svg/folder-open-small.svg similarity index 100% rename from rtdata/images/themed/svg/folder-open-small.svg rename to rtdata/images/svg/folder-open-small.svg diff --git a/rtdata/images/themed/svg/folder-open.svg b/rtdata/images/svg/folder-open.svg similarity index 100% rename from rtdata/images/themed/svg/folder-open.svg rename to rtdata/images/svg/folder-open.svg diff --git a/rtdata/images/themed/svg/fullscreen-enter.svg b/rtdata/images/svg/fullscreen-enter.svg similarity index 100% rename from rtdata/images/themed/svg/fullscreen-enter.svg rename to rtdata/images/svg/fullscreen-enter.svg diff --git a/rtdata/images/themed/svg/fullscreen-leave.svg b/rtdata/images/svg/fullscreen-leave.svg similarity index 100% rename from rtdata/images/themed/svg/fullscreen-leave.svg rename to rtdata/images/svg/fullscreen-leave.svg diff --git a/rtdata/images/themed/svg/gamut-hist.svg b/rtdata/images/svg/gamut-hist.svg similarity index 100% rename from rtdata/images/themed/svg/gamut-hist.svg rename to rtdata/images/svg/gamut-hist.svg diff --git a/rtdata/images/themed/svg/gamut-plus.svg b/rtdata/images/svg/gamut-plus.svg similarity index 100% rename from rtdata/images/themed/svg/gamut-plus.svg rename to rtdata/images/svg/gamut-plus.svg diff --git a/rtdata/images/themed/svg/gamut-softproof.svg b/rtdata/images/svg/gamut-softproof.svg similarity index 100% rename from rtdata/images/themed/svg/gamut-softproof.svg rename to rtdata/images/svg/gamut-softproof.svg diff --git a/rtdata/images/themed/svg/gamut-warning.svg b/rtdata/images/svg/gamut-warning.svg similarity index 54% rename from rtdata/images/themed/svg/gamut-warning.svg rename to rtdata/images/svg/gamut-warning.svg index 83cdb85cb..9924857c3 100644 --- a/rtdata/images/themed/svg/gamut-warning.svg +++ b/rtdata/images/svg/gamut-warning.svg @@ -26,14 +26,14 @@ borderopacity="1.0" inkscape:pageopacity="0" inkscape:pageshadow="2" - inkscape:zoom="33.833333" + inkscape:zoom="33.916667" inkscape:cx="12" inkscape:cy="12" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" inkscape:window-width="1920" - inkscape:window-height="1019" + inkscape:window-height="1021" inkscape:window-x="0" inkscape:window-y="0" inkscape:window-maximized="1" @@ -44,7 +44,8 @@ inkscape:snap-others="false" inkscape:object-nodes="false" inkscape:snap-grids="true" - inkscape:snap-bbox-midpoints="false"> + inkscape:snap-bbox-midpoints="false" + inkscape:snap-global="false"> image/svg+xml - + Maciej Dworak @@ -100,25 +101,23 @@ inkscape:groupmode="layer" inkscape:label="Layer 1"> - + style="opacity:0.7;fill:#2a7fff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.0483054px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="M 4.2089844 1.0078125 C 3.767679 0.97424093 3.3189036 1.037588 2.8691406 1.234375 C 1.4391609 2.1584732 1.1147229 4.031753 1.0039062 5.6113281 C 0.93787895 11.42066 1.5537794 17.256802 2.9277344 22.90625 C 2.9363344 22.93695 2.9464581 22.96922 2.9550781 23 L 3.9375 23 C 2.9877271 18.690012 2.5553538 14.262765 2.6054688 9.8535156 C 2.6970151 8.5486023 2.9651537 7.0016947 4.1464844 6.2382812 C 5.6327149 5.5880048 7.0999019 6.7202361 8.2480469 7.5546875 C 9.0027908 8.247407 9.7525627 8.9793864 10.498047 9.7265625 C 10.381733 9.2101094 10.24903 8.5877342 10.148438 8.1757812 A 1.7223988 1.7223988 0 0 1 10.148438 8.1699219 C 9.9561858 7.3705634 9.7793004 6.5899652 9.6171875 5.8300781 A 1.7223988 1.7223988 0 0 1 9.6152344 5.8261719 C 9.4668145 5.1211763 9.3827157 4.5644814 9.359375 4.0234375 C 8.8550749 3.6203203 8.3505668 3.2174596 7.8339844 2.828125 C 6.7916281 2.0705587 5.5329023 1.1085274 4.2089844 1.0078125 z M 17.136719 11.011719 C 17.112058 11.128262 17.095519 11.190115 17.070312 11.310547 A 1.7223988 1.7223988 0 0 0 17.070312 11.3125 C 16.81075 12.543019 16.531322 14.092716 16.236328 15.951172 A 1.7223988 1.7223988 0 0 1 16.224609 16.009766 C 16.485002 16.318485 16.748989 16.625354 17.005859 16.935547 C 17.055739 16.976701 17.113663 17.007345 17.160156 17.052734 C 17.469723 17.348586 17.717926 17.702191 17.933594 18.076172 C 19.275364 19.73097 20.568296 21.388549 21.779297 23 L 23 23 L 23 16.8125 C 21.048946 14.875256 19.105453 12.929301 17.136719 11.011719 z " + id="path17362-9" /> ! + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:30.52574539px;line-height:1.25;font-family:Georgia;-inkscape-font-specification:'Georgia Bold';letter-spacing:0px;word-spacing:0px;fill:#2a7fff;fill-opacity:1;stroke:none;stroke-width:0.95392954;opacity:0.7;" + x="8.215003" + y="22.567751" + id="text8360">! + diff --git a/rtdata/images/themed/svg/gamut_srgb_prophoto_xy.svg b/rtdata/images/svg/gamut_srgb_prophoto_xy.svg similarity index 100% rename from rtdata/images/themed/svg/gamut_srgb_prophoto_xy.svg rename to rtdata/images/svg/gamut_srgb_prophoto_xy.svg diff --git a/rtdata/images/themed/svg/gears-pause.svg b/rtdata/images/svg/gears-pause.svg similarity index 100% rename from rtdata/images/themed/svg/gears-pause.svg rename to rtdata/images/svg/gears-pause.svg diff --git a/rtdata/images/themed/svg/gears-play.svg b/rtdata/images/svg/gears-play.svg similarity index 100% rename from rtdata/images/themed/svg/gears-play.svg rename to rtdata/images/svg/gears-play.svg diff --git a/rtdata/images/themed/svg/gears-small.svg b/rtdata/images/svg/gears-small.svg similarity index 100% rename from rtdata/images/themed/svg/gears-small.svg rename to rtdata/images/svg/gears-small.svg diff --git a/rtdata/images/themed/svg/gears.svg b/rtdata/images/svg/gears.svg similarity index 100% rename from rtdata/images/themed/svg/gears.svg rename to rtdata/images/svg/gears.svg diff --git a/rtdata/images/themed/svg/goto-end-small.svg b/rtdata/images/svg/goto-end-small.svg similarity index 100% rename from rtdata/images/themed/svg/goto-end-small.svg rename to rtdata/images/svg/goto-end-small.svg diff --git a/rtdata/images/themed/svg/goto-start-small.svg b/rtdata/images/svg/goto-start-small.svg similarity index 100% rename from rtdata/images/themed/svg/goto-start-small.svg rename to rtdata/images/svg/goto-start-small.svg diff --git a/rtdata/images/themed/svg/hand-closed-hicontrast.svg b/rtdata/images/svg/hand-closed-hicontrast.svg similarity index 100% rename from rtdata/images/themed/svg/hand-closed-hicontrast.svg rename to rtdata/images/svg/hand-closed-hicontrast.svg diff --git a/rtdata/images/themed/svg/hand-open-hicontrast.svg b/rtdata/images/svg/hand-open-hicontrast.svg similarity index 100% rename from rtdata/images/themed/svg/hand-open-hicontrast.svg rename to rtdata/images/svg/hand-open-hicontrast.svg diff --git a/rtdata/images/themed/svg/hand-open.svg b/rtdata/images/svg/hand-open.svg similarity index 100% rename from rtdata/images/themed/svg/hand-open.svg rename to rtdata/images/svg/hand-open.svg diff --git a/rtdata/images/themed/svg/histogram-bar-off-small.svg b/rtdata/images/svg/histogram-bar-off-small.svg similarity index 100% rename from rtdata/images/themed/svg/histogram-bar-off-small.svg rename to rtdata/images/svg/histogram-bar-off-small.svg diff --git a/rtdata/images/themed/svg/histogram-bar-on-small.svg b/rtdata/images/svg/histogram-bar-on-small.svg similarity index 100% rename from rtdata/images/themed/svg/histogram-bar-on-small.svg rename to rtdata/images/svg/histogram-bar-on-small.svg diff --git a/rtdata/images/themed/svg/histogram-bayer-off-small.svg b/rtdata/images/svg/histogram-bayer-off-small.svg similarity index 100% rename from rtdata/images/themed/svg/histogram-bayer-off-small.svg rename to rtdata/images/svg/histogram-bayer-off-small.svg diff --git a/rtdata/images/themed/svg/histogram-bayer-on-small.svg b/rtdata/images/svg/histogram-bayer-on-small.svg similarity index 100% rename from rtdata/images/themed/svg/histogram-bayer-on-small.svg rename to rtdata/images/svg/histogram-bayer-on-small.svg diff --git a/rtdata/images/themed/svg/histogram-blue-off-small.svg b/rtdata/images/svg/histogram-blue-off-small.svg similarity index 100% rename from rtdata/images/themed/svg/histogram-blue-off-small.svg rename to rtdata/images/svg/histogram-blue-off-small.svg diff --git a/rtdata/images/themed/svg/histogram-blue-on-small.svg b/rtdata/images/svg/histogram-blue-on-small.svg similarity index 100% rename from rtdata/images/themed/svg/histogram-blue-on-small.svg rename to rtdata/images/svg/histogram-blue-on-small.svg diff --git a/rtdata/images/themed/svg/histogram-gold-off-small.svg b/rtdata/images/svg/histogram-gold-off-small.svg similarity index 100% rename from rtdata/images/themed/svg/histogram-gold-off-small.svg rename to rtdata/images/svg/histogram-gold-off-small.svg diff --git a/rtdata/images/themed/svg/histogram-gold-on-small.svg b/rtdata/images/svg/histogram-gold-on-small.svg similarity index 100% rename from rtdata/images/themed/svg/histogram-gold-on-small.svg rename to rtdata/images/svg/histogram-gold-on-small.svg diff --git a/rtdata/images/themed/svg/histogram-green-off-small.svg b/rtdata/images/svg/histogram-green-off-small.svg similarity index 100% rename from rtdata/images/themed/svg/histogram-green-off-small.svg rename to rtdata/images/svg/histogram-green-off-small.svg diff --git a/rtdata/images/themed/svg/histogram-green-on-small.svg b/rtdata/images/svg/histogram-green-on-small.svg similarity index 100% rename from rtdata/images/themed/svg/histogram-green-on-small.svg rename to rtdata/images/svg/histogram-green-on-small.svg diff --git a/rtdata/images/themed/svg/histogram-mode-linear-small.svg b/rtdata/images/svg/histogram-mode-linear-small.svg similarity index 100% rename from rtdata/images/themed/svg/histogram-mode-linear-small.svg rename to rtdata/images/svg/histogram-mode-linear-small.svg diff --git a/rtdata/images/themed/svg/histogram-mode-logx-small.svg b/rtdata/images/svg/histogram-mode-logx-small.svg similarity index 100% rename from rtdata/images/themed/svg/histogram-mode-logx-small.svg rename to rtdata/images/svg/histogram-mode-logx-small.svg diff --git a/rtdata/images/themed/svg/histogram-mode-logxy-small.svg b/rtdata/images/svg/histogram-mode-logxy-small.svg similarity index 100% rename from rtdata/images/themed/svg/histogram-mode-logxy-small.svg rename to rtdata/images/svg/histogram-mode-logxy-small.svg diff --git a/rtdata/images/themed/svg/histogram-red-off-small.svg b/rtdata/images/svg/histogram-red-off-small.svg similarity index 100% rename from rtdata/images/themed/svg/histogram-red-off-small.svg rename to rtdata/images/svg/histogram-red-off-small.svg diff --git a/rtdata/images/themed/svg/histogram-red-on-small.svg b/rtdata/images/svg/histogram-red-on-small.svg similarity index 100% rename from rtdata/images/themed/svg/histogram-red-on-small.svg rename to rtdata/images/svg/histogram-red-on-small.svg diff --git a/rtdata/images/themed/svg/histogram-silver-off-small.svg b/rtdata/images/svg/histogram-silver-off-small.svg similarity index 100% rename from rtdata/images/themed/svg/histogram-silver-off-small.svg rename to rtdata/images/svg/histogram-silver-off-small.svg diff --git a/rtdata/images/themed/svg/histogram-silver-on-small.svg b/rtdata/images/svg/histogram-silver-on-small.svg similarity index 100% rename from rtdata/images/themed/svg/histogram-silver-on-small.svg rename to rtdata/images/svg/histogram-silver-on-small.svg diff --git a/rtdata/images/themed/svg/info.svg b/rtdata/images/svg/info.svg similarity index 100% rename from rtdata/images/themed/svg/info.svg rename to rtdata/images/svg/info.svg diff --git a/rtdata/images/themed/svg/intent-absolute.svg b/rtdata/images/svg/intent-absolute.svg similarity index 100% rename from rtdata/images/themed/svg/intent-absolute.svg rename to rtdata/images/svg/intent-absolute.svg diff --git a/rtdata/images/themed/svg/intent-perceptual.svg b/rtdata/images/svg/intent-perceptual.svg similarity index 100% rename from rtdata/images/themed/svg/intent-perceptual.svg rename to rtdata/images/svg/intent-perceptual.svg diff --git a/rtdata/images/themed/svg/intent-relative.svg b/rtdata/images/svg/intent-relative.svg similarity index 100% rename from rtdata/images/themed/svg/intent-relative.svg rename to rtdata/images/svg/intent-relative.svg diff --git a/rtdata/images/themed/svg/intent-saturation.svg b/rtdata/images/svg/intent-saturation.svg similarity index 100% rename from rtdata/images/themed/svg/intent-saturation.svg rename to rtdata/images/svg/intent-saturation.svg diff --git a/rtdata/images/themed/svg/magnifier-1to1-small.svg b/rtdata/images/svg/magnifier-1to1-small.svg similarity index 100% rename from rtdata/images/themed/svg/magnifier-1to1-small.svg rename to rtdata/images/svg/magnifier-1to1-small.svg diff --git a/rtdata/images/themed/svg/magnifier-1to1.svg b/rtdata/images/svg/magnifier-1to1.svg similarity index 100% rename from rtdata/images/themed/svg/magnifier-1to1.svg rename to rtdata/images/svg/magnifier-1to1.svg diff --git a/rtdata/images/themed/svg/magnifier-crop.svg b/rtdata/images/svg/magnifier-crop.svg similarity index 100% rename from rtdata/images/themed/svg/magnifier-crop.svg rename to rtdata/images/svg/magnifier-crop.svg diff --git a/rtdata/images/themed/svg/magnifier-fit.svg b/rtdata/images/svg/magnifier-fit.svg similarity index 100% rename from rtdata/images/themed/svg/magnifier-fit.svg rename to rtdata/images/svg/magnifier-fit.svg diff --git a/rtdata/images/themed/svg/magnifier-minus-small.svg b/rtdata/images/svg/magnifier-minus-small.svg similarity index 100% rename from rtdata/images/themed/svg/magnifier-minus-small.svg rename to rtdata/images/svg/magnifier-minus-small.svg diff --git a/rtdata/images/themed/svg/magnifier-minus.svg b/rtdata/images/svg/magnifier-minus.svg similarity index 100% rename from rtdata/images/themed/svg/magnifier-minus.svg rename to rtdata/images/svg/magnifier-minus.svg diff --git a/rtdata/images/themed/svg/magnifier-plus-small.svg b/rtdata/images/svg/magnifier-plus-small.svg similarity index 100% rename from rtdata/images/themed/svg/magnifier-plus-small.svg rename to rtdata/images/svg/magnifier-plus-small.svg diff --git a/rtdata/images/themed/svg/magnifier-plus.svg b/rtdata/images/svg/magnifier-plus.svg similarity index 100% rename from rtdata/images/themed/svg/magnifier-plus.svg rename to rtdata/images/svg/magnifier-plus.svg diff --git a/rtdata/images/themed/svg/magnifier.svg b/rtdata/images/svg/magnifier.svg similarity index 100% rename from rtdata/images/themed/svg/magnifier.svg rename to rtdata/images/svg/magnifier.svg diff --git a/rtdata/images/themed/svg/metadata.svg b/rtdata/images/svg/metadata.svg similarity index 100% rename from rtdata/images/themed/svg/metadata.svg rename to rtdata/images/svg/metadata.svg diff --git a/rtdata/images/themed/svg/node-move-nw-se-hicontrast.svg b/rtdata/images/svg/node-move-nw-se-hicontrast.svg similarity index 100% rename from rtdata/images/themed/svg/node-move-nw-se-hicontrast.svg rename to rtdata/images/svg/node-move-nw-se-hicontrast.svg diff --git a/rtdata/images/themed/svg/node-move-sw-ne-hicontrast.svg b/rtdata/images/svg/node-move-sw-ne-hicontrast.svg similarity index 100% rename from rtdata/images/themed/svg/node-move-sw-ne-hicontrast.svg rename to rtdata/images/svg/node-move-sw-ne-hicontrast.svg diff --git a/rtdata/images/themed/svg/node-move-x-hicontrast.svg b/rtdata/images/svg/node-move-x-hicontrast.svg similarity index 100% rename from rtdata/images/themed/svg/node-move-x-hicontrast.svg rename to rtdata/images/svg/node-move-x-hicontrast.svg diff --git a/rtdata/images/themed/svg/node-move-xy-hicontrast.svg b/rtdata/images/svg/node-move-xy-hicontrast.svg similarity index 100% rename from rtdata/images/themed/svg/node-move-xy-hicontrast.svg rename to rtdata/images/svg/node-move-xy-hicontrast.svg diff --git a/rtdata/images/themed/svg/node-move-y-hicontrast.svg b/rtdata/images/svg/node-move-y-hicontrast.svg similarity index 100% rename from rtdata/images/themed/svg/node-move-y-hicontrast.svg rename to rtdata/images/svg/node-move-y-hicontrast.svg diff --git a/rtdata/images/themed/svg/one-to-one-small.svg b/rtdata/images/svg/one-to-one-small.svg similarity index 100% rename from rtdata/images/themed/svg/one-to-one-small.svg rename to rtdata/images/svg/one-to-one-small.svg diff --git a/rtdata/images/themed/svg/ornament1.svg b/rtdata/images/svg/ornament1.svg similarity index 100% rename from rtdata/images/themed/svg/ornament1.svg rename to rtdata/images/svg/ornament1.svg diff --git a/rtdata/images/themed/svg/padlock-locked-small.svg b/rtdata/images/svg/padlock-locked-small.svg similarity index 100% rename from rtdata/images/themed/svg/padlock-locked-small.svg rename to rtdata/images/svg/padlock-locked-small.svg diff --git a/rtdata/images/themed/svg/padlock-unlocked-small.svg b/rtdata/images/svg/padlock-unlocked-small.svg similarity index 100% rename from rtdata/images/themed/svg/padlock-unlocked-small.svg rename to rtdata/images/svg/padlock-unlocked-small.svg diff --git a/rtdata/images/themed/svg/palette-brush.svg b/rtdata/images/svg/palette-brush.svg similarity index 100% rename from rtdata/images/themed/svg/palette-brush.svg rename to rtdata/images/svg/palette-brush.svg diff --git a/rtdata/images/themed/svg/panel-to-bottom.svg b/rtdata/images/svg/panel-to-bottom.svg similarity index 100% rename from rtdata/images/themed/svg/panel-to-bottom.svg rename to rtdata/images/svg/panel-to-bottom.svg diff --git a/rtdata/images/themed/svg/panel-to-left.svg b/rtdata/images/svg/panel-to-left.svg similarity index 100% rename from rtdata/images/themed/svg/panel-to-left.svg rename to rtdata/images/svg/panel-to-left.svg diff --git a/rtdata/images/themed/svg/panel-to-right.svg b/rtdata/images/svg/panel-to-right.svg similarity index 100% rename from rtdata/images/themed/svg/panel-to-right.svg rename to rtdata/images/svg/panel-to-right.svg diff --git a/rtdata/images/themed/svg/panel-to-top.svg b/rtdata/images/svg/panel-to-top.svg similarity index 100% rename from rtdata/images/themed/svg/panel-to-top.svg rename to rtdata/images/svg/panel-to-top.svg diff --git a/rtdata/images/themed/svg/paste.svg b/rtdata/images/svg/paste.svg similarity index 100% rename from rtdata/images/themed/svg/paste.svg rename to rtdata/images/svg/paste.svg diff --git a/rtdata/images/themed/svg/perspective-horizontal-left-small.svg b/rtdata/images/svg/perspective-horizontal-left-small.svg similarity index 100% rename from rtdata/images/themed/svg/perspective-horizontal-left-small.svg rename to rtdata/images/svg/perspective-horizontal-left-small.svg diff --git a/rtdata/images/themed/svg/perspective-horizontal-left.svg b/rtdata/images/svg/perspective-horizontal-left.svg similarity index 100% rename from rtdata/images/themed/svg/perspective-horizontal-left.svg rename to rtdata/images/svg/perspective-horizontal-left.svg diff --git a/rtdata/images/themed/svg/perspective-horizontal-right-small.svg b/rtdata/images/svg/perspective-horizontal-right-small.svg similarity index 100% rename from rtdata/images/themed/svg/perspective-horizontal-right-small.svg rename to rtdata/images/svg/perspective-horizontal-right-small.svg diff --git a/rtdata/images/themed/svg/perspective-horizontal-right.svg b/rtdata/images/svg/perspective-horizontal-right.svg similarity index 100% rename from rtdata/images/themed/svg/perspective-horizontal-right.svg rename to rtdata/images/svg/perspective-horizontal-right.svg diff --git a/rtdata/images/themed/svg/perspective-vertical-bottom-small.svg b/rtdata/images/svg/perspective-vertical-bottom-small.svg similarity index 100% rename from rtdata/images/themed/svg/perspective-vertical-bottom-small.svg rename to rtdata/images/svg/perspective-vertical-bottom-small.svg diff --git a/rtdata/images/themed/svg/perspective-vertical-bottom.svg b/rtdata/images/svg/perspective-vertical-bottom.svg similarity index 100% rename from rtdata/images/themed/svg/perspective-vertical-bottom.svg rename to rtdata/images/svg/perspective-vertical-bottom.svg diff --git a/rtdata/images/themed/svg/perspective-vertical-top-small.svg b/rtdata/images/svg/perspective-vertical-top-small.svg similarity index 100% rename from rtdata/images/themed/svg/perspective-vertical-top-small.svg rename to rtdata/images/svg/perspective-vertical-top-small.svg diff --git a/rtdata/images/themed/svg/perspective-vertical-top.svg b/rtdata/images/svg/perspective-vertical-top.svg similarity index 100% rename from rtdata/images/themed/svg/perspective-vertical-top.svg rename to rtdata/images/svg/perspective-vertical-top.svg diff --git a/rtdata/images/themed/svg/power-inconsistent-small.svg b/rtdata/images/svg/power-inconsistent-small.svg similarity index 100% rename from rtdata/images/themed/svg/power-inconsistent-small.svg rename to rtdata/images/svg/power-inconsistent-small.svg diff --git a/rtdata/images/themed/svg/power-off-small.svg b/rtdata/images/svg/power-off-small.svg similarity index 100% rename from rtdata/images/themed/svg/power-off-small.svg rename to rtdata/images/svg/power-off-small.svg diff --git a/rtdata/images/themed/svg/power-on-small.svg b/rtdata/images/svg/power-on-small.svg similarity index 100% rename from rtdata/images/themed/svg/power-on-small.svg rename to rtdata/images/svg/power-on-small.svg diff --git a/rtdata/images/themed/svg/preferences.svg b/rtdata/images/svg/preferences.svg similarity index 100% rename from rtdata/images/themed/svg/preferences.svg rename to rtdata/images/svg/preferences.svg diff --git a/rtdata/images/themed/svg/profile-filled.svg b/rtdata/images/svg/profile-filled.svg similarity index 100% rename from rtdata/images/themed/svg/profile-filled.svg rename to rtdata/images/svg/profile-filled.svg diff --git a/rtdata/images/themed/svg/profile-partial.svg b/rtdata/images/svg/profile-partial.svg similarity index 100% rename from rtdata/images/themed/svg/profile-partial.svg rename to rtdata/images/svg/profile-partial.svg diff --git a/rtdata/images/themed/svg/redo-all.svg b/rtdata/images/svg/redo-all.svg similarity index 100% rename from rtdata/images/themed/svg/redo-all.svg rename to rtdata/images/svg/redo-all.svg diff --git a/rtdata/images/themed/svg/redo-small.svg b/rtdata/images/svg/redo-small.svg similarity index 100% rename from rtdata/images/themed/svg/redo-small.svg rename to rtdata/images/svg/redo-small.svg diff --git a/rtdata/images/themed/svg/redo.svg b/rtdata/images/svg/redo.svg similarity index 100% rename from rtdata/images/themed/svg/redo.svg rename to rtdata/images/svg/redo.svg diff --git a/rtdata/images/themed/svg/refresh-red-small.svg b/rtdata/images/svg/refresh-red-small.svg similarity index 100% rename from rtdata/images/themed/svg/refresh-red-small.svg rename to rtdata/images/svg/refresh-red-small.svg diff --git a/rtdata/images/themed/svg/refresh-small.svg b/rtdata/images/svg/refresh-small.svg similarity index 100% rename from rtdata/images/themed/svg/refresh-small.svg rename to rtdata/images/svg/refresh-small.svg diff --git a/rtdata/images/themed/svg/refresh.svg b/rtdata/images/svg/refresh.svg similarity index 100% rename from rtdata/images/themed/svg/refresh.svg rename to rtdata/images/svg/refresh.svg diff --git a/rtdata/images/themed/svg/remove-small.svg b/rtdata/images/svg/remove-small.svg similarity index 100% rename from rtdata/images/themed/svg/remove-small.svg rename to rtdata/images/svg/remove-small.svg diff --git a/rtdata/images/themed/svg/remove.svg b/rtdata/images/svg/remove.svg similarity index 100% rename from rtdata/images/themed/svg/remove.svg rename to rtdata/images/svg/remove.svg diff --git a/rtdata/images/themed/svg/rotate-aroundnode-hicontrast.svg b/rtdata/images/svg/rotate-aroundnode-hicontrast.svg similarity index 100% rename from rtdata/images/themed/svg/rotate-aroundnode-hicontrast.svg rename to rtdata/images/svg/rotate-aroundnode-hicontrast.svg diff --git a/rtdata/images/themed/svg/rotate-aroundnode.svg b/rtdata/images/svg/rotate-aroundnode.svg similarity index 100% rename from rtdata/images/themed/svg/rotate-aroundnode.svg rename to rtdata/images/svg/rotate-aroundnode.svg diff --git a/rtdata/images/themed/svg/rotate-left-90.svg b/rtdata/images/svg/rotate-left-90.svg similarity index 62% rename from rtdata/images/themed/svg/rotate-left-90.svg rename to rtdata/images/svg/rotate-left-90.svg index 394c88c29..7d08954b4 100644 --- a/rtdata/images/themed/svg/rotate-left-90.svg +++ b/rtdata/images/svg/rotate-left-90.svg @@ -27,13 +27,13 @@ inkscape:pageopacity="0" inkscape:pageshadow="2" inkscape:zoom="34.25" - inkscape:cx="12" + inkscape:cx="7.3722628" inkscape:cy="12" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" inkscape:window-width="1920" - inkscape:window-height="1019" + inkscape:window-height="1021" inkscape:window-x="0" inkscape:window-y="0" inkscape:window-maximized="1" @@ -115,17 +115,23 @@ style="opacity:0.9;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#2a7fff;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:normal" d="M 5,12 A 7,7 0 0 1 12,5" id="path1684" /> - 90° + id="text1716"> + + + + + 90° diff --git a/rtdata/images/themed/svg/rotate-left-small.svg b/rtdata/images/svg/rotate-left-small.svg similarity index 100% rename from rtdata/images/themed/svg/rotate-left-small.svg rename to rtdata/images/svg/rotate-left-small.svg diff --git a/rtdata/images/themed/svg/rotate-left.svg b/rtdata/images/svg/rotate-left.svg similarity index 100% rename from rtdata/images/themed/svg/rotate-left.svg rename to rtdata/images/svg/rotate-left.svg diff --git a/rtdata/images/themed/svg/rotate-right-90.svg b/rtdata/images/svg/rotate-right-90.svg similarity index 62% rename from rtdata/images/themed/svg/rotate-right-90.svg rename to rtdata/images/svg/rotate-right-90.svg index eca331bc8..bb2e66482 100644 --- a/rtdata/images/themed/svg/rotate-right-90.svg +++ b/rtdata/images/svg/rotate-right-90.svg @@ -27,13 +27,13 @@ inkscape:pageopacity="0" inkscape:pageshadow="2" inkscape:zoom="34.25" - inkscape:cx="12" + inkscape:cx="7.3722628" inkscape:cy="12" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" inkscape:window-width="1920" - inkscape:window-height="1019" + inkscape:window-height="1021" inkscape:window-x="0" inkscape:window-y="0" inkscape:window-maximized="1" @@ -115,17 +115,23 @@ style="opacity:0.9;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#2a7fff;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:normal" d="M 19,12 A 7,7 0 0 0 12,5" id="path1684" /> - 90° + id="text1716"> + + + + + 90° diff --git a/rtdata/images/themed/svg/rotate-right-small.svg b/rtdata/images/svg/rotate-right-small.svg similarity index 100% rename from rtdata/images/themed/svg/rotate-right-small.svg rename to rtdata/images/svg/rotate-right-small.svg diff --git a/rtdata/images/themed/svg/rotate-right.svg b/rtdata/images/svg/rotate-right.svg similarity index 100% rename from rtdata/images/themed/svg/rotate-right.svg rename to rtdata/images/svg/rotate-right.svg diff --git a/rtdata/images/themed/svg/rotate-straighten-small.svg b/rtdata/images/svg/rotate-straighten-small.svg similarity index 100% rename from rtdata/images/themed/svg/rotate-straighten-small.svg rename to rtdata/images/svg/rotate-straighten-small.svg diff --git a/rtdata/images/themed/svg/rotate-straighten.svg b/rtdata/images/svg/rotate-straighten.svg similarity index 100% rename from rtdata/images/themed/svg/rotate-straighten.svg rename to rtdata/images/svg/rotate-straighten.svg diff --git a/rtdata/images/non-themed/rt-splash.svg b/rtdata/images/svg/rt-logo.svg similarity index 63% rename from rtdata/images/non-themed/rt-splash.svg rename to rtdata/images/svg/rt-logo.svg index 46afaa0ba..a8417d4db 100644 --- a/rtdata/images/non-themed/rt-splash.svg +++ b/rtdata/images/svg/rt-logo.svg @@ -10,17 +10,19 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="552" - height="346" - viewBox="0 0 146.05 91.545836" + width="64.46769" + height="64.467697" + viewBox="0 0 64.46769 64.467696" version="1.1" id="svg783" inkscape:version="0.92.2 2405546, 2018-03-11" - sodipodi:docname="rt-splash.svg" - inkscape:export-filename="/tmp/splash.png" - inkscape:export-xdpi="96" - inkscape:export-ydpi="96" - enable-background="new"> + sodipodi:docname="rt-logo.svg" + inkscape:export-filename="/tmp/rawtherapee-logo-256.png" + inkscape:export-xdpi="381.21423" + inkscape:export-ydpi="381.21423" + style="enable-background:new"> + RawTherapee logo - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + inkscape:measure-end="422.317,192.368" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" + scale-x="1" + inkscape:pagecheckerboard="true" /> @@ -571,7 +427,14 @@ image/svg+xml - + RawTherapee logo + + + Maciej Dworak + + + www.rawtherapee.com + 2019-03-11 @@ -579,183 +442,81 @@ inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1" - transform="translate(0,-205.45415)"> - - - Each logo element has a filter effect (ring*). Additionally, the logo as a whole (all elements grouped) also has a filter effect (logo glow)."Raw": font Eras Ultra ITC, 60pt, -3px spacing between characters."Therapee": font Eras Medium ITC, 60pt, +1px spacing between characters.Version: font Eras Bold ITC, 64pt, skewed -3°. RawTherapee splash screen design version 1.2 from 2019-02-27 | www.rawtherapee.com - GNU GPLv3 - + transform="translate(-40.854412,-228.47746)"> - Development - - - Release Candidate 1 - - + id="g171"> + d="m 120.55163,161.65957 -12.76356,-3.41994 c -0.1299,0.45532 -0.2469,0.91421 -0.35088,1.37614 -0.16656,0.82125 -0.29195,1.65032 -0.37569,2.48409 -0.0837,0.83385 -0.12557,1.67137 -0.12557,2.50941 1e-5,0.59328 0.021,1.18638 0.063,1.77818 0.0593,0.83583 0.16037,1.66817 0.30282,2.4939 0.13582,0.77278 0.32632,1.57591 0.53379,2.33261 l 12.79722,-3.42869 c -0.10207,-0.36951 -0.22863,-0.77472 -0.29459,-1.15235 -0.0674,-0.39114 -0.11515,-0.78541 -0.14315,-1.18133 -0.0199,-0.28033 -0.0299,-0.56128 -0.03,-0.84232 -2e-5,-0.39693 0.0198,-0.79361 0.0594,-1.18856 0.0396,-0.39494 0.0989,-0.78766 0.17777,-1.17667 0.0448,-0.19605 0.0946,-0.39094 0.14934,-0.58447 z" + style="fill:url(#linearGradient6560);fill-opacity:1;stroke:none;stroke-width:0.12867495;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + style="opacity:0.7;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.97340846;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> - 5 - . 5 - Therapee - Raw - Therapee - Raw diff --git a/rtdata/images/themed/svg/save-small.svg b/rtdata/images/svg/save-small.svg similarity index 100% rename from rtdata/images/themed/svg/save-small.svg rename to rtdata/images/svg/save-small.svg diff --git a/rtdata/images/themed/svg/save.svg b/rtdata/images/svg/save.svg similarity index 100% rename from rtdata/images/themed/svg/save.svg rename to rtdata/images/svg/save.svg diff --git a/rtdata/images/themed/svg/saved-no-small.svg b/rtdata/images/svg/saved-no-small.svg similarity index 100% rename from rtdata/images/themed/svg/saved-no-small.svg rename to rtdata/images/svg/saved-no-small.svg diff --git a/rtdata/images/themed/svg/saved-yes-small.svg b/rtdata/images/svg/saved-yes-small.svg similarity index 100% rename from rtdata/images/themed/svg/saved-yes-small.svg rename to rtdata/images/svg/saved-yes-small.svg diff --git a/rtdata/images/svg/splash.svg b/rtdata/images/svg/splash.svg new file mode 100644 index 000000000..0578fac27 --- /dev/null +++ b/rtdata/images/svg/splash.svg @@ -0,0 +1,1103 @@ + + + + + RawTherapee splash screen + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + RawTherapee splash screen + 2019-03-11 + + + Maciej Dworak + + + www.rawtherapee.com + + + + + + + Each logo element has a filter effect (ring*). Additionally, the logo as a whole (all elements grouped) also has a filter effect (logo glow)."Raw": font Eras Ultra ITC, 60pt, -3px spacing between characters."Therapee": font Eras Medium ITC, 60pt, +1px spacing between characters.Version: font Eras Bold ITC, 64pt, skewed -3°. RawTherapee splash screen design version 1.2 from 2019-02-27 | www.rawtherapee.com + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GNU GPLv3 + + Development + + + Release Candidate 1 + + 5 + . 5 + Therapee + Raw + Therapee + Raw + + diff --git a/rtdata/images/themed/svg/square-toggle-black-off-narrow.svg b/rtdata/images/svg/square-toggle-black-off-narrow.svg similarity index 100% rename from rtdata/images/themed/svg/square-toggle-black-off-narrow.svg rename to rtdata/images/svg/square-toggle-black-off-narrow.svg diff --git a/rtdata/images/themed/svg/square-toggle-black-on-narrow.svg b/rtdata/images/svg/square-toggle-black-on-narrow.svg similarity index 100% rename from rtdata/images/themed/svg/square-toggle-black-on-narrow.svg rename to rtdata/images/svg/square-toggle-black-on-narrow.svg diff --git a/rtdata/images/themed/svg/square-toggle-blue-off-narrow.svg b/rtdata/images/svg/square-toggle-blue-off-narrow.svg similarity index 100% rename from rtdata/images/themed/svg/square-toggle-blue-off-narrow.svg rename to rtdata/images/svg/square-toggle-blue-off-narrow.svg diff --git a/rtdata/images/themed/svg/square-toggle-blue-on-narrow.svg b/rtdata/images/svg/square-toggle-blue-on-narrow.svg similarity index 100% rename from rtdata/images/themed/svg/square-toggle-blue-on-narrow.svg rename to rtdata/images/svg/square-toggle-blue-on-narrow.svg diff --git a/rtdata/images/themed/svg/square-toggle-gray-off-narrow.svg b/rtdata/images/svg/square-toggle-gray-off-narrow.svg similarity index 100% rename from rtdata/images/themed/svg/square-toggle-gray-off-narrow.svg rename to rtdata/images/svg/square-toggle-gray-off-narrow.svg diff --git a/rtdata/images/themed/svg/square-toggle-gray-on-narrow.svg b/rtdata/images/svg/square-toggle-gray-on-narrow.svg similarity index 100% rename from rtdata/images/themed/svg/square-toggle-gray-on-narrow.svg rename to rtdata/images/svg/square-toggle-gray-on-narrow.svg diff --git a/rtdata/images/themed/svg/square-toggle-green-off-narrow.svg b/rtdata/images/svg/square-toggle-green-off-narrow.svg similarity index 100% rename from rtdata/images/themed/svg/square-toggle-green-off-narrow.svg rename to rtdata/images/svg/square-toggle-green-off-narrow.svg diff --git a/rtdata/images/themed/svg/square-toggle-green-on-narrow.svg b/rtdata/images/svg/square-toggle-green-on-narrow.svg similarity index 100% rename from rtdata/images/themed/svg/square-toggle-green-on-narrow.svg rename to rtdata/images/svg/square-toggle-green-on-narrow.svg diff --git a/rtdata/images/themed/svg/square-toggle-luminosity-off-narrow.svg b/rtdata/images/svg/square-toggle-luminosity-off-narrow.svg similarity index 78% rename from rtdata/images/themed/svg/square-toggle-luminosity-off-narrow.svg rename to rtdata/images/svg/square-toggle-luminosity-off-narrow.svg index c5758afa0..9d5ad85ed 100644 --- a/rtdata/images/themed/svg/square-toggle-luminosity-off-narrow.svg +++ b/rtdata/images/svg/square-toggle-luminosity-off-narrow.svg @@ -18,7 +18,7 @@ inkscape:export-xdpi="96" inkscape:export-ydpi="96" inkscape:version="0.92.2 2405546, 2018-03-11" - sodipodi:docname="square-toggle-luminosity-off.svg"> + sodipodi:docname="square-toggle-luminosity-off-narrow.svg"> image/svg+xml - + Maciej Dworak @@ -113,16 +113,25 @@ width="6" id="rect10216" style="opacity:1;fill:#77777f;fill-opacity:0.94117647;stroke:none;stroke-width:0;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> - + + + L + x="23.290586" + id="tspan16" + sodipodi:role="line">L diff --git a/rtdata/images/themed/svg/square-toggle-luminosity-on-narrow.svg b/rtdata/images/svg/square-toggle-luminosity-on-narrow.svg similarity index 78% rename from rtdata/images/themed/svg/square-toggle-luminosity-on-narrow.svg rename to rtdata/images/svg/square-toggle-luminosity-on-narrow.svg index 9db291ba3..f7e83e8bb 100644 --- a/rtdata/images/themed/svg/square-toggle-luminosity-on-narrow.svg +++ b/rtdata/images/svg/square-toggle-luminosity-on-narrow.svg @@ -18,7 +18,7 @@ inkscape:export-xdpi="96" inkscape:export-ydpi="96" inkscape:version="0.92.2 2405546, 2018-03-11" - sodipodi:docname="square-toggle-luminosity-on.svg"> + sodipodi:docname="square-toggle-luminosity-on-narrow.svg"> image/svg+xml - + Maciej Dworak @@ -113,16 +113,25 @@ width="6" id="rect10216" style="opacity:1;fill:#77777f;fill-opacity:0.94117647;stroke:none;stroke-width:0;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> - + + + L + x="23.290586" + id="tspan12" + sodipodi:role="line">L diff --git a/rtdata/images/themed/svg/square-toggle-red-off-narrow.svg b/rtdata/images/svg/square-toggle-red-off-narrow.svg similarity index 100% rename from rtdata/images/themed/svg/square-toggle-red-off-narrow.svg rename to rtdata/images/svg/square-toggle-red-off-narrow.svg diff --git a/rtdata/images/themed/svg/square-toggle-red-on-narrow.svg b/rtdata/images/svg/square-toggle-red-on-narrow.svg similarity index 100% rename from rtdata/images/themed/svg/square-toggle-red-on-narrow.svg rename to rtdata/images/svg/square-toggle-red-on-narrow.svg diff --git a/rtdata/images/themed/svg/square-toggle-theme-off-narrow.svg b/rtdata/images/svg/square-toggle-theme-off-narrow.svg similarity index 78% rename from rtdata/images/themed/svg/square-toggle-theme-off-narrow.svg rename to rtdata/images/svg/square-toggle-theme-off-narrow.svg index 9b3bc4a2a..311552709 100644 --- a/rtdata/images/themed/svg/square-toggle-theme-off-narrow.svg +++ b/rtdata/images/svg/square-toggle-theme-off-narrow.svg @@ -18,7 +18,7 @@ inkscape:export-xdpi="96" inkscape:export-ydpi="96" inkscape:version="0.92.2 2405546, 2018-03-11" - sodipodi:docname="square-toggle-theme-off.svg"> + sodipodi:docname="square-toggle-theme-off-narrow.svg"> image/svg+xml - + Maciej Dworak @@ -113,16 +113,25 @@ width="6" id="rect10216" style="opacity:1;fill:#77777f;fill-opacity:0.94117647;stroke:none;stroke-width:0;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> - + + + T + x="22.972715" + id="tspan12" + sodipodi:role="line">T diff --git a/rtdata/images/themed/svg/square-toggle-theme-on-narrow.svg b/rtdata/images/svg/square-toggle-theme-on-narrow.svg similarity index 78% rename from rtdata/images/themed/svg/square-toggle-theme-on-narrow.svg rename to rtdata/images/svg/square-toggle-theme-on-narrow.svg index e7b1f00bd..3c8efd85b 100644 --- a/rtdata/images/themed/svg/square-toggle-theme-on-narrow.svg +++ b/rtdata/images/svg/square-toggle-theme-on-narrow.svg @@ -18,7 +18,7 @@ inkscape:export-xdpi="96" inkscape:export-ydpi="96" inkscape:version="0.92.2 2405546, 2018-03-11" - sodipodi:docname="square-toggle-theme-on.svg"> + sodipodi:docname="square-toggle-theme-on-narrow.svg"> image/svg+xml - + Maciej Dworak @@ -113,16 +113,25 @@ width="6" id="rect10216" style="opacity:1;fill:#77777f;fill-opacity:0.94117647;stroke:none;stroke-width:0;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> - + + + T + x="22.972715" + id="tspan12" + sodipodi:role="line">T diff --git a/rtdata/images/themed/svg/square-toggle-white-off-narrow.svg b/rtdata/images/svg/square-toggle-white-off-narrow.svg similarity index 100% rename from rtdata/images/themed/svg/square-toggle-white-off-narrow.svg rename to rtdata/images/svg/square-toggle-white-off-narrow.svg diff --git a/rtdata/images/themed/svg/square-toggle-white-on-narrow.svg b/rtdata/images/svg/square-toggle-white-on-narrow.svg similarity index 100% rename from rtdata/images/themed/svg/square-toggle-white-on-narrow.svg rename to rtdata/images/svg/square-toggle-white-on-narrow.svg diff --git a/rtdata/images/themed/svg/star-gold-hollow-narrow.svg b/rtdata/images/svg/star-gold-hollow-narrow.svg similarity index 100% rename from rtdata/images/themed/svg/star-gold-hollow-narrow.svg rename to rtdata/images/svg/star-gold-hollow-narrow.svg diff --git a/rtdata/images/themed/svg/star-gold-hollow-small.svg b/rtdata/images/svg/star-gold-hollow-small.svg similarity index 100% rename from rtdata/images/themed/svg/star-gold-hollow-small.svg rename to rtdata/images/svg/star-gold-hollow-small.svg diff --git a/rtdata/images/themed/svg/star-gold-narrow.svg b/rtdata/images/svg/star-gold-narrow.svg similarity index 100% rename from rtdata/images/themed/svg/star-gold-narrow.svg rename to rtdata/images/svg/star-gold-narrow.svg diff --git a/rtdata/images/themed/svg/star-gold-small.svg b/rtdata/images/svg/star-gold-small.svg similarity index 100% rename from rtdata/images/themed/svg/star-gold-small.svg rename to rtdata/images/svg/star-gold-small.svg diff --git a/rtdata/images/themed/svg/star-hollow-narrow.svg b/rtdata/images/svg/star-hollow-narrow.svg similarity index 100% rename from rtdata/images/themed/svg/star-hollow-narrow.svg rename to rtdata/images/svg/star-hollow-narrow.svg diff --git a/rtdata/images/themed/svg/star-hollow-small.svg b/rtdata/images/svg/star-hollow-small.svg similarity index 100% rename from rtdata/images/themed/svg/star-hollow-small.svg rename to rtdata/images/svg/star-hollow-small.svg diff --git a/rtdata/images/themed/svg/star-narrow.svg b/rtdata/images/svg/star-narrow.svg similarity index 100% rename from rtdata/images/themed/svg/star-narrow.svg rename to rtdata/images/svg/star-narrow.svg diff --git a/rtdata/images/themed/svg/star-small.svg b/rtdata/images/svg/star-small.svg similarity index 100% rename from rtdata/images/themed/svg/star-small.svg rename to rtdata/images/svg/star-small.svg diff --git a/rtdata/images/themed/svg/star.svg b/rtdata/images/svg/star.svg similarity index 100% rename from rtdata/images/themed/svg/star.svg rename to rtdata/images/svg/star.svg diff --git a/rtdata/images/themed/svg/template-16.svg b/rtdata/images/svg/template-16.svg similarity index 100% rename from rtdata/images/themed/svg/template-16.svg rename to rtdata/images/svg/template-16.svg diff --git a/rtdata/images/themed/svg/template-24.svg b/rtdata/images/svg/template-24.svg similarity index 100% rename from rtdata/images/themed/svg/template-24.svg rename to rtdata/images/svg/template-24.svg diff --git a/rtdata/images/themed/svg/template-narrow.svg b/rtdata/images/svg/template-narrow.svg similarity index 100% rename from rtdata/images/themed/svg/template-narrow.svg rename to rtdata/images/svg/template-narrow.svg diff --git a/rtdata/images/themed/svg/tick-green-hollow-small.svg b/rtdata/images/svg/tick-green-hollow-small.svg similarity index 100% rename from rtdata/images/themed/svg/tick-green-hollow-small.svg rename to rtdata/images/svg/tick-green-hollow-small.svg diff --git a/rtdata/images/themed/svg/tick-green-hollow.svg b/rtdata/images/svg/tick-green-hollow.svg similarity index 100% rename from rtdata/images/themed/svg/tick-green-hollow.svg rename to rtdata/images/svg/tick-green-hollow.svg diff --git a/rtdata/images/themed/svg/tick-green-small.svg b/rtdata/images/svg/tick-green-small.svg similarity index 100% rename from rtdata/images/themed/svg/tick-green-small.svg rename to rtdata/images/svg/tick-green-small.svg diff --git a/rtdata/images/themed/svg/tick-green.svg b/rtdata/images/svg/tick-green.svg similarity index 100% rename from rtdata/images/themed/svg/tick-green.svg rename to rtdata/images/svg/tick-green.svg diff --git a/rtdata/images/themed/svg/tick-hollow-small.svg b/rtdata/images/svg/tick-hollow-small.svg similarity index 100% rename from rtdata/images/themed/svg/tick-hollow-small.svg rename to rtdata/images/svg/tick-hollow-small.svg diff --git a/rtdata/images/themed/svg/tick-small.svg b/rtdata/images/svg/tick-small.svg similarity index 100% rename from rtdata/images/themed/svg/tick-small.svg rename to rtdata/images/svg/tick-small.svg diff --git a/rtdata/images/themed/svg/tick.svg b/rtdata/images/svg/tick.svg similarity index 100% rename from rtdata/images/themed/svg/tick.svg rename to rtdata/images/svg/tick.svg diff --git a/rtdata/images/themed/svg/transform.svg b/rtdata/images/svg/transform.svg similarity index 100% rename from rtdata/images/themed/svg/transform.svg rename to rtdata/images/svg/transform.svg diff --git a/rtdata/images/themed/svg/trash-delete.svg b/rtdata/images/svg/trash-delete.svg similarity index 100% rename from rtdata/images/themed/svg/trash-delete.svg rename to rtdata/images/svg/trash-delete.svg diff --git a/rtdata/images/themed/svg/trash-empty-show.svg b/rtdata/images/svg/trash-empty-show.svg similarity index 100% rename from rtdata/images/themed/svg/trash-empty-show.svg rename to rtdata/images/svg/trash-empty-show.svg diff --git a/rtdata/images/themed/svg/trash-empty.svg b/rtdata/images/svg/trash-empty.svg similarity index 100% rename from rtdata/images/themed/svg/trash-empty.svg rename to rtdata/images/svg/trash-empty.svg diff --git a/rtdata/images/themed/svg/trash-full-show.svg b/rtdata/images/svg/trash-full-show.svg similarity index 100% rename from rtdata/images/themed/svg/trash-full-show.svg rename to rtdata/images/svg/trash-full-show.svg diff --git a/rtdata/images/themed/svg/trash-full.svg b/rtdata/images/svg/trash-full.svg similarity index 100% rename from rtdata/images/themed/svg/trash-full.svg rename to rtdata/images/svg/trash-full.svg diff --git a/rtdata/images/themed/svg/trash-hide-deleted.svg b/rtdata/images/svg/trash-hide-deleted.svg similarity index 100% rename from rtdata/images/themed/svg/trash-hide-deleted.svg rename to rtdata/images/svg/trash-hide-deleted.svg diff --git a/rtdata/images/themed/svg/trash-remove-small.svg b/rtdata/images/svg/trash-remove-small.svg similarity index 100% rename from rtdata/images/themed/svg/trash-remove-small.svg rename to rtdata/images/svg/trash-remove-small.svg diff --git a/rtdata/images/themed/svg/trash-remove.svg b/rtdata/images/svg/trash-remove.svg similarity index 100% rename from rtdata/images/themed/svg/trash-remove.svg rename to rtdata/images/svg/trash-remove.svg diff --git a/rtdata/images/themed/svg/trash-small.svg b/rtdata/images/svg/trash-small.svg similarity index 100% rename from rtdata/images/themed/svg/trash-small.svg rename to rtdata/images/svg/trash-small.svg diff --git a/rtdata/images/themed/svg/undo-all.svg b/rtdata/images/svg/undo-all.svg similarity index 100% rename from rtdata/images/themed/svg/undo-all.svg rename to rtdata/images/svg/undo-all.svg diff --git a/rtdata/images/themed/svg/undo-small.svg b/rtdata/images/svg/undo-small.svg similarity index 100% rename from rtdata/images/themed/svg/undo-small.svg rename to rtdata/images/svg/undo-small.svg diff --git a/rtdata/images/themed/svg/undo.svg b/rtdata/images/svg/undo.svg similarity index 100% rename from rtdata/images/themed/svg/undo.svg rename to rtdata/images/svg/undo.svg diff --git a/rtdata/images/themed/svg/warning-highlights.svg b/rtdata/images/svg/warning-highlights.svg similarity index 100% rename from rtdata/images/themed/svg/warning-highlights.svg rename to rtdata/images/svg/warning-highlights.svg diff --git a/rtdata/images/themed/svg/warning-shadows.svg b/rtdata/images/svg/warning-shadows.svg similarity index 100% rename from rtdata/images/themed/svg/warning-shadows.svg rename to rtdata/images/svg/warning-shadows.svg diff --git a/rtdata/images/themed/svg/warning.svg b/rtdata/images/svg/warning.svg similarity index 100% rename from rtdata/images/themed/svg/warning.svg rename to rtdata/images/svg/warning.svg diff --git a/rtdata/images/themed/svg/wavelets.svg b/rtdata/images/svg/wavelets.svg similarity index 100% rename from rtdata/images/themed/svg/wavelets.svg rename to rtdata/images/svg/wavelets.svg diff --git a/rtdata/images/themed/svg/wb-auto-small.svg b/rtdata/images/svg/wb-auto-small.svg similarity index 100% rename from rtdata/images/themed/svg/wb-auto-small.svg rename to rtdata/images/svg/wb-auto-small.svg diff --git a/rtdata/images/themed/svg/wb-auto.svg b/rtdata/images/svg/wb-auto.svg similarity index 100% rename from rtdata/images/themed/svg/wb-auto.svg rename to rtdata/images/svg/wb-auto.svg diff --git a/rtdata/images/themed/svg/wb-camera-small.svg b/rtdata/images/svg/wb-camera-small.svg similarity index 100% rename from rtdata/images/themed/svg/wb-camera-small.svg rename to rtdata/images/svg/wb-camera-small.svg diff --git a/rtdata/images/themed/svg/wb-camera.svg b/rtdata/images/svg/wb-camera.svg similarity index 100% rename from rtdata/images/themed/svg/wb-camera.svg rename to rtdata/images/svg/wb-camera.svg diff --git a/rtdata/images/themed/svg/wb-cloudy-small.svg b/rtdata/images/svg/wb-cloudy-small.svg similarity index 100% rename from rtdata/images/themed/svg/wb-cloudy-small.svg rename to rtdata/images/svg/wb-cloudy-small.svg diff --git a/rtdata/images/themed/svg/wb-cloudy.svg b/rtdata/images/svg/wb-cloudy.svg similarity index 100% rename from rtdata/images/themed/svg/wb-cloudy.svg rename to rtdata/images/svg/wb-cloudy.svg diff --git a/rtdata/images/themed/svg/wb-custom-small.svg b/rtdata/images/svg/wb-custom-small.svg similarity index 100% rename from rtdata/images/themed/svg/wb-custom-small.svg rename to rtdata/images/svg/wb-custom-small.svg diff --git a/rtdata/images/themed/svg/wb-custom.svg b/rtdata/images/svg/wb-custom.svg similarity index 100% rename from rtdata/images/themed/svg/wb-custom.svg rename to rtdata/images/svg/wb-custom.svg diff --git a/rtdata/images/themed/svg/wb-flash-small.svg b/rtdata/images/svg/wb-flash-small.svg similarity index 100% rename from rtdata/images/themed/svg/wb-flash-small.svg rename to rtdata/images/svg/wb-flash-small.svg diff --git a/rtdata/images/themed/svg/wb-flash.svg b/rtdata/images/svg/wb-flash.svg similarity index 100% rename from rtdata/images/themed/svg/wb-flash.svg rename to rtdata/images/svg/wb-flash.svg diff --git a/rtdata/images/themed/svg/wb-fluorescent-small.svg b/rtdata/images/svg/wb-fluorescent-small.svg similarity index 100% rename from rtdata/images/themed/svg/wb-fluorescent-small.svg rename to rtdata/images/svg/wb-fluorescent-small.svg diff --git a/rtdata/images/themed/svg/wb-fluorescent.svg b/rtdata/images/svg/wb-fluorescent.svg similarity index 100% rename from rtdata/images/themed/svg/wb-fluorescent.svg rename to rtdata/images/svg/wb-fluorescent.svg diff --git a/rtdata/images/themed/svg/wb-lamp-small.svg b/rtdata/images/svg/wb-lamp-small.svg similarity index 100% rename from rtdata/images/themed/svg/wb-lamp-small.svg rename to rtdata/images/svg/wb-lamp-small.svg diff --git a/rtdata/images/themed/svg/wb-lamp.svg b/rtdata/images/svg/wb-lamp.svg similarity index 100% rename from rtdata/images/themed/svg/wb-lamp.svg rename to rtdata/images/svg/wb-lamp.svg diff --git a/rtdata/images/themed/svg/wb-led-small.svg b/rtdata/images/svg/wb-led-small.svg similarity index 100% rename from rtdata/images/themed/svg/wb-led-small.svg rename to rtdata/images/svg/wb-led-small.svg diff --git a/rtdata/images/themed/svg/wb-led.svg b/rtdata/images/svg/wb-led.svg similarity index 100% rename from rtdata/images/themed/svg/wb-led.svg rename to rtdata/images/svg/wb-led.svg diff --git a/rtdata/images/themed/svg/wb-shade-small.svg b/rtdata/images/svg/wb-shade-small.svg similarity index 100% rename from rtdata/images/themed/svg/wb-shade-small.svg rename to rtdata/images/svg/wb-shade-small.svg diff --git a/rtdata/images/themed/svg/wb-shade.svg b/rtdata/images/svg/wb-shade.svg similarity index 100% rename from rtdata/images/themed/svg/wb-shade.svg rename to rtdata/images/svg/wb-shade.svg diff --git a/rtdata/images/themed/svg/wb-sun-small.svg b/rtdata/images/svg/wb-sun-small.svg similarity index 100% rename from rtdata/images/themed/svg/wb-sun-small.svg rename to rtdata/images/svg/wb-sun-small.svg diff --git a/rtdata/images/themed/svg/wb-sun.svg b/rtdata/images/svg/wb-sun.svg similarity index 100% rename from rtdata/images/themed/svg/wb-sun.svg rename to rtdata/images/svg/wb-sun.svg diff --git a/rtdata/images/themed/svg/wb-tungsten-small.svg b/rtdata/images/svg/wb-tungsten-small.svg similarity index 100% rename from rtdata/images/themed/svg/wb-tungsten-small.svg rename to rtdata/images/svg/wb-tungsten-small.svg diff --git a/rtdata/images/themed/svg/wb-tungsten.svg b/rtdata/images/svg/wb-tungsten.svg similarity index 100% rename from rtdata/images/themed/svg/wb-tungsten.svg rename to rtdata/images/svg/wb-tungsten.svg diff --git a/rtdata/images/themed/svg/wb-water-small.svg b/rtdata/images/svg/wb-water-small.svg similarity index 100% rename from rtdata/images/themed/svg/wb-water-small.svg rename to rtdata/images/svg/wb-water-small.svg diff --git a/rtdata/images/themed/svg/wb-water.svg b/rtdata/images/svg/wb-water.svg similarity index 100% rename from rtdata/images/themed/svg/wb-water.svg rename to rtdata/images/svg/wb-water.svg diff --git a/rtdata/images/themed/svg/window-add.svg b/rtdata/images/svg/window-add.svg similarity index 100% rename from rtdata/images/themed/svg/window-add.svg rename to rtdata/images/svg/window-add.svg diff --git a/rtdata/images/themed/png/dark/add-small.png b/rtdata/images/themed/png/dark/add-small.png deleted file mode 100644 index 44a3d8639..000000000 Binary files a/rtdata/images/themed/png/dark/add-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/add.png b/rtdata/images/themed/png/dark/add.png deleted file mode 100644 index 6b401bc87..000000000 Binary files a/rtdata/images/themed/png/dark/add.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/aperture.png b/rtdata/images/themed/png/dark/aperture.png deleted file mode 100644 index a80fda199..000000000 Binary files a/rtdata/images/themed/png/dark/aperture.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/arrow-down-small.png b/rtdata/images/themed/png/dark/arrow-down-small.png deleted file mode 100644 index 3c1b4033a..000000000 Binary files a/rtdata/images/themed/png/dark/arrow-down-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/arrow-left-small.png b/rtdata/images/themed/png/dark/arrow-left-small.png deleted file mode 100644 index b8245b953..000000000 Binary files a/rtdata/images/themed/png/dark/arrow-left-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/arrow-right-small.png b/rtdata/images/themed/png/dark/arrow-right-small.png deleted file mode 100644 index 83177a23a..000000000 Binary files a/rtdata/images/themed/png/dark/arrow-right-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/arrow-up-small.png b/rtdata/images/themed/png/dark/arrow-up-small.png deleted file mode 100644 index 0483b3e73..000000000 Binary files a/rtdata/images/themed/png/dark/arrow-up-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/arrow-updown.png b/rtdata/images/themed/png/dark/arrow-updown.png deleted file mode 100644 index cd2c0b14e..000000000 Binary files a/rtdata/images/themed/png/dark/arrow-updown.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/arrow2-left.png b/rtdata/images/themed/png/dark/arrow2-left.png deleted file mode 100644 index dd0c0c3d7..000000000 Binary files a/rtdata/images/themed/png/dark/arrow2-left.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/arrow2-right.png b/rtdata/images/themed/png/dark/arrow2-right.png deleted file mode 100644 index 2ee87ec71..000000000 Binary files a/rtdata/images/themed/png/dark/arrow2-right.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/atom.png b/rtdata/images/themed/png/dark/atom.png deleted file mode 100644 index 9de042fbb..000000000 Binary files a/rtdata/images/themed/png/dark/atom.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/bayer.png b/rtdata/images/themed/png/dark/bayer.png deleted file mode 100644 index 035318b9a..000000000 Binary files a/rtdata/images/themed/png/dark/bayer.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/beforeafter.png b/rtdata/images/themed/png/dark/beforeafter.png deleted file mode 100644 index 25bd64b5a..000000000 Binary files a/rtdata/images/themed/png/dark/beforeafter.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/cancel-small.png b/rtdata/images/themed/png/dark/cancel-small.png deleted file mode 100644 index 8a812e8f3..000000000 Binary files a/rtdata/images/themed/png/dark/cancel-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/cancel.png b/rtdata/images/themed/png/dark/cancel.png deleted file mode 100644 index 6eda05c50..000000000 Binary files a/rtdata/images/themed/png/dark/cancel.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/circle-black-small.png b/rtdata/images/themed/png/dark/circle-black-small.png deleted file mode 100644 index f18a415b6..000000000 Binary files a/rtdata/images/themed/png/dark/circle-black-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/circle-blue-green-small.png b/rtdata/images/themed/png/dark/circle-blue-green-small.png deleted file mode 100644 index 247931823..000000000 Binary files a/rtdata/images/themed/png/dark/circle-blue-green-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/circle-blue-red-small.png b/rtdata/images/themed/png/dark/circle-blue-red-small.png deleted file mode 100644 index d88a01330..000000000 Binary files a/rtdata/images/themed/png/dark/circle-blue-red-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/circle-blue-small.png b/rtdata/images/themed/png/dark/circle-blue-small.png deleted file mode 100644 index 2c8ff48fd..000000000 Binary files a/rtdata/images/themed/png/dark/circle-blue-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/circle-blue-yellow-small.png b/rtdata/images/themed/png/dark/circle-blue-yellow-small.png deleted file mode 100644 index 0585b2195..000000000 Binary files a/rtdata/images/themed/png/dark/circle-blue-yellow-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/circle-cyan-red-small.png b/rtdata/images/themed/png/dark/circle-cyan-red-small.png deleted file mode 100644 index ed7003161..000000000 Binary files a/rtdata/images/themed/png/dark/circle-cyan-red-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/circle-cyan-small.png b/rtdata/images/themed/png/dark/circle-cyan-small.png deleted file mode 100644 index 84f873a2c..000000000 Binary files a/rtdata/images/themed/png/dark/circle-cyan-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/circle-darkgray-small.png b/rtdata/images/themed/png/dark/circle-darkgray-small.png deleted file mode 100644 index e706b1eba..000000000 Binary files a/rtdata/images/themed/png/dark/circle-darkgray-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/circle-empty-blue-small.png b/rtdata/images/themed/png/dark/circle-empty-blue-small.png deleted file mode 100644 index d53b3516e..000000000 Binary files a/rtdata/images/themed/png/dark/circle-empty-blue-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/circle-empty-darkgray-small.png b/rtdata/images/themed/png/dark/circle-empty-darkgray-small.png deleted file mode 100644 index 4f0f0f4c7..000000000 Binary files a/rtdata/images/themed/png/dark/circle-empty-darkgray-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/circle-empty-gray-small.png b/rtdata/images/themed/png/dark/circle-empty-gray-small.png deleted file mode 100644 index b3a57c83b..000000000 Binary files a/rtdata/images/themed/png/dark/circle-empty-gray-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/circle-empty-green-small.png b/rtdata/images/themed/png/dark/circle-empty-green-small.png deleted file mode 100644 index 3b1444d37..000000000 Binary files a/rtdata/images/themed/png/dark/circle-empty-green-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/circle-empty-purple-small.png b/rtdata/images/themed/png/dark/circle-empty-purple-small.png deleted file mode 100644 index e61da8e9f..000000000 Binary files a/rtdata/images/themed/png/dark/circle-empty-purple-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/circle-empty-red-small.png b/rtdata/images/themed/png/dark/circle-empty-red-small.png deleted file mode 100644 index bf8035931..000000000 Binary files a/rtdata/images/themed/png/dark/circle-empty-red-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/circle-empty-yellow-small.png b/rtdata/images/themed/png/dark/circle-empty-yellow-small.png deleted file mode 100644 index 9a3ca9bd8..000000000 Binary files a/rtdata/images/themed/png/dark/circle-empty-yellow-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/circle-gray-blue-small.png b/rtdata/images/themed/png/dark/circle-gray-blue-small.png deleted file mode 100644 index 01d5da881..000000000 Binary files a/rtdata/images/themed/png/dark/circle-gray-blue-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/circle-gray-green-small.png b/rtdata/images/themed/png/dark/circle-gray-green-small.png deleted file mode 100644 index 2290b708f..000000000 Binary files a/rtdata/images/themed/png/dark/circle-gray-green-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/circle-gray-red-small.png b/rtdata/images/themed/png/dark/circle-gray-red-small.png deleted file mode 100644 index 29afda33b..000000000 Binary files a/rtdata/images/themed/png/dark/circle-gray-red-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/circle-gray-small.png b/rtdata/images/themed/png/dark/circle-gray-small.png deleted file mode 100644 index 18ad6330a..000000000 Binary files a/rtdata/images/themed/png/dark/circle-gray-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/circle-green-blue-small.png b/rtdata/images/themed/png/dark/circle-green-blue-small.png deleted file mode 100644 index 1d6e60252..000000000 Binary files a/rtdata/images/themed/png/dark/circle-green-blue-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/circle-green-red-small.png b/rtdata/images/themed/png/dark/circle-green-red-small.png deleted file mode 100644 index 96f86b1b9..000000000 Binary files a/rtdata/images/themed/png/dark/circle-green-red-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/circle-green-small.png b/rtdata/images/themed/png/dark/circle-green-small.png deleted file mode 100644 index 88270e0cb..000000000 Binary files a/rtdata/images/themed/png/dark/circle-green-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/circle-magenta-small.png b/rtdata/images/themed/png/dark/circle-magenta-small.png deleted file mode 100644 index cce26e1f2..000000000 Binary files a/rtdata/images/themed/png/dark/circle-magenta-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/circle-orange-small.png b/rtdata/images/themed/png/dark/circle-orange-small.png deleted file mode 100644 index 5894f0987..000000000 Binary files a/rtdata/images/themed/png/dark/circle-orange-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/circle-purple-small.png b/rtdata/images/themed/png/dark/circle-purple-small.png deleted file mode 100644 index 9fe4eb0d6..000000000 Binary files a/rtdata/images/themed/png/dark/circle-purple-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/circle-red-blue-small.png b/rtdata/images/themed/png/dark/circle-red-blue-small.png deleted file mode 100644 index e70ef22f6..000000000 Binary files a/rtdata/images/themed/png/dark/circle-red-blue-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/circle-red-cyan-small.png b/rtdata/images/themed/png/dark/circle-red-cyan-small.png deleted file mode 100644 index 92b03b953..000000000 Binary files a/rtdata/images/themed/png/dark/circle-red-cyan-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/circle-red-green-small.png b/rtdata/images/themed/png/dark/circle-red-green-small.png deleted file mode 100644 index 4572e019f..000000000 Binary files a/rtdata/images/themed/png/dark/circle-red-green-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/circle-red-small.png b/rtdata/images/themed/png/dark/circle-red-small.png deleted file mode 100644 index a8c9cecec..000000000 Binary files a/rtdata/images/themed/png/dark/circle-red-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/circle-white-small.png b/rtdata/images/themed/png/dark/circle-white-small.png deleted file mode 100644 index acf4f8b76..000000000 Binary files a/rtdata/images/themed/png/dark/circle-white-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/circle-yellow-blue-small.png b/rtdata/images/themed/png/dark/circle-yellow-blue-small.png deleted file mode 100644 index 1f7aec9f2..000000000 Binary files a/rtdata/images/themed/png/dark/circle-yellow-blue-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/circle-yellow-small.png b/rtdata/images/themed/png/dark/circle-yellow-small.png deleted file mode 100644 index 1c5678ac2..000000000 Binary files a/rtdata/images/themed/png/dark/circle-yellow-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/color-circles.png b/rtdata/images/themed/png/dark/color-circles.png deleted file mode 100644 index f4b974b13..000000000 Binary files a/rtdata/images/themed/png/dark/color-circles.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/color-picker-add-hicontrast.png b/rtdata/images/themed/png/dark/color-picker-add-hicontrast.png deleted file mode 100644 index 5dcdacf1f..000000000 Binary files a/rtdata/images/themed/png/dark/color-picker-add-hicontrast.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/color-picker-add.png b/rtdata/images/themed/png/dark/color-picker-add.png deleted file mode 100644 index fc4b040e2..000000000 Binary files a/rtdata/images/themed/png/dark/color-picker-add.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/color-picker-bars.png b/rtdata/images/themed/png/dark/color-picker-bars.png deleted file mode 100644 index 66e749864..000000000 Binary files a/rtdata/images/themed/png/dark/color-picker-bars.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/color-picker-hicontrast.png b/rtdata/images/themed/png/dark/color-picker-hicontrast.png deleted file mode 100644 index c7bfb850b..000000000 Binary files a/rtdata/images/themed/png/dark/color-picker-hicontrast.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/color-picker-hide.png b/rtdata/images/themed/png/dark/color-picker-hide.png deleted file mode 100644 index 0bd4fafba..000000000 Binary files a/rtdata/images/themed/png/dark/color-picker-hide.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/color-picker-small.png b/rtdata/images/themed/png/dark/color-picker-small.png deleted file mode 100644 index 5976b6e11..000000000 Binary files a/rtdata/images/themed/png/dark/color-picker-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/color-picker.png b/rtdata/images/themed/png/dark/color-picker.png deleted file mode 100644 index f0174fd44..000000000 Binary files a/rtdata/images/themed/png/dark/color-picker.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/contrastmask-off.png b/rtdata/images/themed/png/dark/contrastmask-off.png deleted file mode 100644 index f551f5413..000000000 Binary files a/rtdata/images/themed/png/dark/contrastmask-off.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/contrastmask-on.png b/rtdata/images/themed/png/dark/contrastmask-on.png deleted file mode 100644 index 28ea71f52..000000000 Binary files a/rtdata/images/themed/png/dark/contrastmask-on.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/copy.png b/rtdata/images/themed/png/dark/copy.png deleted file mode 100644 index 3b51949ed..000000000 Binary files a/rtdata/images/themed/png/dark/copy.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/crop-auto-small.png b/rtdata/images/themed/png/dark/crop-auto-small.png deleted file mode 100644 index d7942888d..000000000 Binary files a/rtdata/images/themed/png/dark/crop-auto-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/crop-auto.png b/rtdata/images/themed/png/dark/crop-auto.png deleted file mode 100644 index 52cbd9e77..000000000 Binary files a/rtdata/images/themed/png/dark/crop-auto.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/crop-point-hicontrast.png b/rtdata/images/themed/png/dark/crop-point-hicontrast.png deleted file mode 100644 index 65aa29856..000000000 Binary files a/rtdata/images/themed/png/dark/crop-point-hicontrast.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/crop-small.png b/rtdata/images/themed/png/dark/crop-small.png deleted file mode 100644 index aa278c16c..000000000 Binary files a/rtdata/images/themed/png/dark/crop-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/crop.png b/rtdata/images/themed/png/dark/crop.png deleted file mode 100644 index d8a290eec..000000000 Binary files a/rtdata/images/themed/png/dark/crop.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/crossed-arrows-in.png b/rtdata/images/themed/png/dark/crossed-arrows-in.png deleted file mode 100644 index 531803679..000000000 Binary files a/rtdata/images/themed/png/dark/crossed-arrows-in.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/crossed-arrows-out.png b/rtdata/images/themed/png/dark/crossed-arrows-out.png deleted file mode 100644 index c05eb3fe8..000000000 Binary files a/rtdata/images/themed/png/dark/crossed-arrows-out.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/crosshair-adjust.png b/rtdata/images/themed/png/dark/crosshair-adjust.png deleted file mode 100644 index 8536e8f09..000000000 Binary files a/rtdata/images/themed/png/dark/crosshair-adjust.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/crosshair-hicontrast.png b/rtdata/images/themed/png/dark/crosshair-hicontrast.png deleted file mode 100644 index 078512803..000000000 Binary files a/rtdata/images/themed/png/dark/crosshair-hicontrast.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/crosshair-node-curve.png b/rtdata/images/themed/png/dark/crosshair-node-curve.png deleted file mode 100644 index 08d6e00ff..000000000 Binary files a/rtdata/images/themed/png/dark/crosshair-node-curve.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/crosshair-small.png b/rtdata/images/themed/png/dark/crosshair-small.png deleted file mode 100644 index 66db0bd42..000000000 Binary files a/rtdata/images/themed/png/dark/crosshair-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/curve-catmullrom-small.png b/rtdata/images/themed/png/dark/curve-catmullrom-small.png deleted file mode 100644 index d3fb3188d..000000000 Binary files a/rtdata/images/themed/png/dark/curve-catmullrom-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/curve-catmullrom.png b/rtdata/images/themed/png/dark/curve-catmullrom.png deleted file mode 100644 index ad8446f88..000000000 Binary files a/rtdata/images/themed/png/dark/curve-catmullrom.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/curve-controlpoints-small.png b/rtdata/images/themed/png/dark/curve-controlpoints-small.png deleted file mode 100644 index e4107e5e4..000000000 Binary files a/rtdata/images/themed/png/dark/curve-controlpoints-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/curve-controlpoints.png b/rtdata/images/themed/png/dark/curve-controlpoints.png deleted file mode 100644 index e85d1a214..000000000 Binary files a/rtdata/images/themed/png/dark/curve-controlpoints.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/curve-flat-small.png b/rtdata/images/themed/png/dark/curve-flat-small.png deleted file mode 100644 index 61893e320..000000000 Binary files a/rtdata/images/themed/png/dark/curve-flat-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/curve-flat.png b/rtdata/images/themed/png/dark/curve-flat.png deleted file mode 100644 index 7621dd8a0..000000000 Binary files a/rtdata/images/themed/png/dark/curve-flat.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/curve-linear-small.png b/rtdata/images/themed/png/dark/curve-linear-small.png deleted file mode 100644 index 723d29e93..000000000 Binary files a/rtdata/images/themed/png/dark/curve-linear-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/curve-linear.png b/rtdata/images/themed/png/dark/curve-linear.png deleted file mode 100644 index 60a8b3d73..000000000 Binary files a/rtdata/images/themed/png/dark/curve-linear.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/curve-nurbs-small.png b/rtdata/images/themed/png/dark/curve-nurbs-small.png deleted file mode 100644 index 0ba221d92..000000000 Binary files a/rtdata/images/themed/png/dark/curve-nurbs-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/curve-nurbs.png b/rtdata/images/themed/png/dark/curve-nurbs.png deleted file mode 100644 index 8d9425a0b..000000000 Binary files a/rtdata/images/themed/png/dark/curve-nurbs.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/curve-parametric-small.png b/rtdata/images/themed/png/dark/curve-parametric-small.png deleted file mode 100644 index 237b76125..000000000 Binary files a/rtdata/images/themed/png/dark/curve-parametric-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/curve-parametric.png b/rtdata/images/themed/png/dark/curve-parametric.png deleted file mode 100644 index 97f3ac96b..000000000 Binary files a/rtdata/images/themed/png/dark/curve-parametric.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/curve-spline-small.png b/rtdata/images/themed/png/dark/curve-spline-small.png deleted file mode 100644 index 763beda56..000000000 Binary files a/rtdata/images/themed/png/dark/curve-spline-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/curve-spline.png b/rtdata/images/themed/png/dark/curve-spline.png deleted file mode 100644 index c86105d46..000000000 Binary files a/rtdata/images/themed/png/dark/curve-spline.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/detail.png b/rtdata/images/themed/png/dark/detail.png deleted file mode 100644 index 73ee6a9f0..000000000 Binary files a/rtdata/images/themed/png/dark/detail.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/device-floppy.png b/rtdata/images/themed/png/dark/device-floppy.png deleted file mode 100644 index 939a6d63e..000000000 Binary files a/rtdata/images/themed/png/dark/device-floppy.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/device-hdd.png b/rtdata/images/themed/png/dark/device-hdd.png deleted file mode 100644 index 92ddc0e01..000000000 Binary files a/rtdata/images/themed/png/dark/device-hdd.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/device-network.png b/rtdata/images/themed/png/dark/device-network.png deleted file mode 100644 index 4aa2516ef..000000000 Binary files a/rtdata/images/themed/png/dark/device-network.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/device-optical.png b/rtdata/images/themed/png/dark/device-optical.png deleted file mode 100644 index e5cd69a02..000000000 Binary files a/rtdata/images/themed/png/dark/device-optical.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/device-usb.png b/rtdata/images/themed/png/dark/device-usb.png deleted file mode 100644 index a19b591e6..000000000 Binary files a/rtdata/images/themed/png/dark/device-usb.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/distortion-auto-small.png b/rtdata/images/themed/png/dark/distortion-auto-small.png deleted file mode 100644 index e002a4ae7..000000000 Binary files a/rtdata/images/themed/png/dark/distortion-auto-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/distortion-auto.png b/rtdata/images/themed/png/dark/distortion-auto.png deleted file mode 100644 index 28c89da36..000000000 Binary files a/rtdata/images/themed/png/dark/distortion-auto.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/distortion-barrel-small.png b/rtdata/images/themed/png/dark/distortion-barrel-small.png deleted file mode 100644 index 531fd93d9..000000000 Binary files a/rtdata/images/themed/png/dark/distortion-barrel-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/distortion-barrel.png b/rtdata/images/themed/png/dark/distortion-barrel.png deleted file mode 100644 index 44f312dc9..000000000 Binary files a/rtdata/images/themed/png/dark/distortion-barrel.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/distortion-pincushion-small.png b/rtdata/images/themed/png/dark/distortion-pincushion-small.png deleted file mode 100644 index c33205d78..000000000 Binary files a/rtdata/images/themed/png/dark/distortion-pincushion-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/distortion-pincushion.png b/rtdata/images/themed/png/dark/distortion-pincushion.png deleted file mode 100644 index 219dc6d37..000000000 Binary files a/rtdata/images/themed/png/dark/distortion-pincushion.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/edit-point.png b/rtdata/images/themed/png/dark/edit-point.png deleted file mode 100644 index 8ead1ea66..000000000 Binary files a/rtdata/images/themed/png/dark/edit-point.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/equilizer-narrow.png b/rtdata/images/themed/png/dark/equilizer-narrow.png deleted file mode 100644 index 6ee072ae5..000000000 Binary files a/rtdata/images/themed/png/dark/equilizer-narrow.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/equilizer-wide.png b/rtdata/images/themed/png/dark/equilizer-wide.png deleted file mode 100644 index 37c07c605..000000000 Binary files a/rtdata/images/themed/png/dark/equilizer-wide.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/expander-closed-small.png b/rtdata/images/themed/png/dark/expander-closed-small.png deleted file mode 100644 index b59480cd5..000000000 Binary files a/rtdata/images/themed/png/dark/expander-closed-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/expander-open-small.png b/rtdata/images/themed/png/dark/expander-open-small.png deleted file mode 100644 index 15b74149a..000000000 Binary files a/rtdata/images/themed/png/dark/expander-open-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/exposure.png b/rtdata/images/themed/png/dark/exposure.png deleted file mode 100644 index f7cc6e155..000000000 Binary files a/rtdata/images/themed/png/dark/exposure.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/filetype-hdr.png b/rtdata/images/themed/png/dark/filetype-hdr.png deleted file mode 100644 index a333858d5..000000000 Binary files a/rtdata/images/themed/png/dark/filetype-hdr.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/filetype-ps.png b/rtdata/images/themed/png/dark/filetype-ps.png deleted file mode 100644 index 414530cdd..000000000 Binary files a/rtdata/images/themed/png/dark/filetype-ps.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/filter-clear.png b/rtdata/images/themed/png/dark/filter-clear.png deleted file mode 100644 index acb729f11..000000000 Binary files a/rtdata/images/themed/png/dark/filter-clear.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/filter-original.png b/rtdata/images/themed/png/dark/filter-original.png deleted file mode 100644 index 9f538fab4..000000000 Binary files a/rtdata/images/themed/png/dark/filter-original.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/filter-original2.png b/rtdata/images/themed/png/dark/filter-original2.png deleted file mode 100644 index 7617380b2..000000000 Binary files a/rtdata/images/themed/png/dark/filter-original2.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/filter.png b/rtdata/images/themed/png/dark/filter.png deleted file mode 100644 index af0060c9a..000000000 Binary files a/rtdata/images/themed/png/dark/filter.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/flip-horizontal.png b/rtdata/images/themed/png/dark/flip-horizontal.png deleted file mode 100644 index fe53cefe7..000000000 Binary files a/rtdata/images/themed/png/dark/flip-horizontal.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/flip-vertical.png b/rtdata/images/themed/png/dark/flip-vertical.png deleted file mode 100644 index 85e7ccd02..000000000 Binary files a/rtdata/images/themed/png/dark/flip-vertical.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/focusscreen-off.png b/rtdata/images/themed/png/dark/focusscreen-off.png deleted file mode 100644 index 5ee597b3b..000000000 Binary files a/rtdata/images/themed/png/dark/focusscreen-off.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/focusscreen-on.png b/rtdata/images/themed/png/dark/focusscreen-on.png deleted file mode 100644 index f9c418b92..000000000 Binary files a/rtdata/images/themed/png/dark/focusscreen-on.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/folder-closed-home-small.png b/rtdata/images/themed/png/dark/folder-closed-home-small.png deleted file mode 100644 index 06aeea67a..000000000 Binary files a/rtdata/images/themed/png/dark/folder-closed-home-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/folder-closed-home.png b/rtdata/images/themed/png/dark/folder-closed-home.png deleted file mode 100644 index 88f801d24..000000000 Binary files a/rtdata/images/themed/png/dark/folder-closed-home.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/folder-closed-recent-small.png b/rtdata/images/themed/png/dark/folder-closed-recent-small.png deleted file mode 100644 index fdf1696b3..000000000 Binary files a/rtdata/images/themed/png/dark/folder-closed-recent-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/folder-closed-recent.png b/rtdata/images/themed/png/dark/folder-closed-recent.png deleted file mode 100644 index fe23eea9f..000000000 Binary files a/rtdata/images/themed/png/dark/folder-closed-recent.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/folder-closed-small.png b/rtdata/images/themed/png/dark/folder-closed-small.png deleted file mode 100644 index de543f67f..000000000 Binary files a/rtdata/images/themed/png/dark/folder-closed-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/folder-closed.png b/rtdata/images/themed/png/dark/folder-closed.png deleted file mode 100644 index 2ec2d9717..000000000 Binary files a/rtdata/images/themed/png/dark/folder-closed.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/folder-open-recent-small.png b/rtdata/images/themed/png/dark/folder-open-recent-small.png deleted file mode 100644 index 3fac2f496..000000000 Binary files a/rtdata/images/themed/png/dark/folder-open-recent-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/folder-open-recent.png b/rtdata/images/themed/png/dark/folder-open-recent.png deleted file mode 100644 index acf421774..000000000 Binary files a/rtdata/images/themed/png/dark/folder-open-recent.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/folder-open-small.png b/rtdata/images/themed/png/dark/folder-open-small.png deleted file mode 100644 index 56eca1923..000000000 Binary files a/rtdata/images/themed/png/dark/folder-open-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/folder-open.png b/rtdata/images/themed/png/dark/folder-open.png deleted file mode 100644 index df99ec1a2..000000000 Binary files a/rtdata/images/themed/png/dark/folder-open.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/fullscreen-enter.png b/rtdata/images/themed/png/dark/fullscreen-enter.png deleted file mode 100644 index 2986358eb..000000000 Binary files a/rtdata/images/themed/png/dark/fullscreen-enter.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/fullscreen-leave.png b/rtdata/images/themed/png/dark/fullscreen-leave.png deleted file mode 100644 index 5844f0e85..000000000 Binary files a/rtdata/images/themed/png/dark/fullscreen-leave.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/gamut-hist.png b/rtdata/images/themed/png/dark/gamut-hist.png deleted file mode 100644 index 346ae6225..000000000 Binary files a/rtdata/images/themed/png/dark/gamut-hist.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/gamut-plus.png b/rtdata/images/themed/png/dark/gamut-plus.png deleted file mode 100644 index a83f5e603..000000000 Binary files a/rtdata/images/themed/png/dark/gamut-plus.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/gamut-softproof.png b/rtdata/images/themed/png/dark/gamut-softproof.png deleted file mode 100644 index b130cc275..000000000 Binary files a/rtdata/images/themed/png/dark/gamut-softproof.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/gamut-warning.png b/rtdata/images/themed/png/dark/gamut-warning.png deleted file mode 100644 index cf09ff17d..000000000 Binary files a/rtdata/images/themed/png/dark/gamut-warning.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/gamut_srgb_prophoto_xy.png b/rtdata/images/themed/png/dark/gamut_srgb_prophoto_xy.png deleted file mode 100644 index 8e131b1dd..000000000 Binary files a/rtdata/images/themed/png/dark/gamut_srgb_prophoto_xy.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/gears-pause.png b/rtdata/images/themed/png/dark/gears-pause.png deleted file mode 100644 index e9cb6a535..000000000 Binary files a/rtdata/images/themed/png/dark/gears-pause.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/gears-play.png b/rtdata/images/themed/png/dark/gears-play.png deleted file mode 100644 index 917130261..000000000 Binary files a/rtdata/images/themed/png/dark/gears-play.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/gears-small.png b/rtdata/images/themed/png/dark/gears-small.png deleted file mode 100644 index 70186dd18..000000000 Binary files a/rtdata/images/themed/png/dark/gears-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/gears.png b/rtdata/images/themed/png/dark/gears.png deleted file mode 100644 index e21456d9f..000000000 Binary files a/rtdata/images/themed/png/dark/gears.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/goto-end-small.png b/rtdata/images/themed/png/dark/goto-end-small.png deleted file mode 100644 index 13f626635..000000000 Binary files a/rtdata/images/themed/png/dark/goto-end-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/goto-start-small.png b/rtdata/images/themed/png/dark/goto-start-small.png deleted file mode 100644 index 70cc10bf4..000000000 Binary files a/rtdata/images/themed/png/dark/goto-start-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/hand-closed-hicontrast.png b/rtdata/images/themed/png/dark/hand-closed-hicontrast.png deleted file mode 100644 index 590d95096..000000000 Binary files a/rtdata/images/themed/png/dark/hand-closed-hicontrast.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/hand-open-hicontrast.png b/rtdata/images/themed/png/dark/hand-open-hicontrast.png deleted file mode 100644 index 2ee26e375..000000000 Binary files a/rtdata/images/themed/png/dark/hand-open-hicontrast.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/hand-open.png b/rtdata/images/themed/png/dark/hand-open.png deleted file mode 100644 index 85fcaaacc..000000000 Binary files a/rtdata/images/themed/png/dark/hand-open.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/histogram-bar-off-small.png b/rtdata/images/themed/png/dark/histogram-bar-off-small.png deleted file mode 100644 index 5c9c21e72..000000000 Binary files a/rtdata/images/themed/png/dark/histogram-bar-off-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/histogram-bar-on-small.png b/rtdata/images/themed/png/dark/histogram-bar-on-small.png deleted file mode 100644 index f8a5bddf6..000000000 Binary files a/rtdata/images/themed/png/dark/histogram-bar-on-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/histogram-bayer-off-small.png b/rtdata/images/themed/png/dark/histogram-bayer-off-small.png deleted file mode 100644 index af1369145..000000000 Binary files a/rtdata/images/themed/png/dark/histogram-bayer-off-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/histogram-bayer-on-small.png b/rtdata/images/themed/png/dark/histogram-bayer-on-small.png deleted file mode 100644 index 44e23b51b..000000000 Binary files a/rtdata/images/themed/png/dark/histogram-bayer-on-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/histogram-blue-off-small.png b/rtdata/images/themed/png/dark/histogram-blue-off-small.png deleted file mode 100644 index 8b368ed63..000000000 Binary files a/rtdata/images/themed/png/dark/histogram-blue-off-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/histogram-blue-on-small.png b/rtdata/images/themed/png/dark/histogram-blue-on-small.png deleted file mode 100644 index 537153043..000000000 Binary files a/rtdata/images/themed/png/dark/histogram-blue-on-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/histogram-gold-off-small.png b/rtdata/images/themed/png/dark/histogram-gold-off-small.png deleted file mode 100644 index 4272c3ff7..000000000 Binary files a/rtdata/images/themed/png/dark/histogram-gold-off-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/histogram-gold-on-small.png b/rtdata/images/themed/png/dark/histogram-gold-on-small.png deleted file mode 100644 index 8f32203fd..000000000 Binary files a/rtdata/images/themed/png/dark/histogram-gold-on-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/histogram-green-off-small.png b/rtdata/images/themed/png/dark/histogram-green-off-small.png deleted file mode 100644 index 395fcac9e..000000000 Binary files a/rtdata/images/themed/png/dark/histogram-green-off-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/histogram-green-on-small.png b/rtdata/images/themed/png/dark/histogram-green-on-small.png deleted file mode 100644 index db3f89ef5..000000000 Binary files a/rtdata/images/themed/png/dark/histogram-green-on-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/histogram-mode-linear-small.png b/rtdata/images/themed/png/dark/histogram-mode-linear-small.png deleted file mode 100644 index 507be4c3e..000000000 Binary files a/rtdata/images/themed/png/dark/histogram-mode-linear-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/histogram-mode-logx-small.png b/rtdata/images/themed/png/dark/histogram-mode-logx-small.png deleted file mode 100644 index 2a0b7cc6a..000000000 Binary files a/rtdata/images/themed/png/dark/histogram-mode-logx-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/histogram-mode-logxy-small.png b/rtdata/images/themed/png/dark/histogram-mode-logxy-small.png deleted file mode 100644 index 23bf705ac..000000000 Binary files a/rtdata/images/themed/png/dark/histogram-mode-logxy-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/histogram-red-off-small.png b/rtdata/images/themed/png/dark/histogram-red-off-small.png deleted file mode 100644 index 7d5ea5352..000000000 Binary files a/rtdata/images/themed/png/dark/histogram-red-off-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/histogram-red-on-small.png b/rtdata/images/themed/png/dark/histogram-red-on-small.png deleted file mode 100644 index deee136a2..000000000 Binary files a/rtdata/images/themed/png/dark/histogram-red-on-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/histogram-silver-off-small.png b/rtdata/images/themed/png/dark/histogram-silver-off-small.png deleted file mode 100644 index d88e879bc..000000000 Binary files a/rtdata/images/themed/png/dark/histogram-silver-off-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/histogram-silver-on-small.png b/rtdata/images/themed/png/dark/histogram-silver-on-small.png deleted file mode 100644 index bdef06144..000000000 Binary files a/rtdata/images/themed/png/dark/histogram-silver-on-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/info.png b/rtdata/images/themed/png/dark/info.png deleted file mode 100644 index 4d7ad53bb..000000000 Binary files a/rtdata/images/themed/png/dark/info.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/intent-absolute.png b/rtdata/images/themed/png/dark/intent-absolute.png deleted file mode 100644 index 14cc9f44b..000000000 Binary files a/rtdata/images/themed/png/dark/intent-absolute.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/intent-perceptual.png b/rtdata/images/themed/png/dark/intent-perceptual.png deleted file mode 100644 index 44507d85f..000000000 Binary files a/rtdata/images/themed/png/dark/intent-perceptual.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/intent-relative.png b/rtdata/images/themed/png/dark/intent-relative.png deleted file mode 100644 index 895c335c1..000000000 Binary files a/rtdata/images/themed/png/dark/intent-relative.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/intent-saturation.png b/rtdata/images/themed/png/dark/intent-saturation.png deleted file mode 100644 index fb33221e4..000000000 Binary files a/rtdata/images/themed/png/dark/intent-saturation.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/magnifier-1to1-small.png b/rtdata/images/themed/png/dark/magnifier-1to1-small.png deleted file mode 100644 index b68d5d975..000000000 Binary files a/rtdata/images/themed/png/dark/magnifier-1to1-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/magnifier-1to1.png b/rtdata/images/themed/png/dark/magnifier-1to1.png deleted file mode 100644 index b111f5cb6..000000000 Binary files a/rtdata/images/themed/png/dark/magnifier-1to1.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/magnifier-crop.png b/rtdata/images/themed/png/dark/magnifier-crop.png deleted file mode 100644 index 1302ac7f9..000000000 Binary files a/rtdata/images/themed/png/dark/magnifier-crop.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/magnifier-fit.png b/rtdata/images/themed/png/dark/magnifier-fit.png deleted file mode 100644 index d3c238338..000000000 Binary files a/rtdata/images/themed/png/dark/magnifier-fit.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/magnifier-minus-small.png b/rtdata/images/themed/png/dark/magnifier-minus-small.png deleted file mode 100644 index dd1b65589..000000000 Binary files a/rtdata/images/themed/png/dark/magnifier-minus-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/magnifier-minus.png b/rtdata/images/themed/png/dark/magnifier-minus.png deleted file mode 100644 index 1f60a292a..000000000 Binary files a/rtdata/images/themed/png/dark/magnifier-minus.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/magnifier-plus-small.png b/rtdata/images/themed/png/dark/magnifier-plus-small.png deleted file mode 100644 index 532f9c426..000000000 Binary files a/rtdata/images/themed/png/dark/magnifier-plus-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/magnifier-plus.png b/rtdata/images/themed/png/dark/magnifier-plus.png deleted file mode 100644 index b8d6a2a7a..000000000 Binary files a/rtdata/images/themed/png/dark/magnifier-plus.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/magnifier.png b/rtdata/images/themed/png/dark/magnifier.png deleted file mode 100644 index 6ae59fd55..000000000 Binary files a/rtdata/images/themed/png/dark/magnifier.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/metadata.png b/rtdata/images/themed/png/dark/metadata.png deleted file mode 100644 index 48fccde79..000000000 Binary files a/rtdata/images/themed/png/dark/metadata.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/node-move-nw-se-hicontrast.png b/rtdata/images/themed/png/dark/node-move-nw-se-hicontrast.png deleted file mode 100644 index b802c5849..000000000 Binary files a/rtdata/images/themed/png/dark/node-move-nw-se-hicontrast.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/node-move-sw-ne-hicontrast.png b/rtdata/images/themed/png/dark/node-move-sw-ne-hicontrast.png deleted file mode 100644 index 2e51e88a3..000000000 Binary files a/rtdata/images/themed/png/dark/node-move-sw-ne-hicontrast.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/node-move-x-hicontrast.png b/rtdata/images/themed/png/dark/node-move-x-hicontrast.png deleted file mode 100644 index 1cc871dbb..000000000 Binary files a/rtdata/images/themed/png/dark/node-move-x-hicontrast.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/node-move-xy-hicontrast.png b/rtdata/images/themed/png/dark/node-move-xy-hicontrast.png deleted file mode 100644 index 8b843958d..000000000 Binary files a/rtdata/images/themed/png/dark/node-move-xy-hicontrast.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/node-move-y-hicontrast.png b/rtdata/images/themed/png/dark/node-move-y-hicontrast.png deleted file mode 100644 index f80690851..000000000 Binary files a/rtdata/images/themed/png/dark/node-move-y-hicontrast.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/one-to-one-small.png b/rtdata/images/themed/png/dark/one-to-one-small.png deleted file mode 100644 index 50cda2db5..000000000 Binary files a/rtdata/images/themed/png/dark/one-to-one-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/ornament1.png b/rtdata/images/themed/png/dark/ornament1.png deleted file mode 100644 index 2acdd19e8..000000000 Binary files a/rtdata/images/themed/png/dark/ornament1.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/padlock-locked-small.png b/rtdata/images/themed/png/dark/padlock-locked-small.png deleted file mode 100644 index 8f7c12169..000000000 Binary files a/rtdata/images/themed/png/dark/padlock-locked-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/padlock-unlocked-small.png b/rtdata/images/themed/png/dark/padlock-unlocked-small.png deleted file mode 100644 index ad27326c7..000000000 Binary files a/rtdata/images/themed/png/dark/padlock-unlocked-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/palette-brush.png b/rtdata/images/themed/png/dark/palette-brush.png deleted file mode 100644 index 592521db0..000000000 Binary files a/rtdata/images/themed/png/dark/palette-brush.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/panel-to-bottom.png b/rtdata/images/themed/png/dark/panel-to-bottom.png deleted file mode 100644 index a8ed862f1..000000000 Binary files a/rtdata/images/themed/png/dark/panel-to-bottom.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/panel-to-left.png b/rtdata/images/themed/png/dark/panel-to-left.png deleted file mode 100644 index 51eb8b845..000000000 Binary files a/rtdata/images/themed/png/dark/panel-to-left.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/panel-to-right.png b/rtdata/images/themed/png/dark/panel-to-right.png deleted file mode 100644 index 372607970..000000000 Binary files a/rtdata/images/themed/png/dark/panel-to-right.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/panel-to-top.png b/rtdata/images/themed/png/dark/panel-to-top.png deleted file mode 100644 index fc92ca1f6..000000000 Binary files a/rtdata/images/themed/png/dark/panel-to-top.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/paste.png b/rtdata/images/themed/png/dark/paste.png deleted file mode 100644 index fba618a86..000000000 Binary files a/rtdata/images/themed/png/dark/paste.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/perspective-horizontal-left-small.png b/rtdata/images/themed/png/dark/perspective-horizontal-left-small.png deleted file mode 100644 index 039485fe3..000000000 Binary files a/rtdata/images/themed/png/dark/perspective-horizontal-left-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/perspective-horizontal-left.png b/rtdata/images/themed/png/dark/perspective-horizontal-left.png deleted file mode 100644 index b2b169840..000000000 Binary files a/rtdata/images/themed/png/dark/perspective-horizontal-left.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/perspective-horizontal-right-small.png b/rtdata/images/themed/png/dark/perspective-horizontal-right-small.png deleted file mode 100644 index a917cf458..000000000 Binary files a/rtdata/images/themed/png/dark/perspective-horizontal-right-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/perspective-horizontal-right.png b/rtdata/images/themed/png/dark/perspective-horizontal-right.png deleted file mode 100644 index 6ab911949..000000000 Binary files a/rtdata/images/themed/png/dark/perspective-horizontal-right.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/perspective-vertical-bottom-small.png b/rtdata/images/themed/png/dark/perspective-vertical-bottom-small.png deleted file mode 100644 index f45a38c3e..000000000 Binary files a/rtdata/images/themed/png/dark/perspective-vertical-bottom-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/perspective-vertical-bottom.png b/rtdata/images/themed/png/dark/perspective-vertical-bottom.png deleted file mode 100644 index 0e508882b..000000000 Binary files a/rtdata/images/themed/png/dark/perspective-vertical-bottom.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/perspective-vertical-top-small.png b/rtdata/images/themed/png/dark/perspective-vertical-top-small.png deleted file mode 100644 index ab96d5596..000000000 Binary files a/rtdata/images/themed/png/dark/perspective-vertical-top-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/perspective-vertical-top.png b/rtdata/images/themed/png/dark/perspective-vertical-top.png deleted file mode 100644 index 6084254a5..000000000 Binary files a/rtdata/images/themed/png/dark/perspective-vertical-top.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/power-inconsistent-small.png b/rtdata/images/themed/png/dark/power-inconsistent-small.png deleted file mode 100644 index 75f9c7a58..000000000 Binary files a/rtdata/images/themed/png/dark/power-inconsistent-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/power-off-small.png b/rtdata/images/themed/png/dark/power-off-small.png deleted file mode 100644 index 9b3118c50..000000000 Binary files a/rtdata/images/themed/png/dark/power-off-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/power-on-small.png b/rtdata/images/themed/png/dark/power-on-small.png deleted file mode 100644 index c54e0d50e..000000000 Binary files a/rtdata/images/themed/png/dark/power-on-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/preferences.png b/rtdata/images/themed/png/dark/preferences.png deleted file mode 100644 index b88c501e5..000000000 Binary files a/rtdata/images/themed/png/dark/preferences.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/profile-filled.png b/rtdata/images/themed/png/dark/profile-filled.png deleted file mode 100644 index e806c99f5..000000000 Binary files a/rtdata/images/themed/png/dark/profile-filled.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/profile-partial.png b/rtdata/images/themed/png/dark/profile-partial.png deleted file mode 100644 index 335a0238a..000000000 Binary files a/rtdata/images/themed/png/dark/profile-partial.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/redo-all.png b/rtdata/images/themed/png/dark/redo-all.png deleted file mode 100644 index e293010d0..000000000 Binary files a/rtdata/images/themed/png/dark/redo-all.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/redo-small.png b/rtdata/images/themed/png/dark/redo-small.png deleted file mode 100644 index 206200d6d..000000000 Binary files a/rtdata/images/themed/png/dark/redo-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/redo.png b/rtdata/images/themed/png/dark/redo.png deleted file mode 100644 index c75b63620..000000000 Binary files a/rtdata/images/themed/png/dark/redo.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/refresh-red-small.png b/rtdata/images/themed/png/dark/refresh-red-small.png deleted file mode 100644 index 296035883..000000000 Binary files a/rtdata/images/themed/png/dark/refresh-red-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/refresh-small.png b/rtdata/images/themed/png/dark/refresh-small.png deleted file mode 100644 index b8f2e67d5..000000000 Binary files a/rtdata/images/themed/png/dark/refresh-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/refresh.png b/rtdata/images/themed/png/dark/refresh.png deleted file mode 100644 index 6981fbefb..000000000 Binary files a/rtdata/images/themed/png/dark/refresh.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/remove-small.png b/rtdata/images/themed/png/dark/remove-small.png deleted file mode 100644 index 996823902..000000000 Binary files a/rtdata/images/themed/png/dark/remove-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/remove.png b/rtdata/images/themed/png/dark/remove.png deleted file mode 100644 index 8d9715ac5..000000000 Binary files a/rtdata/images/themed/png/dark/remove.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/rotate-aroundnode-hicontrast.png b/rtdata/images/themed/png/dark/rotate-aroundnode-hicontrast.png deleted file mode 100644 index d8929ac42..000000000 Binary files a/rtdata/images/themed/png/dark/rotate-aroundnode-hicontrast.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/rotate-aroundnode.png b/rtdata/images/themed/png/dark/rotate-aroundnode.png deleted file mode 100644 index 50db200a6..000000000 Binary files a/rtdata/images/themed/png/dark/rotate-aroundnode.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/rotate-left-90.png b/rtdata/images/themed/png/dark/rotate-left-90.png deleted file mode 100644 index fa238e339..000000000 Binary files a/rtdata/images/themed/png/dark/rotate-left-90.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/rotate-left-small.png b/rtdata/images/themed/png/dark/rotate-left-small.png deleted file mode 100644 index 659dc6344..000000000 Binary files a/rtdata/images/themed/png/dark/rotate-left-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/rotate-left.png b/rtdata/images/themed/png/dark/rotate-left.png deleted file mode 100644 index 739b39c0b..000000000 Binary files a/rtdata/images/themed/png/dark/rotate-left.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/rotate-right-90.png b/rtdata/images/themed/png/dark/rotate-right-90.png deleted file mode 100644 index 126232d2f..000000000 Binary files a/rtdata/images/themed/png/dark/rotate-right-90.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/rotate-right-small.png b/rtdata/images/themed/png/dark/rotate-right-small.png deleted file mode 100644 index c59152c81..000000000 Binary files a/rtdata/images/themed/png/dark/rotate-right-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/rotate-right.png b/rtdata/images/themed/png/dark/rotate-right.png deleted file mode 100644 index 8f99d9b05..000000000 Binary files a/rtdata/images/themed/png/dark/rotate-right.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/rotate-straighten-small.png b/rtdata/images/themed/png/dark/rotate-straighten-small.png deleted file mode 100644 index d57dcb7c7..000000000 Binary files a/rtdata/images/themed/png/dark/rotate-straighten-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/rotate-straighten.png b/rtdata/images/themed/png/dark/rotate-straighten.png deleted file mode 100644 index 457282758..000000000 Binary files a/rtdata/images/themed/png/dark/rotate-straighten.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/save-small.png b/rtdata/images/themed/png/dark/save-small.png deleted file mode 100644 index e4912f5d2..000000000 Binary files a/rtdata/images/themed/png/dark/save-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/save.png b/rtdata/images/themed/png/dark/save.png deleted file mode 100644 index 2d52cdaeb..000000000 Binary files a/rtdata/images/themed/png/dark/save.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/saved-no-small.png b/rtdata/images/themed/png/dark/saved-no-small.png deleted file mode 100644 index 417f27624..000000000 Binary files a/rtdata/images/themed/png/dark/saved-no-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/saved-yes-small.png b/rtdata/images/themed/png/dark/saved-yes-small.png deleted file mode 100644 index 953c7f8cc..000000000 Binary files a/rtdata/images/themed/png/dark/saved-yes-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/square-toggle-black-off-narrow.png b/rtdata/images/themed/png/dark/square-toggle-black-off-narrow.png deleted file mode 100644 index ff6adb675..000000000 Binary files a/rtdata/images/themed/png/dark/square-toggle-black-off-narrow.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/square-toggle-black-on-narrow.png b/rtdata/images/themed/png/dark/square-toggle-black-on-narrow.png deleted file mode 100644 index 5d6e35c3d..000000000 Binary files a/rtdata/images/themed/png/dark/square-toggle-black-on-narrow.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/square-toggle-blue-off-narrow.png b/rtdata/images/themed/png/dark/square-toggle-blue-off-narrow.png deleted file mode 100644 index 2a9741c0f..000000000 Binary files a/rtdata/images/themed/png/dark/square-toggle-blue-off-narrow.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/square-toggle-blue-on-narrow.png b/rtdata/images/themed/png/dark/square-toggle-blue-on-narrow.png deleted file mode 100644 index e52337d33..000000000 Binary files a/rtdata/images/themed/png/dark/square-toggle-blue-on-narrow.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/square-toggle-gray-off-narrow.png b/rtdata/images/themed/png/dark/square-toggle-gray-off-narrow.png deleted file mode 100644 index 7e009920f..000000000 Binary files a/rtdata/images/themed/png/dark/square-toggle-gray-off-narrow.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/square-toggle-gray-on-narrow.png b/rtdata/images/themed/png/dark/square-toggle-gray-on-narrow.png deleted file mode 100644 index 64289008a..000000000 Binary files a/rtdata/images/themed/png/dark/square-toggle-gray-on-narrow.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/square-toggle-green-off-narrow.png b/rtdata/images/themed/png/dark/square-toggle-green-off-narrow.png deleted file mode 100644 index f55cbb8c3..000000000 Binary files a/rtdata/images/themed/png/dark/square-toggle-green-off-narrow.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/square-toggle-green-on-narrow.png b/rtdata/images/themed/png/dark/square-toggle-green-on-narrow.png deleted file mode 100644 index 0c8b9522d..000000000 Binary files a/rtdata/images/themed/png/dark/square-toggle-green-on-narrow.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/square-toggle-luminosity-off-narrow.png b/rtdata/images/themed/png/dark/square-toggle-luminosity-off-narrow.png deleted file mode 100644 index c6dfe8410..000000000 Binary files a/rtdata/images/themed/png/dark/square-toggle-luminosity-off-narrow.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/square-toggle-luminosity-on-narrow.png b/rtdata/images/themed/png/dark/square-toggle-luminosity-on-narrow.png deleted file mode 100644 index b45b608d9..000000000 Binary files a/rtdata/images/themed/png/dark/square-toggle-luminosity-on-narrow.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/square-toggle-red-off-narrow.png b/rtdata/images/themed/png/dark/square-toggle-red-off-narrow.png deleted file mode 100644 index 99730ee4b..000000000 Binary files a/rtdata/images/themed/png/dark/square-toggle-red-off-narrow.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/square-toggle-red-on-narrow.png b/rtdata/images/themed/png/dark/square-toggle-red-on-narrow.png deleted file mode 100644 index e0b91d8b3..000000000 Binary files a/rtdata/images/themed/png/dark/square-toggle-red-on-narrow.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/square-toggle-theme-off-narrow.png b/rtdata/images/themed/png/dark/square-toggle-theme-off-narrow.png deleted file mode 100644 index 449946648..000000000 Binary files a/rtdata/images/themed/png/dark/square-toggle-theme-off-narrow.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/square-toggle-theme-on-narrow.png b/rtdata/images/themed/png/dark/square-toggle-theme-on-narrow.png deleted file mode 100644 index e59257824..000000000 Binary files a/rtdata/images/themed/png/dark/square-toggle-theme-on-narrow.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/square-toggle-white-off-narrow.png b/rtdata/images/themed/png/dark/square-toggle-white-off-narrow.png deleted file mode 100644 index b2e5e3611..000000000 Binary files a/rtdata/images/themed/png/dark/square-toggle-white-off-narrow.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/square-toggle-white-on-narrow.png b/rtdata/images/themed/png/dark/square-toggle-white-on-narrow.png deleted file mode 100644 index 7ff59d927..000000000 Binary files a/rtdata/images/themed/png/dark/square-toggle-white-on-narrow.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/star-gold-hollow-narrow.png b/rtdata/images/themed/png/dark/star-gold-hollow-narrow.png deleted file mode 100644 index b0ce704d6..000000000 Binary files a/rtdata/images/themed/png/dark/star-gold-hollow-narrow.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/star-gold-hollow-small.png b/rtdata/images/themed/png/dark/star-gold-hollow-small.png deleted file mode 100644 index 478055c2b..000000000 Binary files a/rtdata/images/themed/png/dark/star-gold-hollow-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/star-gold-narrow.png b/rtdata/images/themed/png/dark/star-gold-narrow.png deleted file mode 100644 index 32710fb9d..000000000 Binary files a/rtdata/images/themed/png/dark/star-gold-narrow.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/star-gold-small.png b/rtdata/images/themed/png/dark/star-gold-small.png deleted file mode 100644 index da02a823e..000000000 Binary files a/rtdata/images/themed/png/dark/star-gold-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/star-hollow-narrow.png b/rtdata/images/themed/png/dark/star-hollow-narrow.png deleted file mode 100644 index b9c978350..000000000 Binary files a/rtdata/images/themed/png/dark/star-hollow-narrow.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/star-hollow-small.png b/rtdata/images/themed/png/dark/star-hollow-small.png deleted file mode 100644 index b5cf648ca..000000000 Binary files a/rtdata/images/themed/png/dark/star-hollow-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/star-narrow.png b/rtdata/images/themed/png/dark/star-narrow.png deleted file mode 100644 index bdcc73bfe..000000000 Binary files a/rtdata/images/themed/png/dark/star-narrow.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/star-small.png b/rtdata/images/themed/png/dark/star-small.png deleted file mode 100644 index db895d932..000000000 Binary files a/rtdata/images/themed/png/dark/star-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/star.png b/rtdata/images/themed/png/dark/star.png deleted file mode 100644 index dcc05e7d1..000000000 Binary files a/rtdata/images/themed/png/dark/star.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/template-16.png b/rtdata/images/themed/png/dark/template-16.png deleted file mode 100644 index 1c50ead9e..000000000 Binary files a/rtdata/images/themed/png/dark/template-16.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/template-24.png b/rtdata/images/themed/png/dark/template-24.png deleted file mode 100644 index 7ab9e8c0f..000000000 Binary files a/rtdata/images/themed/png/dark/template-24.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/template-narrow.png b/rtdata/images/themed/png/dark/template-narrow.png deleted file mode 100644 index 78c374503..000000000 Binary files a/rtdata/images/themed/png/dark/template-narrow.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/tick-green-hollow-small.png b/rtdata/images/themed/png/dark/tick-green-hollow-small.png deleted file mode 100644 index 176bf5489..000000000 Binary files a/rtdata/images/themed/png/dark/tick-green-hollow-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/tick-green-hollow.png b/rtdata/images/themed/png/dark/tick-green-hollow.png deleted file mode 100644 index 7cac33dc0..000000000 Binary files a/rtdata/images/themed/png/dark/tick-green-hollow.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/tick-green-small.png b/rtdata/images/themed/png/dark/tick-green-small.png deleted file mode 100644 index 54cf5d024..000000000 Binary files a/rtdata/images/themed/png/dark/tick-green-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/tick-green.png b/rtdata/images/themed/png/dark/tick-green.png deleted file mode 100644 index 2458734b2..000000000 Binary files a/rtdata/images/themed/png/dark/tick-green.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/tick-hollow-small.png b/rtdata/images/themed/png/dark/tick-hollow-small.png deleted file mode 100644 index e5e492deb..000000000 Binary files a/rtdata/images/themed/png/dark/tick-hollow-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/tick-small.png b/rtdata/images/themed/png/dark/tick-small.png deleted file mode 100644 index 8ee5e5516..000000000 Binary files a/rtdata/images/themed/png/dark/tick-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/tick.png b/rtdata/images/themed/png/dark/tick.png deleted file mode 100644 index 5318ae4d5..000000000 Binary files a/rtdata/images/themed/png/dark/tick.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/transform.png b/rtdata/images/themed/png/dark/transform.png deleted file mode 100644 index 30cd76dd6..000000000 Binary files a/rtdata/images/themed/png/dark/transform.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/trash-delete.png b/rtdata/images/themed/png/dark/trash-delete.png deleted file mode 100644 index 1a7c084aa..000000000 Binary files a/rtdata/images/themed/png/dark/trash-delete.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/trash-empty-show.png b/rtdata/images/themed/png/dark/trash-empty-show.png deleted file mode 100644 index 983979634..000000000 Binary files a/rtdata/images/themed/png/dark/trash-empty-show.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/trash-empty.png b/rtdata/images/themed/png/dark/trash-empty.png deleted file mode 100644 index a1b92354e..000000000 Binary files a/rtdata/images/themed/png/dark/trash-empty.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/trash-full-show.png b/rtdata/images/themed/png/dark/trash-full-show.png deleted file mode 100644 index 1c1c7aa17..000000000 Binary files a/rtdata/images/themed/png/dark/trash-full-show.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/trash-full.png b/rtdata/images/themed/png/dark/trash-full.png deleted file mode 100644 index 699d2b8ac..000000000 Binary files a/rtdata/images/themed/png/dark/trash-full.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/trash-hide-deleted.png b/rtdata/images/themed/png/dark/trash-hide-deleted.png deleted file mode 100644 index ffbb9f391..000000000 Binary files a/rtdata/images/themed/png/dark/trash-hide-deleted.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/trash-remove-small.png b/rtdata/images/themed/png/dark/trash-remove-small.png deleted file mode 100644 index 75fd6493c..000000000 Binary files a/rtdata/images/themed/png/dark/trash-remove-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/trash-remove.png b/rtdata/images/themed/png/dark/trash-remove.png deleted file mode 100644 index f9dc4bde7..000000000 Binary files a/rtdata/images/themed/png/dark/trash-remove.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/trash-small.png b/rtdata/images/themed/png/dark/trash-small.png deleted file mode 100644 index 2a19f041c..000000000 Binary files a/rtdata/images/themed/png/dark/trash-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/undo-all.png b/rtdata/images/themed/png/dark/undo-all.png deleted file mode 100644 index 7f577140b..000000000 Binary files a/rtdata/images/themed/png/dark/undo-all.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/undo-small.png b/rtdata/images/themed/png/dark/undo-small.png deleted file mode 100644 index 9505829d4..000000000 Binary files a/rtdata/images/themed/png/dark/undo-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/undo.png b/rtdata/images/themed/png/dark/undo.png deleted file mode 100644 index 3e0a28d1e..000000000 Binary files a/rtdata/images/themed/png/dark/undo.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/warning-highlights.png b/rtdata/images/themed/png/dark/warning-highlights.png deleted file mode 100644 index 61ec734ca..000000000 Binary files a/rtdata/images/themed/png/dark/warning-highlights.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/warning-shadows.png b/rtdata/images/themed/png/dark/warning-shadows.png deleted file mode 100644 index c5e83dad6..000000000 Binary files a/rtdata/images/themed/png/dark/warning-shadows.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/warning.png b/rtdata/images/themed/png/dark/warning.png deleted file mode 100644 index 8bc60b95a..000000000 Binary files a/rtdata/images/themed/png/dark/warning.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/wavelets.png b/rtdata/images/themed/png/dark/wavelets.png deleted file mode 100644 index 664fa8196..000000000 Binary files a/rtdata/images/themed/png/dark/wavelets.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/wb-auto-small.png b/rtdata/images/themed/png/dark/wb-auto-small.png deleted file mode 100644 index e557048eb..000000000 Binary files a/rtdata/images/themed/png/dark/wb-auto-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/wb-auto.png b/rtdata/images/themed/png/dark/wb-auto.png deleted file mode 100644 index e2f033360..000000000 Binary files a/rtdata/images/themed/png/dark/wb-auto.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/wb-camera-small.png b/rtdata/images/themed/png/dark/wb-camera-small.png deleted file mode 100644 index 69c869445..000000000 Binary files a/rtdata/images/themed/png/dark/wb-camera-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/wb-camera.png b/rtdata/images/themed/png/dark/wb-camera.png deleted file mode 100644 index 8749579d0..000000000 Binary files a/rtdata/images/themed/png/dark/wb-camera.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/wb-cloudy-small.png b/rtdata/images/themed/png/dark/wb-cloudy-small.png deleted file mode 100644 index 175d88f1a..000000000 Binary files a/rtdata/images/themed/png/dark/wb-cloudy-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/wb-cloudy.png b/rtdata/images/themed/png/dark/wb-cloudy.png deleted file mode 100644 index 1c394b709..000000000 Binary files a/rtdata/images/themed/png/dark/wb-cloudy.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/wb-custom-small.png b/rtdata/images/themed/png/dark/wb-custom-small.png deleted file mode 100644 index 2f3fcb517..000000000 Binary files a/rtdata/images/themed/png/dark/wb-custom-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/wb-custom.png b/rtdata/images/themed/png/dark/wb-custom.png deleted file mode 100644 index db9abc03c..000000000 Binary files a/rtdata/images/themed/png/dark/wb-custom.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/wb-flash-small.png b/rtdata/images/themed/png/dark/wb-flash-small.png deleted file mode 100644 index 1bc051cd4..000000000 Binary files a/rtdata/images/themed/png/dark/wb-flash-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/wb-flash.png b/rtdata/images/themed/png/dark/wb-flash.png deleted file mode 100644 index d460a0569..000000000 Binary files a/rtdata/images/themed/png/dark/wb-flash.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/wb-fluorescent-small.png b/rtdata/images/themed/png/dark/wb-fluorescent-small.png deleted file mode 100644 index 3c7882252..000000000 Binary files a/rtdata/images/themed/png/dark/wb-fluorescent-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/wb-fluorescent.png b/rtdata/images/themed/png/dark/wb-fluorescent.png deleted file mode 100644 index c994ee9dd..000000000 Binary files a/rtdata/images/themed/png/dark/wb-fluorescent.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/wb-lamp-small.png b/rtdata/images/themed/png/dark/wb-lamp-small.png deleted file mode 100644 index ea5f790c3..000000000 Binary files a/rtdata/images/themed/png/dark/wb-lamp-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/wb-lamp.png b/rtdata/images/themed/png/dark/wb-lamp.png deleted file mode 100644 index b0d3df3e5..000000000 Binary files a/rtdata/images/themed/png/dark/wb-lamp.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/wb-led-small.png b/rtdata/images/themed/png/dark/wb-led-small.png deleted file mode 100644 index dc4385c94..000000000 Binary files a/rtdata/images/themed/png/dark/wb-led-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/wb-led.png b/rtdata/images/themed/png/dark/wb-led.png deleted file mode 100644 index dfdb25191..000000000 Binary files a/rtdata/images/themed/png/dark/wb-led.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/wb-shade-small.png b/rtdata/images/themed/png/dark/wb-shade-small.png deleted file mode 100644 index 255c021a6..000000000 Binary files a/rtdata/images/themed/png/dark/wb-shade-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/wb-shade.png b/rtdata/images/themed/png/dark/wb-shade.png deleted file mode 100644 index 2be98acf6..000000000 Binary files a/rtdata/images/themed/png/dark/wb-shade.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/wb-sun-small.png b/rtdata/images/themed/png/dark/wb-sun-small.png deleted file mode 100644 index a7de769df..000000000 Binary files a/rtdata/images/themed/png/dark/wb-sun-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/wb-sun.png b/rtdata/images/themed/png/dark/wb-sun.png deleted file mode 100644 index e65ee2a80..000000000 Binary files a/rtdata/images/themed/png/dark/wb-sun.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/wb-tungsten-small.png b/rtdata/images/themed/png/dark/wb-tungsten-small.png deleted file mode 100644 index 6f958cd59..000000000 Binary files a/rtdata/images/themed/png/dark/wb-tungsten-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/wb-tungsten.png b/rtdata/images/themed/png/dark/wb-tungsten.png deleted file mode 100644 index 2c71f66ef..000000000 Binary files a/rtdata/images/themed/png/dark/wb-tungsten.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/wb-water-small.png b/rtdata/images/themed/png/dark/wb-water-small.png deleted file mode 100644 index 2ecb58552..000000000 Binary files a/rtdata/images/themed/png/dark/wb-water-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/wb-water.png b/rtdata/images/themed/png/dark/wb-water.png deleted file mode 100644 index 7bc55c153..000000000 Binary files a/rtdata/images/themed/png/dark/wb-water.png and /dev/null differ diff --git a/rtdata/images/themed/png/dark/window-add.png b/rtdata/images/themed/png/dark/window-add.png deleted file mode 100644 index 4364b1a13..000000000 Binary files a/rtdata/images/themed/png/dark/window-add.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/add-small.png b/rtdata/images/themed/png/light/add-small.png deleted file mode 100644 index 59211ace6..000000000 Binary files a/rtdata/images/themed/png/light/add-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/add.png b/rtdata/images/themed/png/light/add.png deleted file mode 100644 index 88b1c285d..000000000 Binary files a/rtdata/images/themed/png/light/add.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/aperture.png b/rtdata/images/themed/png/light/aperture.png deleted file mode 100644 index 70e8e0be5..000000000 Binary files a/rtdata/images/themed/png/light/aperture.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/arrow-down-small.png b/rtdata/images/themed/png/light/arrow-down-small.png deleted file mode 100644 index ab76bb3cc..000000000 Binary files a/rtdata/images/themed/png/light/arrow-down-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/arrow-left-small.png b/rtdata/images/themed/png/light/arrow-left-small.png deleted file mode 100644 index 2673b7445..000000000 Binary files a/rtdata/images/themed/png/light/arrow-left-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/arrow-right-small.png b/rtdata/images/themed/png/light/arrow-right-small.png deleted file mode 100644 index 228cecd3d..000000000 Binary files a/rtdata/images/themed/png/light/arrow-right-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/arrow-up-small.png b/rtdata/images/themed/png/light/arrow-up-small.png deleted file mode 100644 index 6e8061207..000000000 Binary files a/rtdata/images/themed/png/light/arrow-up-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/arrow-updown.png b/rtdata/images/themed/png/light/arrow-updown.png deleted file mode 100644 index bb0ccc5dc..000000000 Binary files a/rtdata/images/themed/png/light/arrow-updown.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/arrow2-left.png b/rtdata/images/themed/png/light/arrow2-left.png deleted file mode 100644 index 4ac761b76..000000000 Binary files a/rtdata/images/themed/png/light/arrow2-left.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/arrow2-right.png b/rtdata/images/themed/png/light/arrow2-right.png deleted file mode 100644 index 75d150843..000000000 Binary files a/rtdata/images/themed/png/light/arrow2-right.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/atom.png b/rtdata/images/themed/png/light/atom.png deleted file mode 100644 index df3dc8bdf..000000000 Binary files a/rtdata/images/themed/png/light/atom.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/bayer.png b/rtdata/images/themed/png/light/bayer.png deleted file mode 100644 index c85ce844e..000000000 Binary files a/rtdata/images/themed/png/light/bayer.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/beforeafter.png b/rtdata/images/themed/png/light/beforeafter.png deleted file mode 100644 index fb7e7ce55..000000000 Binary files a/rtdata/images/themed/png/light/beforeafter.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/cancel-small.png b/rtdata/images/themed/png/light/cancel-small.png deleted file mode 100644 index 8c5d91145..000000000 Binary files a/rtdata/images/themed/png/light/cancel-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/cancel.png b/rtdata/images/themed/png/light/cancel.png deleted file mode 100644 index 1a48a2e44..000000000 Binary files a/rtdata/images/themed/png/light/cancel.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/circle-black-small.png b/rtdata/images/themed/png/light/circle-black-small.png deleted file mode 100644 index f18a415b6..000000000 Binary files a/rtdata/images/themed/png/light/circle-black-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/circle-blue-green-small.png b/rtdata/images/themed/png/light/circle-blue-green-small.png deleted file mode 100644 index 247931823..000000000 Binary files a/rtdata/images/themed/png/light/circle-blue-green-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/circle-blue-red-small.png b/rtdata/images/themed/png/light/circle-blue-red-small.png deleted file mode 100644 index d88a01330..000000000 Binary files a/rtdata/images/themed/png/light/circle-blue-red-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/circle-blue-small.png b/rtdata/images/themed/png/light/circle-blue-small.png deleted file mode 100644 index 2c8ff48fd..000000000 Binary files a/rtdata/images/themed/png/light/circle-blue-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/circle-blue-yellow-small.png b/rtdata/images/themed/png/light/circle-blue-yellow-small.png deleted file mode 100644 index 0585b2195..000000000 Binary files a/rtdata/images/themed/png/light/circle-blue-yellow-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/circle-cyan-red-small.png b/rtdata/images/themed/png/light/circle-cyan-red-small.png deleted file mode 100644 index ed7003161..000000000 Binary files a/rtdata/images/themed/png/light/circle-cyan-red-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/circle-cyan-small.png b/rtdata/images/themed/png/light/circle-cyan-small.png deleted file mode 100644 index 84f873a2c..000000000 Binary files a/rtdata/images/themed/png/light/circle-cyan-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/circle-darkgray-small.png b/rtdata/images/themed/png/light/circle-darkgray-small.png deleted file mode 100644 index e706b1eba..000000000 Binary files a/rtdata/images/themed/png/light/circle-darkgray-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/circle-empty-blue-small.png b/rtdata/images/themed/png/light/circle-empty-blue-small.png deleted file mode 100644 index d53b3516e..000000000 Binary files a/rtdata/images/themed/png/light/circle-empty-blue-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/circle-empty-darkgray-small.png b/rtdata/images/themed/png/light/circle-empty-darkgray-small.png deleted file mode 100644 index 4f0f0f4c7..000000000 Binary files a/rtdata/images/themed/png/light/circle-empty-darkgray-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/circle-empty-gray-small.png b/rtdata/images/themed/png/light/circle-empty-gray-small.png deleted file mode 100644 index b3a57c83b..000000000 Binary files a/rtdata/images/themed/png/light/circle-empty-gray-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/circle-empty-green-small.png b/rtdata/images/themed/png/light/circle-empty-green-small.png deleted file mode 100644 index 3b1444d37..000000000 Binary files a/rtdata/images/themed/png/light/circle-empty-green-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/circle-empty-purple-small.png b/rtdata/images/themed/png/light/circle-empty-purple-small.png deleted file mode 100644 index e61da8e9f..000000000 Binary files a/rtdata/images/themed/png/light/circle-empty-purple-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/circle-empty-red-small.png b/rtdata/images/themed/png/light/circle-empty-red-small.png deleted file mode 100644 index bf8035931..000000000 Binary files a/rtdata/images/themed/png/light/circle-empty-red-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/circle-empty-yellow-small.png b/rtdata/images/themed/png/light/circle-empty-yellow-small.png deleted file mode 100644 index 9a3ca9bd8..000000000 Binary files a/rtdata/images/themed/png/light/circle-empty-yellow-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/circle-gray-blue-small.png b/rtdata/images/themed/png/light/circle-gray-blue-small.png deleted file mode 100644 index 01d5da881..000000000 Binary files a/rtdata/images/themed/png/light/circle-gray-blue-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/circle-gray-green-small.png b/rtdata/images/themed/png/light/circle-gray-green-small.png deleted file mode 100644 index 2290b708f..000000000 Binary files a/rtdata/images/themed/png/light/circle-gray-green-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/circle-gray-red-small.png b/rtdata/images/themed/png/light/circle-gray-red-small.png deleted file mode 100644 index 29afda33b..000000000 Binary files a/rtdata/images/themed/png/light/circle-gray-red-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/circle-gray-small.png b/rtdata/images/themed/png/light/circle-gray-small.png deleted file mode 100644 index 18ad6330a..000000000 Binary files a/rtdata/images/themed/png/light/circle-gray-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/circle-green-blue-small.png b/rtdata/images/themed/png/light/circle-green-blue-small.png deleted file mode 100644 index 1d6e60252..000000000 Binary files a/rtdata/images/themed/png/light/circle-green-blue-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/circle-green-red-small.png b/rtdata/images/themed/png/light/circle-green-red-small.png deleted file mode 100644 index 96f86b1b9..000000000 Binary files a/rtdata/images/themed/png/light/circle-green-red-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/circle-green-small.png b/rtdata/images/themed/png/light/circle-green-small.png deleted file mode 100644 index 88270e0cb..000000000 Binary files a/rtdata/images/themed/png/light/circle-green-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/circle-magenta-small.png b/rtdata/images/themed/png/light/circle-magenta-small.png deleted file mode 100644 index cce26e1f2..000000000 Binary files a/rtdata/images/themed/png/light/circle-magenta-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/circle-orange-small.png b/rtdata/images/themed/png/light/circle-orange-small.png deleted file mode 100644 index 5894f0987..000000000 Binary files a/rtdata/images/themed/png/light/circle-orange-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/circle-purple-small.png b/rtdata/images/themed/png/light/circle-purple-small.png deleted file mode 100644 index 9fe4eb0d6..000000000 Binary files a/rtdata/images/themed/png/light/circle-purple-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/circle-red-blue-small.png b/rtdata/images/themed/png/light/circle-red-blue-small.png deleted file mode 100644 index e70ef22f6..000000000 Binary files a/rtdata/images/themed/png/light/circle-red-blue-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/circle-red-cyan-small.png b/rtdata/images/themed/png/light/circle-red-cyan-small.png deleted file mode 100644 index 92b03b953..000000000 Binary files a/rtdata/images/themed/png/light/circle-red-cyan-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/circle-red-green-small.png b/rtdata/images/themed/png/light/circle-red-green-small.png deleted file mode 100644 index 4572e019f..000000000 Binary files a/rtdata/images/themed/png/light/circle-red-green-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/circle-red-small.png b/rtdata/images/themed/png/light/circle-red-small.png deleted file mode 100644 index a8c9cecec..000000000 Binary files a/rtdata/images/themed/png/light/circle-red-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/circle-white-small.png b/rtdata/images/themed/png/light/circle-white-small.png deleted file mode 100644 index acf4f8b76..000000000 Binary files a/rtdata/images/themed/png/light/circle-white-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/circle-yellow-blue-small.png b/rtdata/images/themed/png/light/circle-yellow-blue-small.png deleted file mode 100644 index 1f7aec9f2..000000000 Binary files a/rtdata/images/themed/png/light/circle-yellow-blue-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/circle-yellow-small.png b/rtdata/images/themed/png/light/circle-yellow-small.png deleted file mode 100644 index 1c5678ac2..000000000 Binary files a/rtdata/images/themed/png/light/circle-yellow-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/color-circles.png b/rtdata/images/themed/png/light/color-circles.png deleted file mode 100644 index 0be8fdacc..000000000 Binary files a/rtdata/images/themed/png/light/color-circles.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/color-picker-add-hicontrast.png b/rtdata/images/themed/png/light/color-picker-add-hicontrast.png deleted file mode 100644 index 5dcdacf1f..000000000 Binary files a/rtdata/images/themed/png/light/color-picker-add-hicontrast.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/color-picker-add.png b/rtdata/images/themed/png/light/color-picker-add.png deleted file mode 100644 index 593e69b3d..000000000 Binary files a/rtdata/images/themed/png/light/color-picker-add.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/color-picker-bars.png b/rtdata/images/themed/png/light/color-picker-bars.png deleted file mode 100644 index a7a9b0f07..000000000 Binary files a/rtdata/images/themed/png/light/color-picker-bars.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/color-picker-hicontrast.png b/rtdata/images/themed/png/light/color-picker-hicontrast.png deleted file mode 100644 index c7bfb850b..000000000 Binary files a/rtdata/images/themed/png/light/color-picker-hicontrast.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/color-picker-hide.png b/rtdata/images/themed/png/light/color-picker-hide.png deleted file mode 100644 index 418b5b929..000000000 Binary files a/rtdata/images/themed/png/light/color-picker-hide.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/color-picker-small.png b/rtdata/images/themed/png/light/color-picker-small.png deleted file mode 100644 index 109f8fda4..000000000 Binary files a/rtdata/images/themed/png/light/color-picker-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/color-picker.png b/rtdata/images/themed/png/light/color-picker.png deleted file mode 100644 index 0d01785a0..000000000 Binary files a/rtdata/images/themed/png/light/color-picker.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/contrastmask-off.png b/rtdata/images/themed/png/light/contrastmask-off.png deleted file mode 100644 index b3df60148..000000000 Binary files a/rtdata/images/themed/png/light/contrastmask-off.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/contrastmask-on.png b/rtdata/images/themed/png/light/contrastmask-on.png deleted file mode 100644 index 064ed7e9b..000000000 Binary files a/rtdata/images/themed/png/light/contrastmask-on.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/copy.png b/rtdata/images/themed/png/light/copy.png deleted file mode 100644 index bd4523ea2..000000000 Binary files a/rtdata/images/themed/png/light/copy.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/crop-auto-small.png b/rtdata/images/themed/png/light/crop-auto-small.png deleted file mode 100644 index bc3de2dc2..000000000 Binary files a/rtdata/images/themed/png/light/crop-auto-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/crop-auto.png b/rtdata/images/themed/png/light/crop-auto.png deleted file mode 100644 index 5499df93f..000000000 Binary files a/rtdata/images/themed/png/light/crop-auto.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/crop-point-hicontrast.png b/rtdata/images/themed/png/light/crop-point-hicontrast.png deleted file mode 100644 index 65aa29856..000000000 Binary files a/rtdata/images/themed/png/light/crop-point-hicontrast.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/crop-small.png b/rtdata/images/themed/png/light/crop-small.png deleted file mode 100644 index 9f345a6ef..000000000 Binary files a/rtdata/images/themed/png/light/crop-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/crop.png b/rtdata/images/themed/png/light/crop.png deleted file mode 100644 index 83ef5a955..000000000 Binary files a/rtdata/images/themed/png/light/crop.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/crossed-arrows-in.png b/rtdata/images/themed/png/light/crossed-arrows-in.png deleted file mode 100644 index f10a4a058..000000000 Binary files a/rtdata/images/themed/png/light/crossed-arrows-in.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/crossed-arrows-out.png b/rtdata/images/themed/png/light/crossed-arrows-out.png deleted file mode 100644 index 410e65f3d..000000000 Binary files a/rtdata/images/themed/png/light/crossed-arrows-out.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/crosshair-adjust.png b/rtdata/images/themed/png/light/crosshair-adjust.png deleted file mode 100644 index b8b17dfa1..000000000 Binary files a/rtdata/images/themed/png/light/crosshair-adjust.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/crosshair-hicontrast.png b/rtdata/images/themed/png/light/crosshair-hicontrast.png deleted file mode 100644 index 078512803..000000000 Binary files a/rtdata/images/themed/png/light/crosshair-hicontrast.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/crosshair-node-curve.png b/rtdata/images/themed/png/light/crosshair-node-curve.png deleted file mode 100644 index 0af7379c2..000000000 Binary files a/rtdata/images/themed/png/light/crosshair-node-curve.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/crosshair-small.png b/rtdata/images/themed/png/light/crosshair-small.png deleted file mode 100644 index a898a2fdb..000000000 Binary files a/rtdata/images/themed/png/light/crosshair-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/curve-catmullrom-small.png b/rtdata/images/themed/png/light/curve-catmullrom-small.png deleted file mode 100644 index 1654d10ea..000000000 Binary files a/rtdata/images/themed/png/light/curve-catmullrom-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/curve-catmullrom.png b/rtdata/images/themed/png/light/curve-catmullrom.png deleted file mode 100644 index 16a2234ec..000000000 Binary files a/rtdata/images/themed/png/light/curve-catmullrom.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/curve-controlpoints-small.png b/rtdata/images/themed/png/light/curve-controlpoints-small.png deleted file mode 100644 index 2be1333ff..000000000 Binary files a/rtdata/images/themed/png/light/curve-controlpoints-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/curve-controlpoints.png b/rtdata/images/themed/png/light/curve-controlpoints.png deleted file mode 100644 index cdd7cdd3a..000000000 Binary files a/rtdata/images/themed/png/light/curve-controlpoints.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/curve-flat-small.png b/rtdata/images/themed/png/light/curve-flat-small.png deleted file mode 100644 index 17959e6ac..000000000 Binary files a/rtdata/images/themed/png/light/curve-flat-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/curve-flat.png b/rtdata/images/themed/png/light/curve-flat.png deleted file mode 100644 index 976281d49..000000000 Binary files a/rtdata/images/themed/png/light/curve-flat.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/curve-linear-small.png b/rtdata/images/themed/png/light/curve-linear-small.png deleted file mode 100644 index 53b07f616..000000000 Binary files a/rtdata/images/themed/png/light/curve-linear-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/curve-linear.png b/rtdata/images/themed/png/light/curve-linear.png deleted file mode 100644 index a3d9105dd..000000000 Binary files a/rtdata/images/themed/png/light/curve-linear.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/curve-nurbs-small.png b/rtdata/images/themed/png/light/curve-nurbs-small.png deleted file mode 100644 index f970852b5..000000000 Binary files a/rtdata/images/themed/png/light/curve-nurbs-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/curve-nurbs.png b/rtdata/images/themed/png/light/curve-nurbs.png deleted file mode 100644 index ad9b3eb87..000000000 Binary files a/rtdata/images/themed/png/light/curve-nurbs.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/curve-parametric-small.png b/rtdata/images/themed/png/light/curve-parametric-small.png deleted file mode 100644 index 2acba010c..000000000 Binary files a/rtdata/images/themed/png/light/curve-parametric-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/curve-parametric.png b/rtdata/images/themed/png/light/curve-parametric.png deleted file mode 100644 index a29a7529b..000000000 Binary files a/rtdata/images/themed/png/light/curve-parametric.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/curve-spline-small.png b/rtdata/images/themed/png/light/curve-spline-small.png deleted file mode 100644 index 6ea7b93c9..000000000 Binary files a/rtdata/images/themed/png/light/curve-spline-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/curve-spline.png b/rtdata/images/themed/png/light/curve-spline.png deleted file mode 100644 index c7318df5a..000000000 Binary files a/rtdata/images/themed/png/light/curve-spline.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/detail.png b/rtdata/images/themed/png/light/detail.png deleted file mode 100644 index 45ef517d0..000000000 Binary files a/rtdata/images/themed/png/light/detail.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/device-floppy.png b/rtdata/images/themed/png/light/device-floppy.png deleted file mode 100644 index bc0ec8c30..000000000 Binary files a/rtdata/images/themed/png/light/device-floppy.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/device-hdd.png b/rtdata/images/themed/png/light/device-hdd.png deleted file mode 100644 index 4477bfb21..000000000 Binary files a/rtdata/images/themed/png/light/device-hdd.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/device-network.png b/rtdata/images/themed/png/light/device-network.png deleted file mode 100644 index 3d2f69efe..000000000 Binary files a/rtdata/images/themed/png/light/device-network.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/device-optical.png b/rtdata/images/themed/png/light/device-optical.png deleted file mode 100644 index ca6c5bd32..000000000 Binary files a/rtdata/images/themed/png/light/device-optical.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/device-usb.png b/rtdata/images/themed/png/light/device-usb.png deleted file mode 100644 index 30a43f7fe..000000000 Binary files a/rtdata/images/themed/png/light/device-usb.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/distortion-auto-small.png b/rtdata/images/themed/png/light/distortion-auto-small.png deleted file mode 100644 index 385c37307..000000000 Binary files a/rtdata/images/themed/png/light/distortion-auto-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/distortion-auto.png b/rtdata/images/themed/png/light/distortion-auto.png deleted file mode 100644 index 242791d1b..000000000 Binary files a/rtdata/images/themed/png/light/distortion-auto.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/distortion-barrel-small.png b/rtdata/images/themed/png/light/distortion-barrel-small.png deleted file mode 100644 index 5ec7c232b..000000000 Binary files a/rtdata/images/themed/png/light/distortion-barrel-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/distortion-barrel.png b/rtdata/images/themed/png/light/distortion-barrel.png deleted file mode 100644 index ab04051ea..000000000 Binary files a/rtdata/images/themed/png/light/distortion-barrel.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/distortion-pincushion-small.png b/rtdata/images/themed/png/light/distortion-pincushion-small.png deleted file mode 100644 index 12bbe630d..000000000 Binary files a/rtdata/images/themed/png/light/distortion-pincushion-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/distortion-pincushion.png b/rtdata/images/themed/png/light/distortion-pincushion.png deleted file mode 100644 index a927e90c2..000000000 Binary files a/rtdata/images/themed/png/light/distortion-pincushion.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/edit-point.png b/rtdata/images/themed/png/light/edit-point.png deleted file mode 100644 index b75f3670a..000000000 Binary files a/rtdata/images/themed/png/light/edit-point.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/equilizer-narrow.png b/rtdata/images/themed/png/light/equilizer-narrow.png deleted file mode 100644 index 3e40c173c..000000000 Binary files a/rtdata/images/themed/png/light/equilizer-narrow.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/equilizer-wide.png b/rtdata/images/themed/png/light/equilizer-wide.png deleted file mode 100644 index 41b0f72f0..000000000 Binary files a/rtdata/images/themed/png/light/equilizer-wide.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/expander-closed-small.png b/rtdata/images/themed/png/light/expander-closed-small.png deleted file mode 100644 index 23fcef4a1..000000000 Binary files a/rtdata/images/themed/png/light/expander-closed-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/expander-open-small.png b/rtdata/images/themed/png/light/expander-open-small.png deleted file mode 100644 index d4ab66ab6..000000000 Binary files a/rtdata/images/themed/png/light/expander-open-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/exposure.png b/rtdata/images/themed/png/light/exposure.png deleted file mode 100644 index 1259b9a5c..000000000 Binary files a/rtdata/images/themed/png/light/exposure.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/filetype-hdr.png b/rtdata/images/themed/png/light/filetype-hdr.png deleted file mode 100644 index 7365fb560..000000000 Binary files a/rtdata/images/themed/png/light/filetype-hdr.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/filetype-ps.png b/rtdata/images/themed/png/light/filetype-ps.png deleted file mode 100644 index 982ed9736..000000000 Binary files a/rtdata/images/themed/png/light/filetype-ps.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/filter-clear.png b/rtdata/images/themed/png/light/filter-clear.png deleted file mode 100644 index f07e3a901..000000000 Binary files a/rtdata/images/themed/png/light/filter-clear.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/filter-original.png b/rtdata/images/themed/png/light/filter-original.png deleted file mode 100644 index 5de915274..000000000 Binary files a/rtdata/images/themed/png/light/filter-original.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/filter-original2.png b/rtdata/images/themed/png/light/filter-original2.png deleted file mode 100644 index c20c214aa..000000000 Binary files a/rtdata/images/themed/png/light/filter-original2.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/filter.png b/rtdata/images/themed/png/light/filter.png deleted file mode 100644 index 4a0c95916..000000000 Binary files a/rtdata/images/themed/png/light/filter.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/flip-horizontal.png b/rtdata/images/themed/png/light/flip-horizontal.png deleted file mode 100644 index 9d5993527..000000000 Binary files a/rtdata/images/themed/png/light/flip-horizontal.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/flip-vertical.png b/rtdata/images/themed/png/light/flip-vertical.png deleted file mode 100644 index 6249c98b4..000000000 Binary files a/rtdata/images/themed/png/light/flip-vertical.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/focusscreen-off.png b/rtdata/images/themed/png/light/focusscreen-off.png deleted file mode 100644 index 106ec4035..000000000 Binary files a/rtdata/images/themed/png/light/focusscreen-off.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/focusscreen-on.png b/rtdata/images/themed/png/light/focusscreen-on.png deleted file mode 100644 index f9c418b92..000000000 Binary files a/rtdata/images/themed/png/light/focusscreen-on.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/folder-closed-home-small.png b/rtdata/images/themed/png/light/folder-closed-home-small.png deleted file mode 100644 index fff07d768..000000000 Binary files a/rtdata/images/themed/png/light/folder-closed-home-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/folder-closed-home.png b/rtdata/images/themed/png/light/folder-closed-home.png deleted file mode 100644 index 27eb6d355..000000000 Binary files a/rtdata/images/themed/png/light/folder-closed-home.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/folder-closed-recent-small.png b/rtdata/images/themed/png/light/folder-closed-recent-small.png deleted file mode 100644 index 400f79a67..000000000 Binary files a/rtdata/images/themed/png/light/folder-closed-recent-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/folder-closed-recent.png b/rtdata/images/themed/png/light/folder-closed-recent.png deleted file mode 100644 index 4f3755700..000000000 Binary files a/rtdata/images/themed/png/light/folder-closed-recent.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/folder-closed-small.png b/rtdata/images/themed/png/light/folder-closed-small.png deleted file mode 100644 index 89939d9d0..000000000 Binary files a/rtdata/images/themed/png/light/folder-closed-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/folder-closed.png b/rtdata/images/themed/png/light/folder-closed.png deleted file mode 100644 index 3f14b84fc..000000000 Binary files a/rtdata/images/themed/png/light/folder-closed.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/folder-open-recent-small.png b/rtdata/images/themed/png/light/folder-open-recent-small.png deleted file mode 100644 index 48aed8e40..000000000 Binary files a/rtdata/images/themed/png/light/folder-open-recent-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/folder-open-recent.png b/rtdata/images/themed/png/light/folder-open-recent.png deleted file mode 100644 index 25eabe0d8..000000000 Binary files a/rtdata/images/themed/png/light/folder-open-recent.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/folder-open-small.png b/rtdata/images/themed/png/light/folder-open-small.png deleted file mode 100644 index 6cb4fb877..000000000 Binary files a/rtdata/images/themed/png/light/folder-open-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/folder-open.png b/rtdata/images/themed/png/light/folder-open.png deleted file mode 100644 index 0a857b1fd..000000000 Binary files a/rtdata/images/themed/png/light/folder-open.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/fullscreen-enter.png b/rtdata/images/themed/png/light/fullscreen-enter.png deleted file mode 100644 index b8f52bda8..000000000 Binary files a/rtdata/images/themed/png/light/fullscreen-enter.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/fullscreen-leave.png b/rtdata/images/themed/png/light/fullscreen-leave.png deleted file mode 100644 index 3a96de2dd..000000000 Binary files a/rtdata/images/themed/png/light/fullscreen-leave.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/gamut-hist.png b/rtdata/images/themed/png/light/gamut-hist.png deleted file mode 100644 index c1faf7b2e..000000000 Binary files a/rtdata/images/themed/png/light/gamut-hist.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/gamut-plus.png b/rtdata/images/themed/png/light/gamut-plus.png deleted file mode 100644 index c41e5a39b..000000000 Binary files a/rtdata/images/themed/png/light/gamut-plus.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/gamut-softproof.png b/rtdata/images/themed/png/light/gamut-softproof.png deleted file mode 100644 index 832b231fe..000000000 Binary files a/rtdata/images/themed/png/light/gamut-softproof.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/gamut-warning.png b/rtdata/images/themed/png/light/gamut-warning.png deleted file mode 100644 index 882a59530..000000000 Binary files a/rtdata/images/themed/png/light/gamut-warning.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/gamut_srgb_prophoto_xy.png b/rtdata/images/themed/png/light/gamut_srgb_prophoto_xy.png deleted file mode 100644 index 46e8becb9..000000000 Binary files a/rtdata/images/themed/png/light/gamut_srgb_prophoto_xy.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/gears-pause.png b/rtdata/images/themed/png/light/gears-pause.png deleted file mode 100644 index ef10159f4..000000000 Binary files a/rtdata/images/themed/png/light/gears-pause.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/gears-play.png b/rtdata/images/themed/png/light/gears-play.png deleted file mode 100644 index c7d534f55..000000000 Binary files a/rtdata/images/themed/png/light/gears-play.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/gears-small.png b/rtdata/images/themed/png/light/gears-small.png deleted file mode 100644 index 84b70358b..000000000 Binary files a/rtdata/images/themed/png/light/gears-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/gears.png b/rtdata/images/themed/png/light/gears.png deleted file mode 100644 index ff76d0cb0..000000000 Binary files a/rtdata/images/themed/png/light/gears.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/goto-end-small.png b/rtdata/images/themed/png/light/goto-end-small.png deleted file mode 100644 index 29d81c231..000000000 Binary files a/rtdata/images/themed/png/light/goto-end-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/goto-start-small.png b/rtdata/images/themed/png/light/goto-start-small.png deleted file mode 100644 index 671666740..000000000 Binary files a/rtdata/images/themed/png/light/goto-start-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/hand-closed-hicontrast.png b/rtdata/images/themed/png/light/hand-closed-hicontrast.png deleted file mode 100644 index 590d95096..000000000 Binary files a/rtdata/images/themed/png/light/hand-closed-hicontrast.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/hand-open-hicontrast.png b/rtdata/images/themed/png/light/hand-open-hicontrast.png deleted file mode 100644 index 2ee26e375..000000000 Binary files a/rtdata/images/themed/png/light/hand-open-hicontrast.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/hand-open.png b/rtdata/images/themed/png/light/hand-open.png deleted file mode 100644 index bb01eac88..000000000 Binary files a/rtdata/images/themed/png/light/hand-open.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/histogram-bar-off-small.png b/rtdata/images/themed/png/light/histogram-bar-off-small.png deleted file mode 100644 index b7f022a0a..000000000 Binary files a/rtdata/images/themed/png/light/histogram-bar-off-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/histogram-bar-on-small.png b/rtdata/images/themed/png/light/histogram-bar-on-small.png deleted file mode 100644 index e38fe436f..000000000 Binary files a/rtdata/images/themed/png/light/histogram-bar-on-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/histogram-bayer-off-small.png b/rtdata/images/themed/png/light/histogram-bayer-off-small.png deleted file mode 100644 index af1369145..000000000 Binary files a/rtdata/images/themed/png/light/histogram-bayer-off-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/histogram-bayer-on-small.png b/rtdata/images/themed/png/light/histogram-bayer-on-small.png deleted file mode 100644 index 44e23b51b..000000000 Binary files a/rtdata/images/themed/png/light/histogram-bayer-on-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/histogram-blue-off-small.png b/rtdata/images/themed/png/light/histogram-blue-off-small.png deleted file mode 100644 index 8b368ed63..000000000 Binary files a/rtdata/images/themed/png/light/histogram-blue-off-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/histogram-blue-on-small.png b/rtdata/images/themed/png/light/histogram-blue-on-small.png deleted file mode 100644 index 537153043..000000000 Binary files a/rtdata/images/themed/png/light/histogram-blue-on-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/histogram-gold-off-small.png b/rtdata/images/themed/png/light/histogram-gold-off-small.png deleted file mode 100644 index 4272c3ff7..000000000 Binary files a/rtdata/images/themed/png/light/histogram-gold-off-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/histogram-gold-on-small.png b/rtdata/images/themed/png/light/histogram-gold-on-small.png deleted file mode 100644 index 8f32203fd..000000000 Binary files a/rtdata/images/themed/png/light/histogram-gold-on-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/histogram-green-off-small.png b/rtdata/images/themed/png/light/histogram-green-off-small.png deleted file mode 100644 index 395fcac9e..000000000 Binary files a/rtdata/images/themed/png/light/histogram-green-off-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/histogram-green-on-small.png b/rtdata/images/themed/png/light/histogram-green-on-small.png deleted file mode 100644 index db3f89ef5..000000000 Binary files a/rtdata/images/themed/png/light/histogram-green-on-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/histogram-mode-linear-small.png b/rtdata/images/themed/png/light/histogram-mode-linear-small.png deleted file mode 100644 index 4eafc3c15..000000000 Binary files a/rtdata/images/themed/png/light/histogram-mode-linear-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/histogram-mode-logx-small.png b/rtdata/images/themed/png/light/histogram-mode-logx-small.png deleted file mode 100644 index 2e33b16d7..000000000 Binary files a/rtdata/images/themed/png/light/histogram-mode-logx-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/histogram-mode-logxy-small.png b/rtdata/images/themed/png/light/histogram-mode-logxy-small.png deleted file mode 100644 index 29431e3b4..000000000 Binary files a/rtdata/images/themed/png/light/histogram-mode-logxy-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/histogram-red-off-small.png b/rtdata/images/themed/png/light/histogram-red-off-small.png deleted file mode 100644 index 7d5ea5352..000000000 Binary files a/rtdata/images/themed/png/light/histogram-red-off-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/histogram-red-on-small.png b/rtdata/images/themed/png/light/histogram-red-on-small.png deleted file mode 100644 index deee136a2..000000000 Binary files a/rtdata/images/themed/png/light/histogram-red-on-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/histogram-silver-off-small.png b/rtdata/images/themed/png/light/histogram-silver-off-small.png deleted file mode 100644 index d88e879bc..000000000 Binary files a/rtdata/images/themed/png/light/histogram-silver-off-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/histogram-silver-on-small.png b/rtdata/images/themed/png/light/histogram-silver-on-small.png deleted file mode 100644 index bdef06144..000000000 Binary files a/rtdata/images/themed/png/light/histogram-silver-on-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/info.png b/rtdata/images/themed/png/light/info.png deleted file mode 100644 index 10235714f..000000000 Binary files a/rtdata/images/themed/png/light/info.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/intent-absolute.png b/rtdata/images/themed/png/light/intent-absolute.png deleted file mode 100644 index ee04d0a11..000000000 Binary files a/rtdata/images/themed/png/light/intent-absolute.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/intent-perceptual.png b/rtdata/images/themed/png/light/intent-perceptual.png deleted file mode 100644 index 1c1e0c283..000000000 Binary files a/rtdata/images/themed/png/light/intent-perceptual.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/intent-relative.png b/rtdata/images/themed/png/light/intent-relative.png deleted file mode 100644 index 4d212b6ab..000000000 Binary files a/rtdata/images/themed/png/light/intent-relative.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/intent-saturation.png b/rtdata/images/themed/png/light/intent-saturation.png deleted file mode 100644 index 26ab655dc..000000000 Binary files a/rtdata/images/themed/png/light/intent-saturation.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/magnifier-1to1-small.png b/rtdata/images/themed/png/light/magnifier-1to1-small.png deleted file mode 100644 index cfd75532a..000000000 Binary files a/rtdata/images/themed/png/light/magnifier-1to1-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/magnifier-1to1.png b/rtdata/images/themed/png/light/magnifier-1to1.png deleted file mode 100644 index b547f0944..000000000 Binary files a/rtdata/images/themed/png/light/magnifier-1to1.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/magnifier-crop.png b/rtdata/images/themed/png/light/magnifier-crop.png deleted file mode 100644 index 7f4f906f0..000000000 Binary files a/rtdata/images/themed/png/light/magnifier-crop.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/magnifier-fit.png b/rtdata/images/themed/png/light/magnifier-fit.png deleted file mode 100644 index fdc0bef5f..000000000 Binary files a/rtdata/images/themed/png/light/magnifier-fit.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/magnifier-minus-small.png b/rtdata/images/themed/png/light/magnifier-minus-small.png deleted file mode 100644 index 76b55f975..000000000 Binary files a/rtdata/images/themed/png/light/magnifier-minus-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/magnifier-minus.png b/rtdata/images/themed/png/light/magnifier-minus.png deleted file mode 100644 index 22db961c3..000000000 Binary files a/rtdata/images/themed/png/light/magnifier-minus.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/magnifier-plus-small.png b/rtdata/images/themed/png/light/magnifier-plus-small.png deleted file mode 100644 index 54d989e63..000000000 Binary files a/rtdata/images/themed/png/light/magnifier-plus-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/magnifier-plus.png b/rtdata/images/themed/png/light/magnifier-plus.png deleted file mode 100644 index e45ce8d81..000000000 Binary files a/rtdata/images/themed/png/light/magnifier-plus.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/magnifier.png b/rtdata/images/themed/png/light/magnifier.png deleted file mode 100644 index a7fbdbeda..000000000 Binary files a/rtdata/images/themed/png/light/magnifier.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/metadata.png b/rtdata/images/themed/png/light/metadata.png deleted file mode 100644 index ba114f5c1..000000000 Binary files a/rtdata/images/themed/png/light/metadata.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/node-move-nw-se-hicontrast.png b/rtdata/images/themed/png/light/node-move-nw-se-hicontrast.png deleted file mode 100644 index b802c5849..000000000 Binary files a/rtdata/images/themed/png/light/node-move-nw-se-hicontrast.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/node-move-sw-ne-hicontrast.png b/rtdata/images/themed/png/light/node-move-sw-ne-hicontrast.png deleted file mode 100644 index 2e51e88a3..000000000 Binary files a/rtdata/images/themed/png/light/node-move-sw-ne-hicontrast.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/node-move-x-hicontrast.png b/rtdata/images/themed/png/light/node-move-x-hicontrast.png deleted file mode 100644 index 1cc871dbb..000000000 Binary files a/rtdata/images/themed/png/light/node-move-x-hicontrast.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/node-move-xy-hicontrast.png b/rtdata/images/themed/png/light/node-move-xy-hicontrast.png deleted file mode 100644 index 8b843958d..000000000 Binary files a/rtdata/images/themed/png/light/node-move-xy-hicontrast.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/node-move-y-hicontrast.png b/rtdata/images/themed/png/light/node-move-y-hicontrast.png deleted file mode 100644 index f80690851..000000000 Binary files a/rtdata/images/themed/png/light/node-move-y-hicontrast.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/one-to-one-small.png b/rtdata/images/themed/png/light/one-to-one-small.png deleted file mode 100644 index 8c506609c..000000000 Binary files a/rtdata/images/themed/png/light/one-to-one-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/ornament1.png b/rtdata/images/themed/png/light/ornament1.png deleted file mode 100644 index 71b3f1c78..000000000 Binary files a/rtdata/images/themed/png/light/ornament1.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/padlock-locked-small.png b/rtdata/images/themed/png/light/padlock-locked-small.png deleted file mode 100644 index 1b1198f01..000000000 Binary files a/rtdata/images/themed/png/light/padlock-locked-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/padlock-unlocked-small.png b/rtdata/images/themed/png/light/padlock-unlocked-small.png deleted file mode 100644 index 96b75f093..000000000 Binary files a/rtdata/images/themed/png/light/padlock-unlocked-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/palette-brush.png b/rtdata/images/themed/png/light/palette-brush.png deleted file mode 100644 index bd208f059..000000000 Binary files a/rtdata/images/themed/png/light/palette-brush.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/panel-to-bottom.png b/rtdata/images/themed/png/light/panel-to-bottom.png deleted file mode 100644 index e2d532a16..000000000 Binary files a/rtdata/images/themed/png/light/panel-to-bottom.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/panel-to-left.png b/rtdata/images/themed/png/light/panel-to-left.png deleted file mode 100644 index 196fed3c9..000000000 Binary files a/rtdata/images/themed/png/light/panel-to-left.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/panel-to-right.png b/rtdata/images/themed/png/light/panel-to-right.png deleted file mode 100644 index a9e3b7667..000000000 Binary files a/rtdata/images/themed/png/light/panel-to-right.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/panel-to-top.png b/rtdata/images/themed/png/light/panel-to-top.png deleted file mode 100644 index dafa6b852..000000000 Binary files a/rtdata/images/themed/png/light/panel-to-top.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/paste.png b/rtdata/images/themed/png/light/paste.png deleted file mode 100644 index ffefcc323..000000000 Binary files a/rtdata/images/themed/png/light/paste.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/perspective-horizontal-left-small.png b/rtdata/images/themed/png/light/perspective-horizontal-left-small.png deleted file mode 100644 index f2832c607..000000000 Binary files a/rtdata/images/themed/png/light/perspective-horizontal-left-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/perspective-horizontal-left.png b/rtdata/images/themed/png/light/perspective-horizontal-left.png deleted file mode 100644 index 23b24f6aa..000000000 Binary files a/rtdata/images/themed/png/light/perspective-horizontal-left.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/perspective-horizontal-right-small.png b/rtdata/images/themed/png/light/perspective-horizontal-right-small.png deleted file mode 100644 index e555f0c1e..000000000 Binary files a/rtdata/images/themed/png/light/perspective-horizontal-right-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/perspective-horizontal-right.png b/rtdata/images/themed/png/light/perspective-horizontal-right.png deleted file mode 100644 index 7a334ad81..000000000 Binary files a/rtdata/images/themed/png/light/perspective-horizontal-right.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/perspective-vertical-bottom-small.png b/rtdata/images/themed/png/light/perspective-vertical-bottom-small.png deleted file mode 100644 index 12f776add..000000000 Binary files a/rtdata/images/themed/png/light/perspective-vertical-bottom-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/perspective-vertical-bottom.png b/rtdata/images/themed/png/light/perspective-vertical-bottom.png deleted file mode 100644 index c6dbfcd51..000000000 Binary files a/rtdata/images/themed/png/light/perspective-vertical-bottom.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/perspective-vertical-top-small.png b/rtdata/images/themed/png/light/perspective-vertical-top-small.png deleted file mode 100644 index 8202b0e75..000000000 Binary files a/rtdata/images/themed/png/light/perspective-vertical-top-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/perspective-vertical-top.png b/rtdata/images/themed/png/light/perspective-vertical-top.png deleted file mode 100644 index 05c0a7fe1..000000000 Binary files a/rtdata/images/themed/png/light/perspective-vertical-top.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/power-inconsistent-small.png b/rtdata/images/themed/png/light/power-inconsistent-small.png deleted file mode 100644 index 2805f8245..000000000 Binary files a/rtdata/images/themed/png/light/power-inconsistent-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/power-off-small.png b/rtdata/images/themed/png/light/power-off-small.png deleted file mode 100644 index 6036813a9..000000000 Binary files a/rtdata/images/themed/png/light/power-off-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/power-on-small.png b/rtdata/images/themed/png/light/power-on-small.png deleted file mode 100644 index 796aa16e2..000000000 Binary files a/rtdata/images/themed/png/light/power-on-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/preferences.png b/rtdata/images/themed/png/light/preferences.png deleted file mode 100644 index c18a5e2a6..000000000 Binary files a/rtdata/images/themed/png/light/preferences.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/profile-filled.png b/rtdata/images/themed/png/light/profile-filled.png deleted file mode 100644 index ba549ec63..000000000 Binary files a/rtdata/images/themed/png/light/profile-filled.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/profile-partial.png b/rtdata/images/themed/png/light/profile-partial.png deleted file mode 100644 index 5baed296d..000000000 Binary files a/rtdata/images/themed/png/light/profile-partial.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/redo-all.png b/rtdata/images/themed/png/light/redo-all.png deleted file mode 100644 index 38551bf34..000000000 Binary files a/rtdata/images/themed/png/light/redo-all.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/redo-small.png b/rtdata/images/themed/png/light/redo-small.png deleted file mode 100644 index 59a5e3a31..000000000 Binary files a/rtdata/images/themed/png/light/redo-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/redo.png b/rtdata/images/themed/png/light/redo.png deleted file mode 100644 index 165f4ea29..000000000 Binary files a/rtdata/images/themed/png/light/redo.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/refresh-red-small.png b/rtdata/images/themed/png/light/refresh-red-small.png deleted file mode 100644 index 296035883..000000000 Binary files a/rtdata/images/themed/png/light/refresh-red-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/refresh-small.png b/rtdata/images/themed/png/light/refresh-small.png deleted file mode 100644 index c6c827182..000000000 Binary files a/rtdata/images/themed/png/light/refresh-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/refresh.png b/rtdata/images/themed/png/light/refresh.png deleted file mode 100644 index cc062f1f5..000000000 Binary files a/rtdata/images/themed/png/light/refresh.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/remove-small.png b/rtdata/images/themed/png/light/remove-small.png deleted file mode 100644 index c9bdc8b83..000000000 Binary files a/rtdata/images/themed/png/light/remove-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/remove.png b/rtdata/images/themed/png/light/remove.png deleted file mode 100644 index 5d030627a..000000000 Binary files a/rtdata/images/themed/png/light/remove.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/rotate-aroundnode-hicontrast.png b/rtdata/images/themed/png/light/rotate-aroundnode-hicontrast.png deleted file mode 100644 index d8929ac42..000000000 Binary files a/rtdata/images/themed/png/light/rotate-aroundnode-hicontrast.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/rotate-aroundnode.png b/rtdata/images/themed/png/light/rotate-aroundnode.png deleted file mode 100644 index 5da406b64..000000000 Binary files a/rtdata/images/themed/png/light/rotate-aroundnode.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/rotate-left-90.png b/rtdata/images/themed/png/light/rotate-left-90.png deleted file mode 100644 index 7904c82f5..000000000 Binary files a/rtdata/images/themed/png/light/rotate-left-90.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/rotate-left-small.png b/rtdata/images/themed/png/light/rotate-left-small.png deleted file mode 100644 index f3c94f65a..000000000 Binary files a/rtdata/images/themed/png/light/rotate-left-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/rotate-left.png b/rtdata/images/themed/png/light/rotate-left.png deleted file mode 100644 index 5e2b0a201..000000000 Binary files a/rtdata/images/themed/png/light/rotate-left.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/rotate-right-90.png b/rtdata/images/themed/png/light/rotate-right-90.png deleted file mode 100644 index 52fd331dd..000000000 Binary files a/rtdata/images/themed/png/light/rotate-right-90.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/rotate-right-small.png b/rtdata/images/themed/png/light/rotate-right-small.png deleted file mode 100644 index 4fa8f8d19..000000000 Binary files a/rtdata/images/themed/png/light/rotate-right-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/rotate-right.png b/rtdata/images/themed/png/light/rotate-right.png deleted file mode 100644 index c819cbe73..000000000 Binary files a/rtdata/images/themed/png/light/rotate-right.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/rotate-straighten-small.png b/rtdata/images/themed/png/light/rotate-straighten-small.png deleted file mode 100644 index 67190d31a..000000000 Binary files a/rtdata/images/themed/png/light/rotate-straighten-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/rotate-straighten.png b/rtdata/images/themed/png/light/rotate-straighten.png deleted file mode 100644 index a9c2e0805..000000000 Binary files a/rtdata/images/themed/png/light/rotate-straighten.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/save-small.png b/rtdata/images/themed/png/light/save-small.png deleted file mode 100644 index c296fdb72..000000000 Binary files a/rtdata/images/themed/png/light/save-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/save.png b/rtdata/images/themed/png/light/save.png deleted file mode 100644 index f71542230..000000000 Binary files a/rtdata/images/themed/png/light/save.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/saved-no-small.png b/rtdata/images/themed/png/light/saved-no-small.png deleted file mode 100644 index 68021eda4..000000000 Binary files a/rtdata/images/themed/png/light/saved-no-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/saved-yes-small.png b/rtdata/images/themed/png/light/saved-yes-small.png deleted file mode 100644 index 4557ef905..000000000 Binary files a/rtdata/images/themed/png/light/saved-yes-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/square-toggle-black-off-narrow.png b/rtdata/images/themed/png/light/square-toggle-black-off-narrow.png deleted file mode 100644 index ff6adb675..000000000 Binary files a/rtdata/images/themed/png/light/square-toggle-black-off-narrow.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/square-toggle-black-on-narrow.png b/rtdata/images/themed/png/light/square-toggle-black-on-narrow.png deleted file mode 100644 index 5d6e35c3d..000000000 Binary files a/rtdata/images/themed/png/light/square-toggle-black-on-narrow.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/square-toggle-blue-off-narrow.png b/rtdata/images/themed/png/light/square-toggle-blue-off-narrow.png deleted file mode 100644 index 2a9741c0f..000000000 Binary files a/rtdata/images/themed/png/light/square-toggle-blue-off-narrow.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/square-toggle-blue-on-narrow.png b/rtdata/images/themed/png/light/square-toggle-blue-on-narrow.png deleted file mode 100644 index e52337d33..000000000 Binary files a/rtdata/images/themed/png/light/square-toggle-blue-on-narrow.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/square-toggle-gray-off-narrow.png b/rtdata/images/themed/png/light/square-toggle-gray-off-narrow.png deleted file mode 100644 index 7e009920f..000000000 Binary files a/rtdata/images/themed/png/light/square-toggle-gray-off-narrow.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/square-toggle-gray-on-narrow.png b/rtdata/images/themed/png/light/square-toggle-gray-on-narrow.png deleted file mode 100644 index 64289008a..000000000 Binary files a/rtdata/images/themed/png/light/square-toggle-gray-on-narrow.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/square-toggle-green-off-narrow.png b/rtdata/images/themed/png/light/square-toggle-green-off-narrow.png deleted file mode 100644 index f55cbb8c3..000000000 Binary files a/rtdata/images/themed/png/light/square-toggle-green-off-narrow.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/square-toggle-green-on-narrow.png b/rtdata/images/themed/png/light/square-toggle-green-on-narrow.png deleted file mode 100644 index 0c8b9522d..000000000 Binary files a/rtdata/images/themed/png/light/square-toggle-green-on-narrow.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/square-toggle-luminosity-off-narrow.png b/rtdata/images/themed/png/light/square-toggle-luminosity-off-narrow.png deleted file mode 100644 index c6dfe8410..000000000 Binary files a/rtdata/images/themed/png/light/square-toggle-luminosity-off-narrow.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/square-toggle-luminosity-on-narrow.png b/rtdata/images/themed/png/light/square-toggle-luminosity-on-narrow.png deleted file mode 100644 index b45b608d9..000000000 Binary files a/rtdata/images/themed/png/light/square-toggle-luminosity-on-narrow.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/square-toggle-red-off-narrow.png b/rtdata/images/themed/png/light/square-toggle-red-off-narrow.png deleted file mode 100644 index 99730ee4b..000000000 Binary files a/rtdata/images/themed/png/light/square-toggle-red-off-narrow.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/square-toggle-red-on-narrow.png b/rtdata/images/themed/png/light/square-toggle-red-on-narrow.png deleted file mode 100644 index e0b91d8b3..000000000 Binary files a/rtdata/images/themed/png/light/square-toggle-red-on-narrow.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/square-toggle-theme-off-narrow.png b/rtdata/images/themed/png/light/square-toggle-theme-off-narrow.png deleted file mode 100644 index 449946648..000000000 Binary files a/rtdata/images/themed/png/light/square-toggle-theme-off-narrow.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/square-toggle-theme-on-narrow.png b/rtdata/images/themed/png/light/square-toggle-theme-on-narrow.png deleted file mode 100644 index e59257824..000000000 Binary files a/rtdata/images/themed/png/light/square-toggle-theme-on-narrow.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/square-toggle-white-off-narrow.png b/rtdata/images/themed/png/light/square-toggle-white-off-narrow.png deleted file mode 100644 index b2e5e3611..000000000 Binary files a/rtdata/images/themed/png/light/square-toggle-white-off-narrow.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/square-toggle-white-on-narrow.png b/rtdata/images/themed/png/light/square-toggle-white-on-narrow.png deleted file mode 100644 index 7ff59d927..000000000 Binary files a/rtdata/images/themed/png/light/square-toggle-white-on-narrow.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/star-gold-hollow-narrow.png b/rtdata/images/themed/png/light/star-gold-hollow-narrow.png deleted file mode 100644 index b0ce704d6..000000000 Binary files a/rtdata/images/themed/png/light/star-gold-hollow-narrow.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/star-gold-hollow-small.png b/rtdata/images/themed/png/light/star-gold-hollow-small.png deleted file mode 100644 index 478055c2b..000000000 Binary files a/rtdata/images/themed/png/light/star-gold-hollow-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/star-gold-narrow.png b/rtdata/images/themed/png/light/star-gold-narrow.png deleted file mode 100644 index 32710fb9d..000000000 Binary files a/rtdata/images/themed/png/light/star-gold-narrow.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/star-gold-small.png b/rtdata/images/themed/png/light/star-gold-small.png deleted file mode 100644 index da02a823e..000000000 Binary files a/rtdata/images/themed/png/light/star-gold-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/star-hollow-narrow.png b/rtdata/images/themed/png/light/star-hollow-narrow.png deleted file mode 100644 index 4a15f0ba1..000000000 Binary files a/rtdata/images/themed/png/light/star-hollow-narrow.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/star-hollow-small.png b/rtdata/images/themed/png/light/star-hollow-small.png deleted file mode 100644 index 8e5335410..000000000 Binary files a/rtdata/images/themed/png/light/star-hollow-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/star-narrow.png b/rtdata/images/themed/png/light/star-narrow.png deleted file mode 100644 index 78c8eea8a..000000000 Binary files a/rtdata/images/themed/png/light/star-narrow.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/star-small.png b/rtdata/images/themed/png/light/star-small.png deleted file mode 100644 index 2bb54647a..000000000 Binary files a/rtdata/images/themed/png/light/star-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/star.png b/rtdata/images/themed/png/light/star.png deleted file mode 100644 index de03f30ca..000000000 Binary files a/rtdata/images/themed/png/light/star.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/template-16.png b/rtdata/images/themed/png/light/template-16.png deleted file mode 100644 index 1c50ead9e..000000000 Binary files a/rtdata/images/themed/png/light/template-16.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/template-24.png b/rtdata/images/themed/png/light/template-24.png deleted file mode 100644 index 7ab9e8c0f..000000000 Binary files a/rtdata/images/themed/png/light/template-24.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/template-narrow.png b/rtdata/images/themed/png/light/template-narrow.png deleted file mode 100644 index 78c374503..000000000 Binary files a/rtdata/images/themed/png/light/template-narrow.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/tick-green-hollow-small.png b/rtdata/images/themed/png/light/tick-green-hollow-small.png deleted file mode 100644 index 176bf5489..000000000 Binary files a/rtdata/images/themed/png/light/tick-green-hollow-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/tick-green-hollow.png b/rtdata/images/themed/png/light/tick-green-hollow.png deleted file mode 100644 index 7cac33dc0..000000000 Binary files a/rtdata/images/themed/png/light/tick-green-hollow.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/tick-green-small.png b/rtdata/images/themed/png/light/tick-green-small.png deleted file mode 100644 index 54cf5d024..000000000 Binary files a/rtdata/images/themed/png/light/tick-green-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/tick-green.png b/rtdata/images/themed/png/light/tick-green.png deleted file mode 100644 index 2458734b2..000000000 Binary files a/rtdata/images/themed/png/light/tick-green.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/tick-hollow-small.png b/rtdata/images/themed/png/light/tick-hollow-small.png deleted file mode 100644 index 9a0973962..000000000 Binary files a/rtdata/images/themed/png/light/tick-hollow-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/tick-small.png b/rtdata/images/themed/png/light/tick-small.png deleted file mode 100644 index 73438bed0..000000000 Binary files a/rtdata/images/themed/png/light/tick-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/tick.png b/rtdata/images/themed/png/light/tick.png deleted file mode 100644 index 7bb629789..000000000 Binary files a/rtdata/images/themed/png/light/tick.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/transform.png b/rtdata/images/themed/png/light/transform.png deleted file mode 100644 index ec1c6642a..000000000 Binary files a/rtdata/images/themed/png/light/transform.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/trash-delete.png b/rtdata/images/themed/png/light/trash-delete.png deleted file mode 100644 index 7d0c422f7..000000000 Binary files a/rtdata/images/themed/png/light/trash-delete.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/trash-empty-show.png b/rtdata/images/themed/png/light/trash-empty-show.png deleted file mode 100644 index 9e4ade318..000000000 Binary files a/rtdata/images/themed/png/light/trash-empty-show.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/trash-empty.png b/rtdata/images/themed/png/light/trash-empty.png deleted file mode 100644 index 7a8345109..000000000 Binary files a/rtdata/images/themed/png/light/trash-empty.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/trash-full-show.png b/rtdata/images/themed/png/light/trash-full-show.png deleted file mode 100644 index 8061c5070..000000000 Binary files a/rtdata/images/themed/png/light/trash-full-show.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/trash-full.png b/rtdata/images/themed/png/light/trash-full.png deleted file mode 100644 index a43d6f3e5..000000000 Binary files a/rtdata/images/themed/png/light/trash-full.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/trash-hide-deleted.png b/rtdata/images/themed/png/light/trash-hide-deleted.png deleted file mode 100644 index 319a0dd4a..000000000 Binary files a/rtdata/images/themed/png/light/trash-hide-deleted.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/trash-remove-small.png b/rtdata/images/themed/png/light/trash-remove-small.png deleted file mode 100644 index df70891fb..000000000 Binary files a/rtdata/images/themed/png/light/trash-remove-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/trash-remove.png b/rtdata/images/themed/png/light/trash-remove.png deleted file mode 100644 index 8c0c45aad..000000000 Binary files a/rtdata/images/themed/png/light/trash-remove.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/trash-small.png b/rtdata/images/themed/png/light/trash-small.png deleted file mode 100644 index 7e3183942..000000000 Binary files a/rtdata/images/themed/png/light/trash-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/undo-all.png b/rtdata/images/themed/png/light/undo-all.png deleted file mode 100644 index 04170e26f..000000000 Binary files a/rtdata/images/themed/png/light/undo-all.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/undo-small.png b/rtdata/images/themed/png/light/undo-small.png deleted file mode 100644 index d6f1d0115..000000000 Binary files a/rtdata/images/themed/png/light/undo-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/undo.png b/rtdata/images/themed/png/light/undo.png deleted file mode 100644 index 6451ce0dd..000000000 Binary files a/rtdata/images/themed/png/light/undo.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/warning-highlights.png b/rtdata/images/themed/png/light/warning-highlights.png deleted file mode 100644 index 5426a14a3..000000000 Binary files a/rtdata/images/themed/png/light/warning-highlights.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/warning-shadows.png b/rtdata/images/themed/png/light/warning-shadows.png deleted file mode 100644 index 86b6c06a6..000000000 Binary files a/rtdata/images/themed/png/light/warning-shadows.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/warning.png b/rtdata/images/themed/png/light/warning.png deleted file mode 100644 index 5bc43cfe2..000000000 Binary files a/rtdata/images/themed/png/light/warning.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/wavelets.png b/rtdata/images/themed/png/light/wavelets.png deleted file mode 100644 index 3907c255e..000000000 Binary files a/rtdata/images/themed/png/light/wavelets.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/wb-auto-small.png b/rtdata/images/themed/png/light/wb-auto-small.png deleted file mode 100644 index e7995b4ce..000000000 Binary files a/rtdata/images/themed/png/light/wb-auto-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/wb-auto.png b/rtdata/images/themed/png/light/wb-auto.png deleted file mode 100644 index d1b60e8ad..000000000 Binary files a/rtdata/images/themed/png/light/wb-auto.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/wb-camera-small.png b/rtdata/images/themed/png/light/wb-camera-small.png deleted file mode 100644 index 72d03db7b..000000000 Binary files a/rtdata/images/themed/png/light/wb-camera-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/wb-camera.png b/rtdata/images/themed/png/light/wb-camera.png deleted file mode 100644 index 8034b85d2..000000000 Binary files a/rtdata/images/themed/png/light/wb-camera.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/wb-cloudy-small.png b/rtdata/images/themed/png/light/wb-cloudy-small.png deleted file mode 100644 index 131b28287..000000000 Binary files a/rtdata/images/themed/png/light/wb-cloudy-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/wb-cloudy.png b/rtdata/images/themed/png/light/wb-cloudy.png deleted file mode 100644 index 04e6e3418..000000000 Binary files a/rtdata/images/themed/png/light/wb-cloudy.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/wb-custom-small.png b/rtdata/images/themed/png/light/wb-custom-small.png deleted file mode 100644 index c0d2ebf09..000000000 Binary files a/rtdata/images/themed/png/light/wb-custom-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/wb-custom.png b/rtdata/images/themed/png/light/wb-custom.png deleted file mode 100644 index fdc7258cd..000000000 Binary files a/rtdata/images/themed/png/light/wb-custom.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/wb-flash-small.png b/rtdata/images/themed/png/light/wb-flash-small.png deleted file mode 100644 index cf44f0357..000000000 Binary files a/rtdata/images/themed/png/light/wb-flash-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/wb-flash.png b/rtdata/images/themed/png/light/wb-flash.png deleted file mode 100644 index 8c602dc88..000000000 Binary files a/rtdata/images/themed/png/light/wb-flash.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/wb-fluorescent-small.png b/rtdata/images/themed/png/light/wb-fluorescent-small.png deleted file mode 100644 index 0362ebf02..000000000 Binary files a/rtdata/images/themed/png/light/wb-fluorescent-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/wb-fluorescent.png b/rtdata/images/themed/png/light/wb-fluorescent.png deleted file mode 100644 index 4acc5e767..000000000 Binary files a/rtdata/images/themed/png/light/wb-fluorescent.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/wb-lamp-small.png b/rtdata/images/themed/png/light/wb-lamp-small.png deleted file mode 100644 index 4c8516d30..000000000 Binary files a/rtdata/images/themed/png/light/wb-lamp-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/wb-lamp.png b/rtdata/images/themed/png/light/wb-lamp.png deleted file mode 100644 index 57da8265c..000000000 Binary files a/rtdata/images/themed/png/light/wb-lamp.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/wb-led-small.png b/rtdata/images/themed/png/light/wb-led-small.png deleted file mode 100644 index 7b3d8504f..000000000 Binary files a/rtdata/images/themed/png/light/wb-led-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/wb-led.png b/rtdata/images/themed/png/light/wb-led.png deleted file mode 100644 index 5c2d363c6..000000000 Binary files a/rtdata/images/themed/png/light/wb-led.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/wb-shade-small.png b/rtdata/images/themed/png/light/wb-shade-small.png deleted file mode 100644 index 397fcfdd4..000000000 Binary files a/rtdata/images/themed/png/light/wb-shade-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/wb-shade.png b/rtdata/images/themed/png/light/wb-shade.png deleted file mode 100644 index 7603de77e..000000000 Binary files a/rtdata/images/themed/png/light/wb-shade.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/wb-sun-small.png b/rtdata/images/themed/png/light/wb-sun-small.png deleted file mode 100644 index 70c139ab2..000000000 Binary files a/rtdata/images/themed/png/light/wb-sun-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/wb-sun.png b/rtdata/images/themed/png/light/wb-sun.png deleted file mode 100644 index da7271078..000000000 Binary files a/rtdata/images/themed/png/light/wb-sun.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/wb-tungsten-small.png b/rtdata/images/themed/png/light/wb-tungsten-small.png deleted file mode 100644 index 3dcbf947d..000000000 Binary files a/rtdata/images/themed/png/light/wb-tungsten-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/wb-tungsten.png b/rtdata/images/themed/png/light/wb-tungsten.png deleted file mode 100644 index 9c3793852..000000000 Binary files a/rtdata/images/themed/png/light/wb-tungsten.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/wb-water-small.png b/rtdata/images/themed/png/light/wb-water-small.png deleted file mode 100644 index 59e7bb836..000000000 Binary files a/rtdata/images/themed/png/light/wb-water-small.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/wb-water.png b/rtdata/images/themed/png/light/wb-water.png deleted file mode 100644 index 593516563..000000000 Binary files a/rtdata/images/themed/png/light/wb-water.png and /dev/null differ diff --git a/rtdata/images/themed/png/light/window-add.png b/rtdata/images/themed/png/light/window-add.png deleted file mode 100644 index 6ccacd678..000000000 Binary files a/rtdata/images/themed/png/light/window-add.png and /dev/null differ diff --git a/rtdata/languages/Francais b/rtdata/languages/Francais index 562db238c..243fa24a9 100644 --- a/rtdata/languages/Francais +++ b/rtdata/languages/Francais @@ -773,6 +773,7 @@ HISTORY_MSG_RAWCACORR_AUTOIT;A.C. Raw - Itérations HISTORY_MSG_RAWCACORR_COLORSHIFT;A.C. Raw - Éviter les dérives de teinte HISTORY_MSG_RAW_BORDER;Bord Raw HISTORY_MSG_RESIZE_ALLOWUPSCALING;Redim. - Autoriser l'agrandissement +HISTORY_MSG_SHARPENING_BLUR;Netteté - Rayon de floutage HISTORY_MSG_SHARPENING_CONTRAST;Netteté - Seuil de contraste HISTORY_MSG_SH_COLORSPACE;O/HL - Espace couleur HISTORY_MSG_SOFTLIGHT_ENABLED;Lumière douce @@ -914,6 +915,8 @@ MAIN_TAB_EXIF;EXIF MAIN_TAB_EXPORT; Export Rapide MAIN_TAB_EXPOSURE;Exposition MAIN_TAB_EXPOSURE_TOOLTIP;Raccourci:Alt-e +MAIN_TAB_FAVORITES;Favoris +MAIN_TAB_FAVORITES_TOOLTIP;Raccourci: Alt-u MAIN_TAB_FILTER; Filtrer MAIN_TAB_INSPECT; Inspecter MAIN_TAB_IPTC;IPTC @@ -1065,6 +1068,12 @@ PREFERENCES_CACHECLEAR_SAFETY;Seuls les fichiers mis en cache sont effacés. Les PREFERENCES_CACHEMAXENTRIES;Nombre maximal d'éléments dans le Cache PREFERENCES_CACHEOPTS;Options du Cache PREFERENCES_CACHETHUMBHEIGHT;Hauteur maximale des vignettes +PREFERENCES_CHUNKSIZES;Tuiles par thread +PREFERENCES_CHUNKSIZE_RAW_AMAZE;Dématriçage AMaZE +PREFERENCES_CHUNKSIZE_RAW_CA;Correction AC Raw +PREFERENCES_CHUNKSIZE_RAW_RCD;Dématriçage RCD +PREFERENCES_CHUNKSIZE_RAW_XT;Dématriçage Xtrans +PREFERENCES_CHUNKSIZE_RGB;Traitement RVB PREFERENCES_CLIPPINGIND;Indication du dépassement de plage dynamique PREFERENCES_CLUTSCACHE;Cache HaldCLUT PREFERENCES_CLUTSCACHE_LABEL;Nombre maximum de chache CLUT @@ -1181,6 +1190,8 @@ PREFERENCES_PARSEDEXTADDHINT;Tapez une extension et cliquez ce bouton pour l'ajo PREFERENCES_PARSEDEXTDELHINT;Supprime de la liste les extensions sélectionnées PREFERENCES_PARSEDEXTDOWNHINT;Déplacer l'extension sélectionnée plus bas dans la liste. PREFERENCES_PARSEDEXTUPHINT;Déplacer l'extension sélectionnée plus haut dans la liste. +PREFERENCES_PERFORMANCE_MEASURE;Mesure +PREFERENCES_PERFORMANCE_MEASURE_HINT;Indique les temps de traitement dans une console PREFERENCES_PERFORMANCE_THREADS;Unités d'exécution (Threads) PREFERENCES_PERFORMANCE_THREADS_LABEL;Nombre maximum d'unité d'exécution pour la Réduction de Bruit et les Niveaux d'Ondelettes (0 = Automatique) PREFERENCES_PREVDEMO;Méthode de Dématriçage de l'Aperçu @@ -1879,6 +1890,7 @@ TP_RAW_HD_TOOLTIP;Des valeurs basses rendront la détection de pixel chaud/mort TP_RAW_HPHD;HPHD TP_RAW_IGV;IGV TP_RAW_IMAGENUM;Sous-image +TP_RAW_IMAGENUM_SN;Mode SN TP_RAW_IMAGENUM_TOOLTIP;Certains fichiers RAW consistent en plusieurs sous-images (Pentax Pixel Shift, Pentax HDR 3-en-1, Canon Dual Pixel).\n\nLors de l'usage d'une méthode de dématriçage autre que Pixel Shift, ceci sélectionne quel sous-image est utilisée.\n\nLors de l'usage de la méthode de dématriçage Pixel Shift sur un fichier RAW Pixel, toutes les sous-images sont utilisées, et ceci sélectionne quelle sous-image devrait être utilisé pour la détection de mouvement. TP_RAW_LABEL;Dématriçage TP_RAW_LMMSE;LMMSE @@ -2060,6 +2072,7 @@ TP_SHARPENEDGE_LABEL;Bords TP_SHARPENEDGE_PASSES;Itérations TP_SHARPENEDGE_THREE;Luminance uniquement TP_SHARPENING_AMOUNT;Quantité +TP_SHARPENING_BLUR;Rayon de floutage TP_SHARPENING_CONTRAST;Seuil de contraste TP_SHARPENING_EDRADIUS;Rayon TP_SHARPENING_EDTOLERANCE;Tolérance des bords @@ -2330,12 +2343,3 @@ ZOOMPANEL_ZOOMFITSCREEN;Affiche l'image entière\nRaccourci: Alt-f ZOOMPANEL_ZOOMIN;Zoom Avant\nRaccourci: + ZOOMPANEL_ZOOMOUT;Zoom Arrière\nRaccourci: - -!!!!!!!!!!!!!!!!!!!!!!!!! -! Untranslated keys follow; remove the ! prefix after an entry is translated. -!!!!!!!!!!!!!!!!!!!!!!!!! - -!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius -!MAIN_TAB_FAVORITES;Favorites -!MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: Alt-u -!TP_RAW_IMAGENUM_SN;SN mode -!TP_SHARPENING_BLUR;Blur radius diff --git a/rtdata/themes/RawTherapee-GTK3-20_.css b/rtdata/themes/RawTherapee-GTK3-20_.css index 20478367f..6c0a0993b 100644 --- a/rtdata/themes/RawTherapee-GTK3-20_.css +++ b/rtdata/themes/RawTherapee-GTK3-20_.css @@ -2,7 +2,8 @@ This file is part of RawTherapee. Copyright (c) 2015-2017 DrSlony - Copyright (c) 2016-2017 Hombre + Copyright (c) 2016-2019 Hombre + Copyright (c) 2016-2019 TooWaBoo RawTherapee is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -18,6 +19,10 @@ along with RawTherapee. If not, see . */ +/***************************/ +/**/ @import "size.css"; /**/ +/***************************/ + /* text-shadow causes a serious performance degradation in rendering the UI, * at least in comboboxes with many entries (i.e. Profiled Lens Correction). */ @@ -29,6 +34,353 @@ *:disabled { color: #666666; + opacity: 0.7; +} + +.view:selected:not(check):not(radio) { + color: #262626; + background-color: #AAAAAA +} + +/* The Places and Dir browser panels */ +textview.view, treeview.view { + padding: 0; + margin: 0; +} +.view, .textview, textview, textview.view { + background-color: #262626; +} +/* The headers of these panels */ +.view .button { + background-color: #363636; + /*padding: 0.1666666666666666em;*/ +} + +window > box { + padding: 0.416666666666666666em; +} +window.background { + background-color: #484848; +} + +/*** Window decoration *********************************************************/ +@define-color winHeaderbar rgb(50,50,50); + +.csd:not(.popup):not(tooltip) > decoration { + background-color: #484848; + background-image: none; + box-shadow: 0 0.25em 0.75em 0.083333333333333333em rgba(0, 0, 0, 0.5), 0 0 0 0.083333333333333333em #242424; +} +headerbar { + background-color: shade(@winHeaderbar,1.12); + box-shadow: inset 0 0.083333333333333333em rgba(200,200,200,.13); + background-image: linear-gradient(shade(@winHeaderbar,1.14), shade(@winHeaderbar,.86)); + border-bottom-color: #242424; +} +dialog > box { + padding: 0.666666666666666666em; +} +dialog.csd #PrefNotebook > header, +dialog.csd #AboutNotebook > header, +window.csd:not(.fullscreen) #MainNotebook > header.top { + border-top-color: #484848; +} + +/* Window state */ +.maximized > headerbar { + border-radius: 0; +} +/**/ + +/*** End Window decoration *****************************************************/ + +arrow { + min-width: 1.333333333333333333em; + min-height: 1.333333333333333333em; +} +cellview { + margin: -1px 0; +} + +overshoot, +undershoot { + background-image: none; /* removes the dashed scrollbar line */ +} + +dialog.background { + background-color: #484848; +} + +box, grid { + border-width: 0; + border-style: none; + border-radius: 0; + margin: 0.083333333333333333em; + padding: 0; + min-height: 0.4166666666666666em; + min-width: 0.4166666666666666em; +} +label { + padding: 0.083333333333333333em 0; + margin: 0.19em; + min-height: 1.333333333333333333em; +} + +/* Affects all frames except in the toolbox */ +frame { + border-width: 0; + border-color: #303030; + border-radius: 0; + border-style: solid; + /*border-style: none none none solid;*/ + padding: 0; + margin: 0; + background-color: rgba(0,0,0,0.); + min-height: 0; + min-width: 0; +} + +/* Create space between frame contents and frame border */ +frame border { + border-width: 0.083333333333333333em; + padding: 0.3333333333333333em; + border-radius: 0.3333333333333333em; + background-color: #383838; + margin: 0; + min-height: 0; + min-width: 0; +} + +frame > label { + margin: 0 0 0 0.3333333333333333em; + color: #D8D8D8; + padding: 0.416666666666666666em 0; +} + +/* affects selection list*/ +entry > window > frame { + margin: 0; +} + +tooltip { + border-radius: 0.416666666666666666em; + background-color: rgba(0,0,0,0.95); + border-style: none; + box-shadow: none; + padding: 0; + margin: 0; +} + +treeview header button { + background-image: linear-gradient(#343434, #2E2E2E, #292929); +} + +/*** Separator *********************************************************************************/ +separator, +.separator { + border: none; + min-width: 0.083333333333333333em; + min-height: 0.083333333333333333em; +} +grid separator, box separator { + background-color: rgba(0, 0, 0, 0.17); +} +grid separator.horizontal, box separator.horizontal { + margin: 0.5em 0.25em; +} +grid separator.vertical, box separator.vertical { + margin: 0.25em 0.5em; +} + +popover separator:not(:only-child) { + margin: 0 0.5em; +} + +paned.horizontal > separator { + margin: 0 0.16666666666666666em; +} +/* Double line separator */ +paned.vertical > separator { + margin: 0.25em 0; +} + +dialog paned.horizontal > separator { + min-width: 0.333333333333333333em; +} + +menu separator { + margin: 0.25em 0.5em; +} + +#Navigator separator { + margin: 0; +} + +.scrollableToolbar separator.vertical { + margin: 0.19em; +} + +#MyExpander separator.horizontal { + margin: 0.25em 0.19em; +} +#MyFileChooserButton separator { +} + +#PlacesPaned .view.separator { +} + +#MetaPanelNotebook separator { + margin: 0.19em 0; +} +/*** end****************************************************************************************/ + +#FileBrowser { + padding: 0.1666666666666666em; + margin: 0; +} + +#FileCatalog { + background-color: #393939; +} +#FileCatalog:selected { + background-color: #565656; +} + +#BeforeAfterContainer frame { + background-color: #262626; + padding: 0; + margin: 0.0833333333333333em; +} + +#BeforeAfterContainer frame border { + border-radius: 0; + margin: 0; + padding: 0; +} + + +/* Frames in the toolbox. Not MyExpander frames. */ +eventbox.frame { + border-color: #565656; +} + +/*** Load - Save dialog ************************************************************************/ +filechooser { +margin-bottom: 0.25em; +} + +filechooser box > box box > button { +margin-top: 0.5em; +margin-right: 0; +} + +filechooser #pathbarbox { + padding: 0.5em; +} + +/* Right side */ +filechooser > box > paned > box:nth-child(3) { + border-width: 0.083333333333333333em; + padding: 0; + margin: 0; +} +filechooser > box > paned > box:nth-child(3) > box > * > * > * > frame { + padding: 0; + margin: -0.6666666666666666em -0.083333333333333333em; +} +/**/ +filechooser placessidebar viewport.frame { + padding: 0; + margin: -0.3333333333333333em 0 -0.083333333333333333em; + border-width: 0.083333333333333333em; +} +filechooser placessidebar list row image { + min-width: 1.333333333333333333em; + min-height: 1.333333333333333333em; +} +filechooser placessidebar list row { + margin: 0; + padding: 0 0.5em 0 0.83333333333333333em; + min-height: calc(1.416666666666666666em + 8px); +} +filechooser placessidebar list row label{ + margin: 0 0 0 0.583333333333333333em; +} + +/*** end ***************************************************************************************/ + +/*** Scrollbar ***************************************/ +scrollbar { + border: none; + margin: 0; + padding: 0; + background-color: #303030; +} +scrollbar slider { + padding: 0; + margin: 0; + background-color: #808080; +} +scrollbar slider:hover { + background-color: #999999; +} + +scrollbar:not(.overlay-indicator).horizontal { + border-width: 0 0.083333333333333333em 0.083333333333333333em 0.083333333333333333em; +} +scrollbar:not(.overlay-indicator).vertical { + border-width: 0.083333333333333333em 0.083333333333333333em 0.083333333333333333em 0; +} +scrollbar:not(.overlay-indicator).horizontal slider, +scrollbar.horizontal.hovering slider { + min-height: 0.5em; + min-width: 2em; + border-width: 0.25em; +} +scrollbar:not(.overlay-indicator).horizontal.fine-tune slider, +scrollbar.horizontal.hovering.fine-tune slider { + min-height: calc(0.5em - 2px); + border-width: calc(0.25em + 1px); + margin: 0 -1px; + /* + min-height: 0.3333333333333333em; + border-width: 0.3333333333333333em; + margin: 0 -0.0833333333333333em; + */ +} +scrollbar.horizontal.overlay-indicator:not(.hovering) slider { + min-width: 2em; + min-height: 0.25em; + border-width: 0; + border-radius: 0.25em; + margin: 0.166666666666666666em 0.25em; + /*margin: 0 0.1666666666666666em;*/ +} + +scrollbar:not(.overlay-indicator).vertical slider, +scrollbar.vertical.hovering slider { + min-height: 2em; + min-width: 0.5em; + border-width: 0.25em; +} +scrollbar:not(.overlay-indicator).vertical.fine-tune slider, +scrollbar.vertical.hovering.fine-tune slider { + min-width: calc(0.5em - 2px); + border-width: calc(0.25em + 1px); + margin: -0.0833333333333333em 0; + /* + min-width: 0.3333333333333333em; + border-width: 0.3333333333333333em; + margin: -0.0833333333333333em 0; + */ +} +scrollbar.vertical.overlay-indicator:not(.hovering) slider { + min-width: 0.25em; + min-height: 2em; + border-width: 0; + border-radius: 0.25em; + margin: 0.1666666666666666em 0; + /*margin: 0.25em 0.166666666666666666em;*/ } /* Scrollbar stuck workaround */ @@ -48,205 +400,18 @@ scrollbar:not(.overlay-indicator):hover { border: none; } -.view:selected:not(check):not(radio) { - color: #262626; - background-color: #AAAAAA -} - -/* The Places and Dir browser panels */ -.view, .textview, textview, textview.view { - background-color: #262626; -} -/* The headers of these panels */ -.view .button { - background-color: #363636; - padding: 2px; -} - -window.background { - background-color: #484848; -} - -/*** Window decoration *********************************************************/ -@define-color winHeaderbar rgb(50,50,50); - -:not(.popup):not(tooltip) > decoration { - background-color: #484848; - background-image: none; - border-radius: 5px 5px 0 0; - border: none; - padding: 0; - box-shadow: 0 3px 9px 1px rgba(0, 0, 0, 0.5), 0 0 0 1px #242424; - margin: 10px; -} -headerbar { - background-color: shade(@winHeaderbar,1.12); - box-shadow: inset 0 1px rgba(200,200,200,.13); - background-image: linear-gradient(shade(@winHeaderbar,1.14), shade(@winHeaderbar,.86)); - border-bottom: 1px solid #242424; - border-radius: 5px 5px 0 0; - min-height: 26px; - padding: 1px 5px 0; - margin: 0; -} -.csd #MainNotebook > header.top { - border-top: 1px solid #484848; -} - -/* Window state */ -.maximized > headerbar { - border-radius: 0; -} -/**/ - -/*** End Window decoration *****************************************************/ - -dialog.background { - background-color: #484848; -} - -box, grid { - border-width: 0; - border-style: none; - border-radius: 0; - margin: 1px; - padding: 0; - min-height: 5px; - min-width: 5px; -} - -/* Affects all frames except in the toolbox */ -frame { - border-width: 0; - border-color: #303030; - border-radius: 0; - border-style: solid; - /*border-style: none none none solid;*/ - padding: 0; - margin: 3px 0 ; - background-color: rgba(0,0,0,0.); -} - -/* Create space between frame contents and frame border */ -frame border { - padding: 4px; - border-radius: 4px; - background-color: #383838 -} - -frame > label { - color: #D8D8D8; -} - -tooltip { - background-color: rgba(0,0,0,0.95); - border-style: none; - box-shadow: none; - padding: 0; -} - -grid separator, box separator { - background-color: rgba(0, 0, 0, 0.17); - padding: 0; -} - -grid separator.horizontal, box separator.horizontal { - margin: 0.3em 0.45em; -} - -grid separator.vertical, box separator.vertical { - margin: 0.45em 0.3em; -} - -#FileBrowser { - padding: 2px; - margin: 0px; -} - -#FileCatalog { - background-color: #393939; -} -#FileCatalog:selected { - background-color: #565656; -} - -#BeforeAfterContainer frame { - background-color: #262626; - padding: 0; - margin: 1px; -} - -#BeforeAfterContainer frame border { - border-radius: 0; - margin: 0; - padding: 0; -} - - -/* Frames in the toolbox. Not MyExpander frames. */ -eventbox.frame { - border-color: #565656; -} - -/*** Scrollbar ***************************************/ -scrollbar { - background-color: #303030; -} -scrollbar slider { - background-color: #808080; -} -scrollbar slider:hover { - background-color: #999999; -} - -scrollbar:not(.overlay-indicator).horizontal slider, -scrollbar.horizontal.hovering slider { - min-height: 6px; - min-width: 24px; -} -scrollbar:not(.overlay-indicator).horizontal.fine-tune slider, -scrollbar.horizontal.hovering.fine-tune slider { - min-height: 4px; - border-width: 4px; - margin: 0 -1px; -} -scrollbar.horizontal.overlay-indicator:not(.hovering) slider { - min-width: 24px; - min-height: 3px; - margin: 0 2px; -} - -scrollbar:not(.overlay-indicator).vertical slider, -scrollbar.vertical.hovering slider { - min-height: 24px; - min-width: 6px; -} -scrollbar:not(.overlay-indicator).vertical.fine-tune slider, -scrollbar.vertical.hovering.fine-tune slider { - min-width: 4px; - border-width: 4px; - margin: -1px 0; -} -scrollbar.vertical.overlay-indicator:not(.hovering) slider { - min-width: 3px; - min-height: 24px; - margin: 2px 0; -} - /**************************************************/ button { padding: 0; box-shadow: none; - min-height: 5px; - min-width: 5px; + min-height: 0.4166666666666666em; + min-width: 0.4166666666666666em; background-image: linear-gradient(to bottom, rgba(100,100,100,.3), rgba(30,30,30,.3)); } -/* Curve mode buttons and drop-downs */ -button:checked.Left { - background-image: linear-gradient(to bottom, rgba(100,100,100,.3), rgba(30,30,30,.3)); - background-color: #585858; +button:disabled { + opacity: 1; } button.flat { @@ -270,7 +435,7 @@ button.flat:hover, checkbutton:hover > check, radiobutton:hover > radio { } button.popupbutton-arrow { - min-width: 18px; + min-width: 1.5em; } button:hover { @@ -291,28 +456,26 @@ button:checked:hover { /* Save, Cancel, OK ... buttons */ .dialog-action-area button { - min-height: 24px; - margin-top: 6px; + min-height: 2em; + margin-top: 0.5em; } /**/ -combobox { - min-height: 5px; - min-width: 5px; - margin-left: 2px; -} - +/*** Scale**************************************************************************************/ scale { padding: 0; - min-height: 5px; - margin: 0 7px 0 0; + min-height: 0.4166666666666666em; + margin: 0 0.5833333333333333em 0 0; } scale slider { /* Slider size is min-width x min-height ; margin have to be half of those values, but negative */ - min-width: 12px; - min-height: 12px; - margin: -6px; + min-width: 0; + min-height: 0; + margin: -0.583333333333333333em; + padding: 0.583333333333333333em; + border-radius: 1.166666666666666666em; + border-width: 0.083333333333333333em; background-image: linear-gradient(#343434, #2E2E2E, #292929); } scale slider:hover { @@ -324,28 +487,50 @@ scale:disabled slider { border-color: #282828; } scale trough { - margin: 6px 6px; /* have to be half of "scale slider / min-width min-height" */ + margin: 0.5em 0.5em; /* have to be half of "scale slider / min-width min-height" */ + min-height: 0.2em; + min-width: 0.2em; + padding: 0 0.583333333333333333em; + border-width: 0.083333333333333333em; + border-radius: 0.333333333333333333em; background-color: #2A2A2A; } -scale.fine-tune trough { - margin: 5px; - padding: 1px; -} -scale.fine-tune trough highlight { - margin: -2px; -} scale:disabled trough { background-color: #444; border-color: #282828; } +scale.color trough { + border-width: 0.083333333333333333em; + min-height: 0.333333333333333333em; + min-width: 0.333333333333333333em; + border-radius: 0; + padding: 0; +} + +scale trough highlight { + border: none; + margin: 0 -0.583333333333333333em; + border-radius: 0.2em; + min-height: 0; + min-width: 0; + padding: 0.1em 0.1em 0 0; /*height of trough */ +} + +scale.fine-tune trough highlight { + padding: 0.5em 0.5em 0 0; + border-radius: 0.5em; +} +/*** end ***************************************************************************************/ + /*.EditorTopPanel .button, .ToolBarPanelFileBrowser .button, .EditorZoomPanel .button {*/ .button { - padding: 1px; - margin: 1px; + padding: 0.0833333333333333em; + margin: 0.0833333333333333em; padding: 0; - min-height: 5px; - min-width: 5px; + min-height: 0.4166666666666666em; + min-width: 0.4166666666666666em; + border-radius: 0.25em; } /* Adjusters */ @@ -355,7 +540,7 @@ scale:disabled trough { /* Any text-button which is a real button, unlike Slider label */ .text-button.button { - padding: 4px; + padding: 0.3333333333333333em; } /* Better on/off state separation for text toggle buttons, e.g. auto-levels or histogram matching. */ @@ -375,17 +560,12 @@ button.text-button.toggle:hover:checked { background-image: linear-gradient(to bottom, rgba(48,48,48,.3), rgba(0,0,0,.3)); } -separator { - color: #363636; - margin: 5px; -} - /* */ .drawingarea { border-radius: 0; background-color: #2A2A2A; - border: 1px solid #1D1D1D; + border: 0.0833333333333333em solid #1D1D1D; } .drawingarea:disabled { background-color: #444; @@ -394,16 +574,16 @@ separator { .drawingarea:selected { background-color: #565656; - border-radius: 10px; + border-radius: 0.8333333333333333em; } image { - padding: 1px; + padding: 0.0833333333333333em; } /* Vertical group of buttons in 1 column */ button.Top { - border-radius: 10px 4px 0 0; + border-radius: 0.25em 0.25em 0 0; border-style: solid solid none solid; margin-bottom: 0; } @@ -414,26 +594,35 @@ button.MiddleV { margin-bottom: 0; } button.Bottom { - border-radius: 0 0 4px 4px; + border-radius: 0 0 0.25em 0.25em; border-style: none solid solid solid; margin-top: 0; } /* end */ /* Horizontal group of buttons in 1 row */ +#MetaPanelNotebook scrolledwindow + grid > button.Left, +#MetaPanelNotebook scrolledwindow + grid + grid > button.Left, +#ProfilePanel button.Left, button.Left { - border-radius: 4px 0 0 4px; + border-radius: 0.25em 0 0 0.25em; border-style: solid none solid solid; margin-right: 0; } +#MetaPanelNotebook scrolledwindow + grid > button.MiddleH, +#MetaPanelNotebook scrolledwindow + grid + grid > button.MiddleH, +#ProfilePanel button.MiddleH, button.MiddleH { border-radius: 0; border-style: solid none solid none; margin-left: 0; margin-right: 0; } +#MetaPanelNotebook scrolledwindow + grid > button.Right, +#MetaPanelNotebook scrolledwindow + grid + grid > button.Right, +#ProfilePanel button.Right, button.Right { - border-radius: 0 4px 4px 0; + border-radius: 0 0.25em 0.25em 0; border-style: solid solid solid none; margin-left: 0; } @@ -441,12 +630,21 @@ button.Right { /* [1.23[-][+]] */ entry, spinbutton { - min-height: 10px; + min-height: 0.8333333333333333em; background-color: #262626; + border-radius: 0.2em; } spinbutton entry { - padding-right: 6px; + padding-right: 0.25em; +} +spinbutton button { + margin: 0; + padding: 0; + border-radius: 0; +} +spinbutton button.up { + border-radius: 0 0.16666666666666666666em 0.16666666666666666666em 0; } entry:disabled, spinbutton:disabled { @@ -470,9 +668,9 @@ menu { /* Context menu item */ menuitem { - padding: 2px; + padding: 0.1666666666666666em; margin: 0; - min-height: 10px; + min-height: 0.8333333333333333em; } /* FlowBoxChild */ @@ -480,28 +678,67 @@ flowboxchild:selected { background-color: inherit; } +/*** Histogram *********************************************************************************/ #HistogramPanel { + min-height: 0; margin: 0; padding: 0; + border: none; } +#HistogramPanel > :nth-child(2) { + border: none; + border-left-width: 0.083333333333333333em; +} + +#HistogramPanel > :nth-child(1) { + border: none; +} + +#EditorLeftPaned #HistogramPanel > :nth-child(1) { + border: none; + border-right-width: 0.083333333333333333em; +} + +#EditorLeftPaned #HistogramPanel > :nth-child(2) { + border: none; +} + +#HistogramArea, +#HistogramRGBArea { + border-width: 0.083333333333333333em; +} + +#histButton { + padding: 0.25em 0.25em 0; + margin: 0 0 -1px 0; + min-height: 1.333333333333333333em; + min-width: 1.333333333333333333em; +} +#histButton:last-child { + padding-bottom: 0.25em; + margin: 0; +} + +/*** end ***************************************************************************************/ + #MyExpander { margin: 0; padding: 0; } #MyExpander.withScrollbar { - margin-right: 6px; + margin-right: 0.25em; } /* Tool background */ #ExpanderBox > box, #ExpanderBox > grid { background-color: #363636; - border-width: 1px; + border-width: 0.0833333333333333em; border-style: solid; - border-radius: 4px; + border-radius: 0.3333333333333333em; border-color: #252525; margin: 0; - padding: 3px; + padding: 0.25em; } #ExpanderBox drawingarea { @@ -511,17 +748,17 @@ flowboxchild:selected { #ExpanderBox frame, #ExpanderBox2 frame, #ExpanderBox3 frame { - padding: 2px 0 0 0; + padding: 0.1666666666666666em 0 0 0; border-style: none; } #ExpanderBox frame > border { background-color: #3B3B3B; border-style: solid; - border-width: 1px; - border-radius: 4px; + border-width: 0.0833333333333333em; + border-radius: 0.3333333333333333em; border-color: #313131; - margin: 3px; - padding: 3px; + margin: 0.25em; + padding: 0.25em; } #ExpanderBox frame > label, #ExpanderBox frame frame > label, @@ -533,13 +770,13 @@ flowboxchild:selected { #ExpanderBox frame > box, #ExpanderBox frame frame > box, #ExpanderBox frame > grid, #ExpanderBox frame frame > grid, #ExpanderBox2 frame > box, #ExpanderBox2 frame frame > box, #ExpanderBox2 frame > grid, #ExpanderBox2 frame frame > grid, #ExpanderBox3 frame > box, #ExpanderBox3 frame frame > box, #ExpanderBox3 frame > grid, #ExpanderBox3 frame frame > grid { - margin: 2px; + margin: 0.1666666666666666em; } #ExpanderBox > box > checkbutton, #ExpanderBox > box > box, #ExpanderBox > grid > checkbutton, #ExpanderBox > box > grid, #ExpanderBox > grid > grid, #ExpanderBox frame > box > grid, #ExpanderBox frame > grid > grid, #ExpanderBox frame > grid > box, #ExpanderBox2 > box > checkbutton, #ExpanderBox2 > box > box, #ExpanderBox2 > grid > checkbutton, #ExpanderBox2 > box > grid, #ExpanderBox2 > grid > grid, #ExpanderBox2 frame > box > grid, #ExpanderBox2 frame > grid > grid, #ExpanderBox2 frame > grid > box, #ExpanderBox3 > box > checkbutton, #ExpanderBox3 > box > box, #ExpanderBox3 > grid > checkbutton, #ExpanderBox3 > box > grid, #ExpanderBox3 > grid > grid, #ExpanderBox3 frame > box > grid, #ExpanderBox3 frame > grid > grid, #ExpanderBox3 frame > grid > box { - margin-top: 2px; + margin-top: 0.1666666666666666em; } #ExpanderBox frame drawingarea { @@ -548,10 +785,10 @@ flowboxchild:selected { #ExpanderBox frame frame > border { background-color: #414141; - border: 1px solid #373737; - border-radius: 4px; - margin: 3px; - padding: 3px; + border: 0.0833333333333333em solid #373737; + border-radius: 0.3333333333333333em; + margin: 0.25em; + padding: 0.25em; } #ExpanderBox frame frame drawingarea { @@ -561,10 +798,10 @@ flowboxchild:selected { /* Sub-tool (MyExpander) background */ #ExpanderBox2 > box, #ExpanderBox2 > grid { background-color: #3B3B3B; - border: 1px solid #2A2A2A; - border-radius: 4px; + border: 0.0833333333333333em solid #2A2A2A; + border-radius: 0.3333333333333333em; margin: 0; - padding: 3px; + padding: 0.25em; } #ExpanderBox2 drawingarea { @@ -573,10 +810,10 @@ flowboxchild:selected { #ExpanderBox2 frame > border { background-color: #414141; - border: 1px solid #373737; - border-radius: 4px; - margin: 3px; - padding: 3px; + border: 0.0833333333333333em solid #373737; + border-radius: 0.3333333333333333em; + margin: 0.25em; + padding: 0.25em; } #ExpanderBox2 frame drawingarea { @@ -585,10 +822,10 @@ flowboxchild:selected { #ExpanderBox2 frame frame > border { background-color: #474747; - border: 1px solid #3D3D3D; - border-radius: 4px; - margin: 3px; - padding: 3px; + border: 0.0833333333333333em solid #3D3D3D; + border-radius: 0.3333333333333333em; + margin: 0.25em; + padding: 0.25em; } #ExpanderBox2 frame frame drawingarea { @@ -596,21 +833,22 @@ flowboxchild:selected { } #MyExpanderTitle > box { - margin: 2px 0; - padding: 2px 0; + margin: 0.1666666666666666em 0; + padding: 0.1666666666666666em 0; } #MyExpanderTitle label { color: #CCCCCC; padding: 0; - margin: 0 3px 0 3px; + margin: 0 0.25em 0 0.25em; + font-size: 1.1em; } #MyExpanderTitle:hover { background-color: #202020; } #MyExpanderTitle eventbox:hover image { background-color: #202020; - border-radius: 3px; + border-radius: 0.25em; } #MyExpanderTitle:hover label { color: #D8D8D8; @@ -622,7 +860,7 @@ flowboxchild:selected { /* Editor tab button */ #MainNotebook grid label, #MainNotebook grid image { - padding: 1px; + padding: 0.0833333333333333em; } /* File Browser right side tabs - Toolbox, Inspector, Fast Export, Filter */ @@ -635,57 +873,51 @@ notebook { notebook header { box-shadow: none; background-color: #383838; - border-width: 1px; + border-width: 0.0833333333333333em; border-style: none; border-color: #262626; border-radius: 0; - padding: 2px; + padding: 0.1666666666666666em; margin: 0; } notebook tabs { - padding: 1px; + padding: 0.0833333333333333em; margin: 0; } notebook tab { - padding: 1px; - margin: 2px; - min-height: 15px; - min-width: 15px; + padding: 0.0833333333333333em; + margin: 0.1666666666666666em; + min-height: 1.25em; + min-width: 1.25em; } notebook tab:hover { background-color: #505050; } -notebook tab:active { - padding: 3px; - border-width: 5px; - border-color: #989898; -} - notebook tab button { padding: 0 0; - margin: 0 3px; + margin: 0 0.25em; } /* Get rid of shitty notebook header shadow */ notebook header.top { border-bottom-style: solid; - padding-bottom: 3px; + padding-bottom: 0.25em; } notebook header.right { border-left-style: solid; - padding-left: 3px; + padding-left: 0.25em; } notebook header.bottom { border-top-style: solid; - padding-top: 3px; + padding-top: 0.25em; } notebook header.left { border-right-style: solid; - padding-right: 3px; + padding-right: 0.25em; } notebook.frame { @@ -709,19 +941,29 @@ paned box, paned grid { } paned > separator { - border-width: 1px 1px 0 0; + border-width: 0.0833333333333333em 0.0833333333333333em 0 0; border-style: solid; border-color: #404040; - padding: 0px; - margin: 4px; + padding: 0; + margin: 0.3333333333333333em; +} +fontchooser scrolledwindow, +#PlacesPaned scrolledwindow, +#HistoryPanel scrolledwindow, +#Snapshots scrolledwindow { + border-width: 0.083333333333333333em; } #PlacesPaned { - padding: 0px 0px 5px 5px; + margin: 0; + padding: 0 0.4166666666666666em 0 0; } -#PlacesPaned:first-child { +#PlacesPaned > box:nth-child(1) scrolledwindow + grid { + margin: 0; + border-top-width: 0.083333333333333333em; +} +#PlacesPaned > box:nth-child(3) treeview { padding: 0; - margin: 2px 0 4px 4px; } #MainNotebook > header.left tab image { @@ -755,29 +997,64 @@ paned > separator { /* OK */ border-color: #989898; } +#MainNotebook tab:checked { + background-color: #505050; +} + +#RightNotebook > stack > :nth-child(1) checkbutton + scrolledwindow { + min-height: calc(6em + 43px); +} +#RightNotebook > stack > scrolledwindow frame, +#BatchQueueButtonsMainContainer frame, +#MyExpander frame, +dialog frame { + margin: 0; + padding: 0.19em 0.5em; +} +#RightNotebook > stack > scrolledwindow frame > border, +#BatchQueueButtonsMainContainer > frame > border, +#MyExpander frame > border, +dialog frame > border { + padding: 0 0.333333333333333333em 0.333333333333333333em; + border-width: 0.083333333333333333em; + margin: 0 -0.583333333333333333em; +} +#RightNotebook > stack > scrolledwindow frame > label:not(.dummy), +#BatchQueueButtonsMainContainer frame > label:not(.dummy), +#ToolPanelNotebook frame > label:not(.dummy), +dialog frame > label:not(.dummy) { + padding: 0.25em 0.5em; +} +#BatchQueueButtonsMainContainer frame > border { + margin-bottom: 0.833333333333333333em; +} +#BatchQueueButtonsMainContainer frame:nth-child(3) > border { + padding-left: 0.916666666666666666em; +} #RightNotebook header { - /* OK */ background-color: #2A2A2A; } #RightNotebook tabs { - /* OK */ background-color: #2A2A2A; - padding-bottom: 5px; + padding-bottom: 0.083333333333333333em; } #RightNotebook tab:hover { - /* OK */ background-color: #505050; color: #D6D6D6; } #RightNotebook tab:active { - /* OK */ border-color: #A5A5A5; } #LabelRightNotebook { - padding: 5px; - margin: 2px; + padding: 0.4166666666666666em; + margin: 0.1666666666666666em; + font-size: 1.25em; +} + +#ToolPanelNotebook { + min-width: 25em; } #ToolPanelNotebook header { @@ -788,32 +1065,33 @@ paned > separator { } #ToolPanelNotebook header tabs { - background-color: #383838; + background-color: #2A2A2A; + margin: 0; } #ToolPanelNotebook header tab { - padding: 3px; + padding: 0.25em; margin: 0; } /* All tool panels have a frame except for Meta which unlike the rest is a notebook itself. * So we use CSS to make it look like a frame. */ #MetaPanelNotebook > stack > box { - border: 1px solid #262626; + border: 0.0833333333333333em solid #262626; background-color: #363636; - border-radius: 0 0 4px 4px; + border-radius: 0 0 0.3333333333333333em 0.3333333333333333em; border-top-style: none; - padding: 0 3px 3px 3px; - margin: 0 5px 5px 5px; + padding: 0 0.25em 0.25em 0.25em; + margin: 0 0.4166666666666666em 0.4166666666666666em 0.4166666666666666em; } #MetaPanelNotebook header { - border: 1px solid #262626; + border: 0.0833333333333333em solid #262626; background-color: #363636; - border-radius: 4px 4px 0 0; + border-radius: 0.3333333333333333em 0.3333333333333333em 0 0; border-bottom-style: none; - padding: 5px; - margin: 5px 5px 0 5px; + padding: 0.4166666666666666em; + margin: 0.4166666666666666em 0.4166666666666666em 0 0.4166666666666666em; } #MetaPanelNotebook > header > tabs { @@ -821,36 +1099,36 @@ paned > separator { } #MetaPanelNotebook > header tab { - margin: 0 5px; - padding: 5px; + margin: 0 0.4166666666666666em; + padding: 0.4166666666666666em; } #MetaPanelNotebook textview { - border-radius: 3px; + border-radius: 0.25em; } #MetaPanelNotebook entry, #MetaPanelNotebook scrolledwindow, #MetaPanelNotebook combobox { - margin: 2px 0 2px 0; + margin: 0.1666666666666666em 0 0.1666666666666666em 0; } #MetaPanelNotebook entry { - padding: 0 1px; + padding: 0 0.0833333333333333em; } #MetaPanelNotebook label { - padding: 0 5px; + padding: 0 0.4166666666666666em; } #MetaPanelNotebook text { border-color: #202020; background-color: #262626; border-style: solid; - border-width: 1px; - border-radius: 3px; + border-width: 0.0833333333333333em; + border-radius: 0.25em; } #MetaPanelNotebook stack > box > scrolledwindow > viewport { - margin-left: 15px; + margin-left: 1.25em; } #PreviewWindow { @@ -881,27 +1159,25 @@ paned > separator { padding: 3pt; margin: 0; } +#PrefNotebook box > frame > border { + padding-top: 0; + padding-bottom: 0.25em; +} +#PrefNotebook scrolledwindow scrolledwindow { + border-width: 0.083333333333333333em; +} /* Add space between bottom panel and window edge */ #IopsPanel { - padding: 0 2px 2px; -} - -/* Move places paned (Places and Folders) away from window edges */ -#PlacesPaned { - padding: 5px; -} - -#EditorLeftPaned:first-child { - padding: 0 0 0 3px; + padding: 0 0.1666666666666666em 0.1666666666666666em; } #EditorLeftPaned:last-child { - padding: 10px 0 0 10px; + padding: 0.8333333333333333em 0 0 0.8333333333333333em; } #EditorRightPaned:last-child { - padding: 0 4px 0 0; + padding: 0; } #MainNotebook > header #CloseButton { @@ -914,17 +1190,71 @@ paned > separator { } #RightNotebook #ToolPanelNotebook stack { - margin: 0px; + margin: 0; } #RightNotebook #HistoryPanel { - padding: 4px; + min-width: 17.5em; + margin-top: 0.333333333333333333em; } #RightNotebook scrolledwindow { - padding: 4px; + padding: 0; +} +#HistoryPanel { + margin-top: 0.25em; +} +#HistoryPanel > border { + margin-top: 1.75em; +} +#HistoryPanel > label { + margin: 0 0 -1.5em 0; + padding: 0 0 0 0.083333333333333333em; +} +#Snapshots { + margin-top: 0.166666666666666666em; +} +#Snapshots > border { + min-height: calc(6em + 36px); +} +#Snapshots > label { + margin-bottom: -4px; +} +#Snapshots scrolledwindow + box { + margin: -8px 0 -4px ; + border-top-width: 0.083333333333333333em; +} +#Navigator { + padding-top: 0.75em; + padding-bottom: 0.25em; +} +#Navigator label { + padding: 0; } +/*** PartialPaste ******************************************************************************/ +#PartialPaste { + border-width: 0.083333333333333333em; + padding-top: 0.5em; + padding-bottom: 0.5em; +} + +#PartialPaste separator.vertical { + margin: 0 0.333333333333333333em; + padding: 0; +} + +#PartialPaste separator { /* Struggles with #PartialPasteHeaderSep */ + margin: 0.166666666666666666em 0.5em 0.166666666666666666em 1.166666666666666666em; +} +#PartialPasteHeaderSep.horizontal { + margin: 0.166666666666666666em 0.5em; +} + +/* +#PartialPasteHeader label { +} +*/ /* make the "partial profile" dialog a little bit more readable */ #PartialPasteHeader { @@ -937,14 +1267,17 @@ paned > separator { background-color: #D8D8D8; } +/*** end ***************************************************************************************/ + + /* All MyFileChooserButtons */ button#MyFileChooserButton { - padding: 2px; - margin: 2px; + padding: 0.1666666666666666em; + margin: 0.1666666666666666em; } #ToolPanelNotebook button { - margin: 0px; + margin: 0; } button.flat { @@ -959,25 +1292,25 @@ button.flat:checked { .text-button, .image-button, .independent { box-shadow: none; - min-height: 24px; - min-width: 24px; - padding: 0px; + min-height: 2em; + min-width: 2em; + padding: 0; } /* Makes image-comboboxes (e.g. tone curve types) have same size as image buttons */ combobox, .popupbutton-arrow { - min-height: 24px; + min-height: 2em; } /* Makes image-combobox small icons centered */ button.toggle > grid > image { - padding: 4px; + padding: 0.3333333333333333em; } #histButton { background: none; - min-height: 16px; - min-width: 16px; + min-height: 1.3333333333333333em; + min-width: 1.3333333333333333em; } /* -gtk-icon-shadow looks buggy on the small histogram icons */ @@ -986,38 +1319,23 @@ button.toggle > grid > image { } .narrowbutton { - min-width: 10px; + min-width: 0.8333333333333333em; } .smallbuttonbox button { - min-width: 16px; - min-height: 16px; + min-width: 1.3333333333333333em; + min-height: 1.3333333333333333em; } -/* Adds padding around sides of text-buttons */ -button.text-button { - padding: 0 8px; -} /* Adds gap between combobox contents and combobox edges */ button.combo, .image-combo .toggle, #MyFileChooserButton { - padding-left: 4px; - padding-right: 4px; -} - -/* Progress bars */ - -progressbar.horizontal { - min-width: 100px; - margin-bottom: 2px; -} - -progressbar.vertical { - min-height: 100px; - margin: 8px 0; + padding-left: 0.3333333333333333em; + padding-right: 0.3333333333333333em; } +/*** Progressbar *******************************************************************************/ progressbar trough { background-color: #383838; border: none; @@ -1025,20 +1343,13 @@ progressbar trough { progressbar progress { border-color: #363636; - border-radius: 3px; + /*border-radius: 0.25em;*/ background-color: #215d9c; } - -progressbar.horizontal trough, progressbar.horizontal progress { - min-height: 10px; -} - -progressbar.vertical trough, progressbar.vertical progress { - min-width: 10px; -} +/*** end ***************************************************************************************/ /* Add padding to grid cells */ .grid-spacing > * { - margin: 2px; + margin: 0.1666666666666666em; } diff --git a/rtdata/themes/TooWaBlue-GTK3-20_.css b/rtdata/themes/TooWaBlue-GTK3-20_.css index 172684452..a3214b45c 100644 --- a/rtdata/themes/TooWaBlue-GTK3-20_.css +++ b/rtdata/themes/TooWaBlue-GTK3-20_.css @@ -2,7 +2,7 @@ This file is part of RawTherapee. Copyright (c) 2016-2019 TooWaBoo - Version 3.04 + Version 3.05 RawTherapee is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -84,15 +84,13 @@ box-shadow: none; } -/*GTK+4 now supports a more versatile -gtk-icon-filter instead. Replace --gtk-icon-effect: dim; with -gtk-icon-filter: opacity(0.5); and --gtk-icon-effect: highlight; with -gtk-icon-filter: brightness(1.2);.*/ *:disabled { color: @fg-disabled; - -gtk-icon-effect: dim; + -gtk-icon-effect: none; } -*:hover { - -gtk-icon-effect: highlight; + +image:disabled { + opacity: .45; } #ToolPanelNotebook { diff --git a/rtdata/themes/size.css b/rtdata/themes/size.css new file mode 100644 index 000000000..86d2eaea5 --- /dev/null +++ b/rtdata/themes/size.css @@ -0,0 +1,1030 @@ +* { + min-width: 0; + min-height: 0; + padding: 0; + margin: 0; +} + +progressbar.vertical { + min-width: 0; + min-height: 9em; +} +progressbar trough { + border-width: 0.083333333333333333em; + border-radius: 0.3em; +} + +progressbar trough progress { + border-width: 0.083333333333333333em; + border-radius: 0.3em; +} + +progressbar.vertical trough { + min-width: 0.6em; +} +progressbar.vertical trough progress { + min-width: 0.6em; + margin: 0; +} + +progressbar.horizontal trough { + min-height: 0.6em; + margin-top: 0; +} +#IopsPanel progressbar.horizontal trough { + margin-top: 0; +} + +progressbar.horizontal trough progress { + min-height: 0.6em; + margin: 0; +} + +/* #IopsPanel progressbar trough.empty, */ +progressbar trough.empty progress { +} + +/*** Notebook **********************************************************************************/ +notebook, +notebook header, +notebook tabs, +notebook tab, +notebook stack { + border-radius: 0; + border: none; + padding: 0; + margin: 0; + min-width: 0; + min-height: 0; +} +notebook > header { + padding: 0 0.416666666666666666em; +} +notebook > header.left { + padding: 0.416666666666666666em 0; +} +notebook > header tab { + margin: 0.416666666666666666em 0.25em; + padding: 0 0.333333333333333333em; +} +notebook > header.left tab { + margin: 0.2em; + padding: 0.333333333333333333em; +} +notebook > header.left tabs { + margin: 0; + padding: 0; +} +notebook > header tab > grid > image { + min-height: 2em; + min-width: 2em; + padding: 0.25em; + margin: 0; +} + +notebook > header > tabs > arrow { + border-radius: 0.2em; + padding: 0 0.166666666666666666em; + margin: 0.5em 0; +} +notebook > header.left > tabs > arrow { + padding: 0.166666666666666666em 0; + margin: 0 0.5em; +} + +/*?win*/ +#MainNotebook > stack { + padding: 0.25em; +} + +#MainNotebook > stack > :nth-child(2) > box:nth-child(3) { + margin-top: 0.416666666666666666em; +} + + +/* Adds a line on top of the notebook as a separtor for the titlebar (only on CSD) */ +dialog.csd #PrefNotebook > header, +dialog.csd #AboutNotebook > header, +window.csd:not(.fullscreen) #MainNotebook > header.top { + border-top-width: 0.083333333333333333em; +} +/**/ + + +#RightNotebook > stack > scrolledwindow > viewport > box > box:last-child > image, +#ToolPanelNotebook > stack > scrolledwindow > viewport > box > box:last-child > image { + min-height: 5em; +} + +#ToolPanelNotebook > header { + border-bottom-width: 0.083333333333333333em; + margin-left: 0.083333333333333333em; + margin-right: 0.083333333333333333em; + padding: 0 0.19em; +} +#ToolPanelNotebook > header tabs { + margin: 0; +} +#ToolPanelNotebook > header tab { + padding: 0; +} +#ToolPanelNotebook > header tab image{ + min-height: 2em; + min-width: 2em; + margin: 0.19em 0.25em 0.333333333333333333em; + padding: 0; +} +#ToolPanelNotebook > stack { + padding: 0; +} + +#RightNotebook > header { + margin: 0 0.2em 0 0; +} +#RightNotebook > stack { + padding: 0; +} +#RightNotebook > header tab label { + padding-left: 0.25em; + padding-right: 0.25em; +} + +#RightNotebook > stack > :nth-child(1) > * > box, +#RightNotebook > stack > :nth-child(4) > * > box { + padding: 0.5em; + border-width: 0.083333333333333333em; +} + +#PrefNotebook > header { + margin: -0.666666666666666666em -0.666666666666666666em 0.333333333333333333em; +} +#PrefNotebook > stack { + margin: 0 -0.666666666666666666em; +} +#PrefNotebook > stack > scrolledwindow > viewport { + padding: 0 0.333333333333333333em; +} + +#AboutNotebook > header { + margin: -0.666666666666666666em -0.666666666666666666em 0.666666666666666666em; +} + +#AboutNotebook > stack text, +#AboutNotebook > stack textview { + padding: 0.75em 0; +} +/* Meta panel notebook */ +#MetaPanelNotebook > header { + padding: 0.333333333333333333em; + margin: 0 0.5em 0; +} +#MetaPanelNotebook > header > tabs { + padding-left: 0.333333333333333333em; +} +#MetaPanelNotebook > stack { + padding: 0 0 0.5em 0; +} + +#MetaPanelNotebook > stack > box { + border: none; + border-radius: 0; + border-top-style: none; + padding: 0 0.333333333333333333em 0.25em; + margin:0 0.5em -0.5em; +} +#MetaPanelNotebook > stack > box:nth-child(1) > scrolledwindow { + margin: 0 0 0.333333333333333333em; + padding: 0; +} + +#MetaPanelNotebook > stack > box:nth-child(2) > scrolledwindow > viewport.frame { + padding: 0; +} + +#MetaPanelNotebook entry { + padding: 0 0.333333333333333333em; + border-radius: 0; + margin-left: 0; + margin-right: 0; +} + +#MetaPanelNotebook .view { + border-width: 0.083333333333333333em; + padding: 0.083333333333333333em 0.25em; +} + +#MetaPanelNotebook stack label { + margin-top: 0; + margin-bottom: 0; + padding: 0; +} + +/*** end ***************************************************************************************/ + +/*** File Browser ******************************************************************************/ +#FileCatalog { + border-width: 0.083333333333333333em; +} + +/*?win*/ +#FileBrowser { + padding: 0; + margin: 0; +} + +#ToolBarPanelFileBrowser { + margin: 0 0 0.416666666666666666em 0; + min-height: 0; + min-width: 0; + padding: 0; +} +#FileBrowserQueryToolbar > viewport > box { + margin: 0 0 0.416666666666666666em 0; + min-height: 0; + min-width: 0; + padding: 0; +} + +/*** end ***************************************************************************************/ + +/*** Image Editor ******************************************************************************/ +#EditorRightPaned { + margin: 0; +} + +#BeforeAfterContainer { + border-width: 0.083333333333333333em; + border-radius: 0; + padding: 0; + margin: calc(0.416666666666666666em - 2px) 0 0.416666666666666666em; +} +#BeforeAfterContainer > box:nth-child(2) > box:nth-child(2), +#BeforeAfterContainer > box:nth-child(1) > box:nth-child(2){ + border-top: 0.083333333333333333em solid @bg-dark-grey; +} +#BeforeAfterContainer > box:nth-child(2){ + border-left: 0.083333333333333333em solid @bg-dark-grey; +} + +/* !!! Must be same height as "Small Lock Button" */ +#BeforeAfterContainer label { + padding: 0 0.5em; + min-height: 2em; + min-width: 2em; + margin: 0.25em 0; + border-width: 0.083333333333333333em; +} + +#EditorToolbarTop { + margin: 0 -1px 0 -1px; + padding: 0; + min-height: 0; +} + +#IopsPanel { + margin: 0; + padding: 0; + min-height: 0; +} + +#EditorZoomPanel label { + min-width: 4em; + margin: 0; +} +/*** end ***************************************************************************************/ + +/*** Toolbox ***********************************************************************************/ +#MyExpander image { + min-width: 1.333333333333333333em; + min-height: 0; + margin: -0.083333333333333333em 0.19em; +} + +#MyExpander .drawingarea:not(.slider) { + border-width: 0.083333333333333333em; +} +#MyExpander .slider, +#MyExpander #CurveSHCSelector { + border-width: 0.083333333333333333em; +} +#MyExpander .drawingarea:disabled { +} +#ThresholdAdjuster { + margin: 0.083333333333333333em 0 0.166666666666666666em 0; +} + +#ToolPanelNotebook > stack > scrolledwindow > viewport.frame { + padding: 0 0.25em; +} + +#MyExpander { + margin: 0; + padding: 0; +} +#ExpanderBox > box, #ExpanderBox > grid { + border-width: 0.083333333333333333em; + border-radius: 0.416666666666666666em; + margin: 0; + padding: 0.5em 0.333333333333333333em; +} + +/* Sub-tool (MyExpander) */ +#ExpanderBox2 > box, #ExpanderBox2 > grid { + border-width: 0.083333333333333333em; + border-radius: 0.416666666666666666em; + margin: 0 0.19em; + padding: 0.333333333333333333em; +} + +#MyExpanderTitle > box { + margin: 0; + padding: 0.25em 0; +} + +#MyExpanderTitle label { + padding: 0; + margin: 0.083333333333333333em 0.25em 0 0.166666666666666666em; +} +/*** end ***************************************************************************************/ + +/*** Context & popups menus *****************************************************************************/ +.csd.popup > decoration { + border-radius: 0; + border: none; + padding: 0; + margin: 0; +} + +menu { + border-width: 0.083333333333333333em; + padding: 0.083333333333333333em; + margin: 0; + border-radius: 0; +} +menu > arrow.top, +menu > arrow.top:hover, +menu > arrow.bottom, +menu > arrow.bottom:hover { + border: none; + padding: 0.5em; + min-height: 1.5em; +} + +menuitem { + padding: 0 0.333333333333333333em; + margin: 0.083333333333333333em; + min-height: 2em; +} + +menu arrow { + min-width: 1.333333333333333333em; + margin: 0 -0.19em; + padding: 0; + margin: 0 -0.25em 0 0; +} + +menu image:not(.dummy), +#MyExpander menu image:not(.dummy) { + min-height: 2em; + min-width: 1.5em; + padding: 0; + margin: 0 0 0 -1.333333333333333333em; +} + +/*** Selection popup list (used in filechooser) ***/ +entry > window > frame:not(.dummy) { + padding: 0; +} +entry > window > frame > border:not(.dummy) { + padding: 0.083333333333333333em; + margin: 0.083333333333333333em; + border-width: 0.083333333333333333em; +} +/* end */ + +/*** end ***************************************************************************************/ + +/*** Popover *** Context menu filechooser ******************************************************/ +popover { + border-width: 0.083333333333333333em; + border-radius: 0; + padding: 0; + margin: 0; +} +popover > box { + padding: 0; + margin: -9px; +} +popover modelbutton { + min-height: 2em; + padding: 0 0.416666666666666666em; + margin: 0; + border-radius: 0; +} + +popover label { + margin-right: 0.5em; +} +/** end ****************************************************************************************/ + +/*** Switch ***********************************************************************************/ +switch { + min-height: 2.333333333333333333em; + min-width: 11em; + margin: 0 0.19em; + padding: 0; + border-radius: 0.2em; + border-width: 0.083333333333333333em; + margin-bottom: 0.5em; +} + +switch slider { + border-width: 0.083333333333333333em; + border-radius: 0.2em 0 0 0.2em; + + /* Needed to cover the total switch */ + margin: -0.083333333333333333em; + padding: 0.083333333333333333em; +} +switch:checked slider{ + border-radius: 0 0.2em 0.2em 0; +} +/** end ****************************************************************************************/ + +/*** Buttons ***********************************************************************************/ +button, +#BeforeAfterContainer button { + min-height: 1.666666666666666666em; + min-width: 1.666666666666666666em;/*x*/ + margin: 0.19em; + border-radius: 0.2em; + border-width: 0.083333333333333333em; +} +button.flat { + border-width: 0.083333333333333333em; +} + +/* Combobox */ +button.combo { + padding: 0 0 0 0.25em; +} +combobox entry.combo + button.combo { + min-width: 1em; + margin-left: 0; + padding: 0; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + border-left: none; +} +#WB-Size-Helper button.combo { + min-width: 0; + margin: 0; +} +#WB-Size-Helper { + min-width: 3.5em; + margin: 0.19em; +} + +combobox arrow { + margin-right: 0.083333333333333333em; +} + +combobox entry.combo + button.combo arrow { + margin-right: 0; +} + +#PlacesPaned button.combo { + margin: 0; +} +#PlacesPaned combobox { + margin-bottom: calc(0.416666666666666666em - 8px); +} + +#ProfilePanel combobox { + margin-right: -0.166666666666666666em; +} + +/* Misc */ +button label { + margin: 0 0.416666666666666666em; +} +button image:not(.dummy), +#MyExpander button image:not(.dummy) { + margin: 0; +} +#MyFileChooserButton label { + margin: 0 0 0 0.416666666666666666em; +} +#MyFileChooserButton image:not(.dummy):last-child { + margin: 0 0.416666666666666666em 0 0; + min-width: 1.333333333333333333em; +} +#MetaPanelNotebook button + button:last-child { + margin-right: 0; +} +#MetaPanelNotebook scrolledwindow + grid > button:first-child, +#MetaPanelNotebook scrolledwindow + grid + grid > button:first-child { + margin-left: 0; +} +#MetaPanelNotebook scrolledwindow + grid > button:last-child, +#MetaPanelNotebook scrolledwindow + grid + grid > button:last-child { + margin-right: 0; +} + +#ProfilePanel { + margin-bottom: 0.35em; +} +#ProfilePanel > grid { + margin-bottom: 0.2em; +} + +/* Reset button */ +scale + button.flat, +spinbutton + button.flat, +scale + image + image + button.flat { + min-height: 1.333333333333333333em; + margin-top:0.095em; + margin-bottom: 0.095em; +} + +/* Color chooser & buttons */ +button.color { + min-width: 3.25em; +} + +button.color colorswatch { + min-height: 0; + min-width: 0; + margin: 1px; + border-radius: 0.2em; +} + +colorchooser colorswatch { + border-width: 1px; +} +colorchooser colorswatch#add-color-button:first-child { + border-radius: 5.5px 0 0 5.5px; +} + +/* Font chooser button */ +button.font label{ + min-height: 0; + min-width: 0; + margin: 0 0.19em; +} + +/* Save, Cancel, OK ... buttons */ +dialog .dialog-action-area button { + min-height: 2.166666666666666666em; + margin: 0.5em 0 0 0.333333333333333333em; + padding: 0; +} +messagedialog .dialog-action-area button { + min-height: 1.833333333333333333em; + margin: 0 0.5em 0.5em; + padding: 0; +} +messagedialog .dialog-action-area button:not(:only-child):nth-child(1) { + margin-right: 0.25em; +} +messagedialog .dialog-action-area button:not(:only-child):nth-child(2) { + margin-left: 0.25em; +} + +/* Big tool buttons */ +#ToolBarPanelFileBrowser button, +#EditorTopPanel button, +#IopsPanel button, +#ProfilePanel button, +#MainNotebook > header > grid > button, +#MyExpander button.independent.toggle:not(.image-button):not(.text-button):first-child:only-child, /* Graduated filter big button */ +.curve-mainbox .curve-buttonbox button.flat, +#BatchQueueButtonsMainContainer + grid + box button, +#RightNotebook > stack > scrolledwindow:last-child button.image-button, /* Fast Export */ +#MetaPanelNotebook scrolledwindow + grid > button, +#MetaPanelNotebook scrolledwindow + grid + grid > button { + min-height: 2.5em; + min-width: 2.5em; + margin: 0 0.19em; +} +#ToolBarPanelFileBrowser > button:first-child, +#EditorTopPanel > button:first-child, +#IopsPanel > button:nth-child(6), +#ProfilePanel > grid > button:first-child { + margin-left: 0; +} +#ToolBarPanelFileBrowser > button:last-child, +#ToolBarPanelFileBrowser > box:last-child > button:last-child, +#EditorTopPanel > button:last-child, +#EditorTopPanel > box:last-child > button:last-child, +#IopsPanel > button:last-child, +#ProfilePanel > grid > button:last-child, +#BatchQueueButtonsMainContainer + grid + box button { + margin-right: 0; +} +#MyExpander button.independent.toggle:not(.image-button):not(.text-button):first-child:only-child, /* Graduated filter button */ +#MetaPanelNotebook scrolledwindow + grid > button, +#MetaPanelNotebook scrolledwindow + grid + grid > button { + margin: 0.19em; +} + +#EditorTopPanel button.narrowbutton { + min-width: 0.833333333333333333em; + padding: 0 0.166666666666666666em; +} + +/* Image close button */ +#MainNotebook > header tab #CloseButton { + padding: 0; + margin: 0.333333333333333333em 0 0.416666666666666666em 0.19em; + min-width: 1.5em; + min-height: 0; +} +#MainNotebook > header tab #CloseButton image{ + min-width: 1.333333333333333333em; + min-height: 1.333333333333333333em; +} + +/* Filter buttons*/ +#ToolBarPanelFileBrowser .smallbuttonbox { + min-height: 1.333333333333333333em; + padding: 0; + margin: 0; +} +#ToolBarPanelFileBrowser .smallbuttonbox:nth-child(2) { + margin: 0.083333333333333333em 0 -0.166666666666666666em; +} +#ToolBarPanelFileBrowser .smallbuttonbox button.smallbutton image { + margin: -0.19em; + min-width: 1.333333333333333333em; + min-height: 1.333333333333333333em; +} +#ToolBarPanelFileBrowser .smallbuttonbox button.smallbutton { + min-height: 0; + min-width: 1.333333333333333333em; + padding: 0; + margin: 0 0.25em; + border: none; + border-radius: 0; +} + +/* Arrow toggle combo button */ +#IopsPanel .image-combo button.Right, +#MyExpander .image-combo button.Right { + border-left: none; + margin-left: 0; + padding: 0; + border-top-left-radius: 0; + border-bottom-left-radius: 0; + min-width: 1.333333333333333333em; +} +#IopsPanel .image-combo button.Right image, +#MyExpander .image-combo button.Right image { + margin: 0 -0.083333333333333333em; +} +#IopsPanel .image-combo button.Left, +#MyExpander .image-combo button.Left { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + min-width: 2.5em; + margin-right: 0; +} +#MyExpander .image-combo button.Left { + min-width: 2.75em; +} +#MyExpander .image-combo button.Left label { + margin-right: 0; +} + +/* Search & Query buttons */ +#FileBrowserQueryToolbar entry + button.flat, +#FileBrowserIconToolbar entry + button.flat { + min-height: 1.666666666666666666em;/*x*/ + min-width: 1.666666666666666666em;/*x*/ + margin: 0; + border-radius: 0 0.2em 0.2em 0; + border-width: 0.083333333333333333em; + padding: 0; +} +#FileBrowserQueryToolbar entry + button.flat:not(:hover):not(:active), +#FileBrowserIconToolbar entry + button.flat:not(:hover):not(:active) { + border-left: none; + padding-left: 0.083333333333333333em; +} +#FileBrowserIconToolbar box > entry + button.flat { + margin-top: 0.416666666666666666em; + margin-bottom: 0.416666666666666666em; + min-height: 0; +} + +/* Small Lock Button */ +#BeforeAfterContainer button { + min-height: 2em; + min-width: 2em; + margin: 0.25em 0.25em 0.25em 0; + padding: 0; + border-radius: 0.2em; + border-width: 0.083333333333333333em; +} +#BeforeAfterContainer button image{ + margin: 0 0 0 0.083333333333333333em; +} +#BeforeAfterContainer button:checked image{ + margin: 0.083333333333333333em -0.166666666666666666em 0.083333333333333333em 0.25em; +} + +/* Snapshot & Places buttons */ +#Snapshots button, +#PlacesPaned > box:nth-child(1) scrolledwindow + grid > button { + margin: 0; + padding: 0; + border-width: 0.083333333333333333em; + border-radius: 0; + min-height: 0.5em;/*x*/ +} +/**/ + + +/* View & Filechooser Buttons */ +.view button { + min-height: 2em; + min-width: 1.333333333333333333em; + padding: 0 0.19em; + margin: 0; +} +#pathbarbox button { + min-width: 2em; + margin: 0; + padding: 0; + } +window treeview > header image { + min-width: 1.333333333333333333em; +} + +window .view button { + border: none; + border-bottom-width: 0.083333333333333333em; +} +dialog .view button { + border-width: 0.083333333333333333em; +} + +.view header button:not(:first-child):not(:only-child), +.path-bar button:not(:first-child):not(:only-child) { + border-left: none; +} +.view header button, +.path-bar button { + border-radius: 0; +} + +.path-bar button:first-child { + border-top-left-radius: 0.2em; + border-bottom-left-radius: 0.2em; + margin: 0; + padding: 0; +} +.path-bar button:last-child { + border-top-right-radius: 0.2em; + border-bottom-right-radius: 0.2em; + margin: 0; + padding: 0; +} +#pathbarbox button:not(:first-child):not(:last-child) label { + margin: 0 0.5em; +} + +#pathbarbox button:not(:first-child):not(:last-child) image { + margin: 0 0 0 0.5em; + min-width: 1.333333333333333333em; +} +/**/ + +/* Popover Filechooser (Create folder) */ +popover button.text-button { + border-width: 0.083333333333333333em; +} +popover button.text-button label { + padding: 0; + margin: 0; +} +/* Adds padding around sides of text-buttons */ +button.text-button { + padding: 0 0.6666666666666666em; +} +/**/ + +/*** end ***************************************************************************************/ + +/*** Checkbox & Radio **************************************************************************/ +checkbutton, +radiobutton { + padding: 0.083333333333333333em 0; + margin: 0.19em; + min-height: 1.666666666666666666em;/*x*/ +} + +check, +radio { + border-width: 0.105em; + margin: 0; + padding: 0; + min-height: 1.166666666666666666em; + min-width: 1.166666666666666666em; +} +check { + border-radius: 0.166666666666666666em; +} + +radio{ + border-radius: 1.166666666666666666em; +} + +radiobutton label, +checkbutton label { + margin: 0 0.583333333333333333em 0 0.416666666666666666em; + padding: 0; +} + +frame > checkbutton check{ + margin-left: 0.5em; +} + +#PartialPaste checkbutton { + padding: 0; + margin: 0.19em 0 0 0.583333333333333333em; +} +#PartialPaste checkbutton:not(#PartialPasteHeader) { + margin: 0 0 0 1.166666666666666666em; +} + +/*** end ***************************************************************************************/ + +/*** Entry & Spinbutton ************************************************************************/ +#MyExpander entry, +entry, +spinbutton { + margin: 0.19em; + padding: 0 0.333333333333333333em; + min-height: 1.666666666666666666em;/*x*/ + min-width: 0; + border-width: 0.083333333333333333em; +} +#FileBrowserQueryToolbar entry, +#FileBrowserIconToolbar entry { + min-height: 1.666666666666666666em;/*x*/ + min-width: 0; + margin: 0; + border-right: none; + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +#FileBrowserIconToolbar box > entry { + margin-top: 0.416666666666666666em; + margin-bottom: 0.416666666666666666em; + margin-left: 0.19em; + min-height: 0; +} +#FileBrowserQueryToolbar box + box > label + entry { + margin-left: 0.19em; +} +spinbutton { + padding: 0; +} + +#MyExpander spinbutton { + margin: 0.19em; + padding: 0; + min-height: 1.333333333333333333em; + min-width: 0; + border-width: 0.083333333333333333em; +} +/* Needed for Reset & and Auto button height*/ +#MyExpander button + label + spinbutton { + margin-top: 0.333333333333333333em; + margin-bottom: 0.333333333333333333em; +} +#MyExpander checkbutton + label + spinbutton { + margin-top: 0.416666666666666666em; + margin-bottom: 0.416666666666666666em; +} +/**/ + +#MyExpander spinbutton button, +spinbutton button { + padding: 0; + min-height: 1.333333333333333333em; + min-width: 1.666666666666666666em; + border: none; +} + +#MyExpander spinbutton entry, +spinbutton entry { + padding: 0 0.333333333333333333em; + margin: 0; + min-height: 0; + min-width: 0; + border: none; +} +#MyExpander spinbutton entry { + padding: 0 0.333333333333333333em 0 0.833333333333333333em; +} + +#MyExpander spinbutton button:hover, +spinbutton button:hover { + border: none; +} +#MyExpander spinbutton button:active, +spinbutton button:active { + border: none; +} + +/* Text selection */ +.view entry { + margin: 0 -2px; + border-width: 0.083333333333333333em; +} +/* end*/ + +/*** end ***************************************************************************************/ + +/* Curves **************************************************************************************/ +.curve-mainbox { + margin: 0.19em; + border-width: 0.083333333333333333em; +} +.curve-mainbox .curve-curvebox { + margin: 0; + padding: 0.416666666666666666em; +} +.curve-mainbox .curve-spinbuttonbox { + margin: 0; + padding: 0.25em; + border-width: 0.083333333333333333em; +} +.curve-mainbox .curve-sliderbox { + margin: 0; + padding: 0.25em; + border-width: 0.083333333333333333em; +} +.curve-mainbox .curve-buttonbox { + padding: 0.25em; +} +.curve-mainbox.left .curve-buttonbox { + border-width: 0.083333333333333333em; +} +.curve-mainbox.right .curve-buttonbox { + border-width: 0.083333333333333333em; +} +.curve-mainbox.top .curve-buttonbox { + border-width: 0.083333333333333333em; +} +.curve-mainbox.bottom .curve-buttonbox { + border-width: 0.083333333333333333em; +} +.curve-mainbox .curve-buttonbox button.flat { + margin: 0.095em; +} +/*** end ***************************************************************************************/ + +/*** Window Layout *****************************************************************************/ +.csd:not(.popup):not(tooltip) > decoration { + border-radius: 0.416666666666666666em 0.416666666666666666em 0 0; + border: none; + padding: 0; + margin: 0.833333333333333333em; +} +headerbar { + border-bottom-width: 0.083333333333333333em; + border-radius: 0.416666666666666666em 0.416666666666666666em 0 0; + min-height: 2em; + padding: 0.083333333333333333em 0.416666666666666666em 0; + margin: 0; +} + +/* Window state */ +.maximized > headerbar { + border-radius: 0; +} +/**/ + +/* Titlebar buttons*/ + +headerbar button.titlebutton image { + padding: 0; + margin: 0; +} +headerbar button.titlebutton { + margin: 0 0 0 0.333333333333333333em; + border-width: 0.083333333333333333em; + min-width: 1.5em; + min-height: 1.5em; + padding: 0; +} +messagedialog headerbar button.titlebutton { + min-width: 1.25em; + min-height: 1.25em; + margin: 0; +} +/*** end ***************************************************************************************/ diff --git a/rtengine/CMakeLists.txt b/rtengine/CMakeLists.txt index a3e2d9fbd..2004dfe25 100644 --- a/rtengine/CMakeLists.txt +++ b/rtengine/CMakeLists.txt @@ -10,6 +10,7 @@ include_directories(${EXTRA_INCDIR} ${IPTCDATA_INCLUDE_DIRS} ${LCMS_INCLUDE_DIRS} ${LENSFUN_INCLUDE_DIRS} + ${RSVG_INCLUDE_DIRS} ) link_directories("${PROJECT_SOURCE_DIR}/rtexif" @@ -23,6 +24,7 @@ link_directories("${PROJECT_SOURCE_DIR}/rtexif" ${IPTCDATA_LIBRARY_DIRS} ${LCMS_LIBRARY_DIRS} ${LENSFUN_LIBRARY_DIRS} + ${RSVG_LIBRARY_DIRS} ) set(CAMCONSTSFILE "camconst.json") @@ -65,7 +67,6 @@ set(RTENGINESOURCEFILES hphd_demosaic_RT.cc iccjpeg.cc iccstore.cc - icons.cc iimage.cc image16.cc image8.cc @@ -185,6 +186,7 @@ target_link_libraries(rtengine rtexif ${TIFF_LIBRARIES} ${ZLIB_LIBRARIES} ${LENSFUN_LIBRARIES} + ${RSVG_LIBRARIES} ) install(FILES ${CAMCONSTSFILE} DESTINATION "${DATADIR}" PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/rtengine/icons.cc b/rtengine/icons.cc deleted file mode 100644 index ccc5ebd09..000000000 --- a/rtengine/icons.cc +++ /dev/null @@ -1,117 +0,0 @@ -/* - * This file is part of RawTherapee. - * - * Copyright (c) 2004-2010 Gabor Horvath - * Copyright (c) 2011 Jean-Christophe FRISCH - * - * RawTherapee 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. - * - * RawTherapee 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 RawTherapee. If not, see . - */ - -#include "icons.h" - -#include - -namespace rtengine -{ - -std::vector imagePaths; - -bool loadIconSet(const Glib::ustring& iconSet) -{ - try { - - Glib::KeyFile keyFile; - keyFile.load_from_file (iconSet); - - auto iconSetDir = keyFile.get_string ("General", "Iconset"); - - if (!iconSetDir.empty ()) { - imagePaths.push_back (Glib::build_filename (argv0, "images", iconSetDir, "actions")); - imagePaths.push_back (Glib::build_filename (argv0, "images", iconSetDir)); - imagePaths.push_back (Glib::build_filename (argv0, "images", iconSetDir, "devices")); - imagePaths.push_back (Glib::build_filename (argv0, "images", iconSetDir, "places")); - } - - iconSetDir = keyFile.get_string ("General", "FallbackIconset"); - - if (!iconSetDir.empty ()) { - imagePaths.push_back (Glib::build_filename (argv0, "images", iconSetDir, "actions")); - imagePaths.push_back (Glib::build_filename (argv0, "images", iconSetDir)); - imagePaths.push_back (Glib::build_filename (argv0, "images", iconSetDir, "devices")); - imagePaths.push_back (Glib::build_filename (argv0, "images", iconSetDir, "places")); - } - - return true; - - } catch (const Glib::Exception& exception) { - - if (options.rtSettings.verbose) { - std::cerr << "Failed to load icon set \"" << iconSet << "\": " << exception.what() << std::endl; - } - - return false; - - } -} - -Glib::ustring findIconAbsolutePath (const Glib::ustring& iconName) -{ - try { - - for (const auto& imagePath : imagePaths) { - const auto iconPath = Glib::build_filename(imagePath, iconName); - - if (Glib::file_test(iconPath, Glib::FILE_TEST_IS_REGULAR)) { - return iconPath; - } - } - - } catch(const Glib::Exception&) {} - - if (options.rtSettings.verbose) { - std::cerr << "Icon \"" << iconName << "\" could not be found!" << std::endl; - } - - return Glib::ustring(); -} - -void setPaths () -{ - // TODO: Forcing the Dark theme, so reading the icon set files is useless for now... - - /*Glib::ustring iconSet; - - // Either use the system icon set or the one specified in the options. - if (options.useSystemTheme) { - iconSet = Glib::build_filename (argv0, "themes", "system.iconset"); - } else { - iconSet = Glib::build_filename (argv0, "themes", options.theme + ".iconset"); - } - - imagePaths.clear (); - - if (!loadIconSet (iconSet)) { - // If the preferred icon set is unavailable, fall back to the default icon set. - loadIconSet (Glib::build_filename (argv0, "themes", "Default.iconset")); - }*/ - - imagePaths.clear (); - - imagePaths.push_back (Glib::build_filename(argv0, "images", "dark")); - - // The images folder is the second fallback solution. - imagePaths.push_back (Glib::build_filename(argv0, "images")); -} - -} diff --git a/rtengine/icons.h b/rtengine/icons.h deleted file mode 100644 index a890555b2..000000000 --- a/rtengine/icons.h +++ /dev/null @@ -1,33 +0,0 @@ -/* - * This file is part of RawTherapee. - * - * Copyright (c) 2004-2010 Gabor Horvath - * - * RawTherapee 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. - * - * RawTherapee 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 RawTherapee. If not, see . - */ -#ifndef _ICONS_ -#define _ICONS_ - -#include -#include "../rtgui/options.h" - -namespace rtengine -{ - -Glib::ustring findIconAbsolutePath (const Glib::ustring& iconName); -void setPaths (); - -} - -#endif diff --git a/rtengine/init.cc b/rtengine/init.cc index ee092ae8f..8d7ee451f 100644 --- a/rtengine/init.cc +++ b/rtengine/init.cc @@ -113,6 +113,7 @@ void cleanup () ProcParams::cleanup (); Color::cleanup (); RawImageSource::cleanup (); + #ifdef RT_FFTW3F_OMP fftwf_cleanup_threads(); #else diff --git a/rtgui/CMakeLists.txt b/rtgui/CMakeLists.txt index e4dfb4f28..740bc8e2b 100644 --- a/rtgui/CMakeLists.txt +++ b/rtgui/CMakeLists.txt @@ -122,6 +122,8 @@ set(NONCLISOURCEFILES rgbcurves.cc rotate.cc rtimage.cc + rtsurface.cc + rtscalable.cc rtwindow.cc saveasdlg.cc saveformatpanel.cc @@ -182,6 +184,7 @@ if(WIN32) ${GTKMM_INCLUDE_DIRS} ${GTK_INCLUDE_DIRS} ${LENSFUN_INCLUDE_DIRS} + ${RSVG_INCLUDE_DIRS} ) link_directories(. "${PROJECT_SOURCE_DIR}/rtexif" ${EXTRA_LIBDIR} @@ -192,6 +195,7 @@ if(WIN32) ${GTKMM_LIBRARY_DIRS} ${GTK_LIBRARY_DIRS} ${LENSFUN_LIBRARY_DIRS} + ${RSVG_LIBRARY_DIRS} ) else() include_directories(${EXTRA_INCDIR} @@ -209,6 +213,7 @@ else() ${IPTCDATA_INCLUDE_DIRS} ${LCMS_INCLUDE_DIRS} ${LENSFUN_INCLUDE_DIRS} + ${RSVG_INCLUDE_DIRS} ) link_directories(${EXTRA_LIBDIR} ${CANBERRA-GTK_LIBRARY_DIRS} @@ -225,6 +230,7 @@ else() ${IPTCDATA_LIBRARY_DIRS} ${LCMS_LIBRARY_DIRS} ${LENSFUN_LIBRARY_DIRS} + ${RSVG_LIBRARY_DIRS} ) endif() @@ -243,6 +249,10 @@ add_executable(rth-cli ${EXTRA_SRC_CLI} ${CLISOURCEFILES}) add_dependencies(rth UpdateInfo) add_dependencies(rth-cli UpdateInfo) +#Define a target specific definition to use in code +target_compile_definitions(rth PUBLIC GUIVERSION) +target_compile_definitions(rth-cli PUBLIC CLIVERSION) + # Set executables targets properties, i.e. output filename and compile flags # for "Debug" builds, open a console in all cases for Windows version if((WIN32) AND NOT(UPPER_CMAKE_BUILD_TYPE STREQUAL "DEBUG")) @@ -272,6 +282,7 @@ target_link_libraries(rth rtengine ${TIFF_LIBRARIES} ${ZLIB_LIBRARIES} ${LENSFUN_LIBRARIES} + ${RSVG_LIBRARIES} ) target_link_libraries(rth-cli rtengine @@ -292,6 +303,7 @@ target_link_libraries(rth-cli rtengine ${TIFF_LIBRARIES} ${ZLIB_LIBRARIES} ${LENSFUN_LIBRARIES} + ${RSVG_LIBRARIES} ) # Install executables diff --git a/rtgui/batchqueuebuttonset.cc b/rtgui/batchqueuebuttonset.cc index 19c309791..f5be480e8 100644 --- a/rtgui/batchqueuebuttonset.cc +++ b/rtgui/batchqueuebuttonset.cc @@ -23,17 +23,17 @@ bool BatchQueueButtonSet::iconsLoaded = false; -Cairo::RefPtr BatchQueueButtonSet::cancelIcon; -Cairo::RefPtr BatchQueueButtonSet::headIcon; -Cairo::RefPtr BatchQueueButtonSet::tailIcon; +Cairo::RefPtr BatchQueueButtonSet::cancelIcon; +Cairo::RefPtr BatchQueueButtonSet::headIcon; +Cairo::RefPtr BatchQueueButtonSet::tailIcon; BatchQueueButtonSet::BatchQueueButtonSet (BatchQueueEntry* myEntry) { if (!iconsLoaded) { - cancelIcon = RTImage::createFromPng ("cancel-small.png"); - headIcon = RTImage::createFromPng ("goto-start-small.png"); - tailIcon = RTImage::createFromPng ("goto-end-small.png"); + cancelIcon = Cairo::RefPtr(new RTSurface("cancel-small.png")); + headIcon = Cairo::RefPtr(new RTSurface("goto-start-small.png")); + tailIcon = Cairo::RefPtr(new RTSurface("goto-end-small.png")); iconsLoaded = true; } diff --git a/rtgui/batchqueuebuttonset.h b/rtgui/batchqueuebuttonset.h index bef125bb6..66dab91a1 100644 --- a/rtgui/batchqueuebuttonset.h +++ b/rtgui/batchqueuebuttonset.h @@ -20,6 +20,7 @@ #define _BATCHQUEUEBUTTONSET_ #include "lwbuttonset.h" +#include "rtsurface.h" #include class BatchQueueEntry; @@ -29,9 +30,9 @@ class BatchQueueButtonSet : public LWButtonSet static bool iconsLoaded; public: - static Cairo::RefPtr cancelIcon; - static Cairo::RefPtr headIcon; - static Cairo::RefPtr tailIcon; + static Cairo::RefPtr cancelIcon; + static Cairo::RefPtr headIcon; + static Cairo::RefPtr tailIcon; explicit BatchQueueButtonSet (BatchQueueEntry* myEntry); }; diff --git a/rtgui/batchqueueentry.cc b/rtgui/batchqueueentry.cc index 0ce71b043..d4d29da0b 100644 --- a/rtgui/batchqueueentry.cc +++ b/rtgui/batchqueueentry.cc @@ -57,7 +57,7 @@ BatchQueueEntry::BatchQueueEntry (rtengine::ProcessingJob* pjob, const rtengine: #endif if (!iconsLoaded) { - savedAsIcon = RTImage::createFromFile ("save-small.png"); + savedAsIcon = RTImage::createPixbufFromFile ("save-small.png"); iconsLoaded = true; } diff --git a/rtgui/cropwindow.cc b/rtgui/cropwindow.cc index 46227709d..a8ead7558 100644 --- a/rtgui/cropwindow.cc +++ b/rtgui/cropwindow.cc @@ -58,11 +58,11 @@ CropWindow::CropWindow (ImageArea* parent, bool isLowUpdatePriority_, bool isDet titleHeight = ih; - bZoomOut = new LWButton (RTImage::createFromPng ("magnifier-minus-small.png"), 0, nullptr, LWButton::Left, LWButton::Center, "Zoom Out"); - bZoomIn = new LWButton (RTImage::createFromPng ("magnifier-plus-small.png"), 1, nullptr, LWButton::Left, LWButton::Center, "Zoom In"); - bZoom100 = new LWButton (RTImage::createFromPng ("magnifier-1to1-small.png"), 2, nullptr, LWButton::Left, LWButton::Center, "Zoom 100/%"); - //bZoomFit = new LWButton (RTImage::createFromPng ("magnifier-fit.png"), 3, NULL, LWButton::Left, LWButton::Center, "Zoom Fit"); - bClose = new LWButton (RTImage::createFromPng ("cancel-small.png"), 4, nullptr, LWButton::Right, LWButton::Center, "Close"); + bZoomOut = new LWButton (Cairo::RefPtr(new RTSurface("magnifier-minus-small.png")), 0, nullptr, LWButton::Left, LWButton::Center, "Zoom Out"); + bZoomIn = new LWButton (Cairo::RefPtr(new RTSurface("magnifier-plus-small.png")), 1, nullptr, LWButton::Left, LWButton::Center, "Zoom In"); + bZoom100 = new LWButton (Cairo::RefPtr(new RTSurface("magnifier-1to1-small.png")), 2, nullptr, LWButton::Left, LWButton::Center, "Zoom 100/%"); + //bZoomFit = new LWButton (Cairo::RefPtr(new RTSurface("magnifier-fit.png")), 3, NULL, LWButton::Left, LWButton::Center, "Zoom Fit"); + bClose = new LWButton (Cairo::RefPtr(new RTSurface("cancel-small.png")), 4, nullptr, LWButton::Right, LWButton::Center, "Close"); buttonSet.add (bZoomOut); buttonSet.add (bZoomIn); @@ -2386,7 +2386,7 @@ void CropWindow::drawDecoration (Cairo::RefPtr cr) // draw label cr->set_source_rgba (1, 1, 1, 0.5); - cr->move_to (x + 10 + sideBorderWidth + bZoomIn->getIcon()->get_width() + bZoomOut->getIcon()->get_width() + bZoom100->getIcon()->get_width(), y + 1 + upperBorderWidth + (titleHeight - ih) / 2); + cr->move_to (x + 10 + sideBorderWidth + bZoomIn->getIcon()->getWidth() + bZoomOut->getIcon()->getWidth() + bZoom100->getIcon()->getWidth(), y + 1 + upperBorderWidth + (titleHeight - ih) / 2); cllayout->add_to_cairo_context (cr); cr->fill (); diff --git a/rtgui/cursormanager.cc b/rtgui/cursormanager.cc index 34efbcac8..9a28eb061 100644 --- a/rtgui/cursormanager.cc +++ b/rtgui/cursormanager.cc @@ -36,49 +36,74 @@ void CursorManager::init (Glib::RefPtr mainWindow) #endif - Glib::RefPtr add = RTImage::createFromFile("crosshair-small.png"); - Glib::RefPtr colPick = RTImage::createFromFile("color-picker-hicontrast.png"); - Glib::RefPtr colPickAdd = RTImage::createFromFile("color-picker-add-hicontrast.png"); - Glib::RefPtr cropDraw = RTImage::createFromFile("crop-point-hicontrast.png"); - Glib::RefPtr crosshair = RTImage::createFromFile("crosshair-hicontrast.png"); - Glib::RefPtr empty = RTImage::createFromFile("empty.png"); - Glib::RefPtr handClosed = RTImage::createFromFile("hand-closed-hicontrast.png"); - Glib::RefPtr handOpen = RTImage::createFromFile("hand-open-hicontrast.png"); - Glib::RefPtr moveBL = RTImage::createFromFile("node-move-sw-ne-hicontrast.png"); - Glib::RefPtr moveBR = RTImage::createFromFile("node-move-nw-se-hicontrast.png"); - Glib::RefPtr moveL = RTImage::createFromFile("node-move-x-hicontrast.png"); - Glib::RefPtr moveR = RTImage::createFromFile("node-move-x-hicontrast.png"); - Glib::RefPtr moveTL = RTImage::createFromFile("node-move-nw-se-hicontrast.png"); - Glib::RefPtr moveTR = RTImage::createFromFile("node-move-sw-ne-hicontrast.png"); - Glib::RefPtr moveX = RTImage::createFromFile("node-move-x-hicontrast.png"); - Glib::RefPtr moveXY = RTImage::createFromFile("node-move-xy-hicontrast.png"); - Glib::RefPtr moveY = RTImage::createFromFile("node-move-y-hicontrast.png"); - Glib::RefPtr rotate = RTImage::createFromFile("rotate-aroundnode-hicontrast.png"); - Glib::RefPtr wait = RTImage::createFromFile("gears.png"); // Currently unused, create *-hicontrast once used. + Glib::RefPtr add = RTImage::createPixbufFromFile("crosshair-small.png"); + Glib::RefPtr colPick = RTImage::createPixbufFromFile("color-picker-hicontrast.png"); + Glib::RefPtr colPickAdd = RTImage::createPixbufFromFile("color-picker-add-hicontrast.png"); + Glib::RefPtr cropDraw = RTImage::createPixbufFromFile("crop-point-hicontrast.png"); + Glib::RefPtr crosshair = RTImage::createPixbufFromFile("crosshair-hicontrast.png"); + Glib::RefPtr empty = RTImage::createPixbufFromFile("empty.png"); + Glib::RefPtr handClosed = RTImage::createPixbufFromFile("hand-closed-hicontrast.png"); + Glib::RefPtr handOpen = RTImage::createPixbufFromFile("hand-open-hicontrast.png"); + Glib::RefPtr moveBL = RTImage::createPixbufFromFile("node-move-sw-ne-hicontrast.png"); + Glib::RefPtr moveBR = RTImage::createPixbufFromFile("node-move-nw-se-hicontrast.png"); + Glib::RefPtr moveL = RTImage::createPixbufFromFile("node-move-x-hicontrast.png"); + Glib::RefPtr moveR = RTImage::createPixbufFromFile("node-move-x-hicontrast.png"); + Glib::RefPtr moveTL = RTImage::createPixbufFromFile("node-move-nw-se-hicontrast.png"); + Glib::RefPtr moveTR = RTImage::createPixbufFromFile("node-move-sw-ne-hicontrast.png"); + Glib::RefPtr moveX = RTImage::createPixbufFromFile("node-move-x-hicontrast.png"); + Glib::RefPtr moveXY = RTImage::createPixbufFromFile("node-move-xy-hicontrast.png"); + Glib::RefPtr moveY = RTImage::createPixbufFromFile("node-move-y-hicontrast.png"); + Glib::RefPtr rotate = RTImage::createPixbufFromFile("rotate-aroundnode-hicontrast.png"); + Glib::RefPtr wait = RTImage::createPixbufFromFile("gears.png"); // Currently unused, create *-hicontrast once used. - cAdd = add ? Gdk::Cursor::create(display, add, 8, 8) : Gdk::Cursor::create(display, Gdk::PLUS); - cAddPicker = colPickAdd ? Gdk::Cursor::create(display, colPickAdd, 4, 21) : Gdk::Cursor::create(display, Gdk::PLUS); - cCropDraw = cropDraw ? Gdk::Cursor::create(display, cropDraw, 3, 3) : Gdk::Cursor::create(display, Gdk::DIAMOND_CROSS); - cCrosshair = crosshair ? Gdk::Cursor::create(display, crosshair, 12, 12) : Gdk::Cursor::create(display, Gdk::CROSSHAIR); - cEmpty = empty ? Gdk::Cursor::create(display, empty, 12, 12) : Gdk::Cursor::create(display, Gdk::BLANK_CURSOR); - cHandClosed = handClosed ? Gdk::Cursor::create(display, handClosed, 12, 12) : Gdk::Cursor::create(display, Gdk::HAND1); - cHandOpen = handOpen ? Gdk::Cursor::create(display, handOpen, 12, 12) : Gdk::Cursor::create(display, Gdk::HAND2); - cMoveBL = moveBL ? Gdk::Cursor::create(display, moveBL, 12, 12) : Gdk::Cursor::create(display, Gdk::BOTTOM_LEFT_CORNER); - cMoveBR = moveBR ? Gdk::Cursor::create(display, moveBR, 12, 12) : Gdk::Cursor::create(display, Gdk::BOTTOM_RIGHT_CORNER); - cMoveL = moveL ? Gdk::Cursor::create(display, moveL, 12, 12) : Gdk::Cursor::create(display, Gdk::SB_LEFT_ARROW); - cMoveR = moveR ? Gdk::Cursor::create(display, moveR, 12, 12) : Gdk::Cursor::create(display, Gdk::SB_RIGHT_ARROW); - cMoveTL = moveTL ? Gdk::Cursor::create(display, moveTL, 12, 12) : Gdk::Cursor::create(display, Gdk::TOP_LEFT_CORNER); - cMoveTR = moveTR ? Gdk::Cursor::create(display, moveTR, 12, 12) : Gdk::Cursor::create(display, Gdk::TOP_RIGHT_CORNER); - cMoveX = moveX ? Gdk::Cursor::create(display, moveX, 12, 12) : Gdk::Cursor::create(display, Gdk::SB_H_DOUBLE_ARROW); - cMoveXY = moveXY ? Gdk::Cursor::create(display, moveXY, 12, 12) : Gdk::Cursor::create(display, Gdk::FLEUR); - cMoveY = moveY ? Gdk::Cursor::create(display, moveY, 12, 12) : Gdk::Cursor::create(display, Gdk::SB_V_DOUBLE_ARROW); - cRotate = rotate ? Gdk::Cursor::create(display, rotate, 12, 12) : Gdk::Cursor::create(display, Gdk::EXCHANGE); - cWB = colPick ? Gdk::Cursor::create(display, colPick, 4, 21) : Gdk::Cursor::create(display, Gdk::TARGET); - cWait = wait ? Gdk::Cursor::create(display, wait, 12, 12) : Gdk::Cursor::create(display, Gdk::CLOCK); + double s = RTScalable::getTweakedDPI() / 96.; // RTScalable::getDPI() might be preferable, however it imply a lot of work to support this option + + cAdd = add ? Gdk::Cursor::create(display, add, (int)(8.*s), (int)(8.*s)) : Gdk::Cursor::create(display, Gdk::PLUS); + cAddPicker = colPickAdd ? Gdk::Cursor::create(display, colPickAdd, (int)(4.*s), (int)(21.*s)) : Gdk::Cursor::create(display, Gdk::PLUS); + cCropDraw = cropDraw ? Gdk::Cursor::create(display, cropDraw, (int)(3.*s), (int)(3.*s)) : Gdk::Cursor::create(display, Gdk::DIAMOND_CROSS); + cCrosshair = crosshair ? Gdk::Cursor::create(display, crosshair, (int)(12.*s), (int)(12.*s)) : Gdk::Cursor::create(display, Gdk::CROSSHAIR); + cEmpty = empty ? Gdk::Cursor::create(display, empty, 12, 12) /* PNG: do not scale */ : Gdk::Cursor::create(display, Gdk::BLANK_CURSOR); + cHandClosed = handClosed ? Gdk::Cursor::create(display, handClosed, (int)(12.*s), (int)(12.*s)) : Gdk::Cursor::create(display, Gdk::HAND1); + cHandOpen = handOpen ? Gdk::Cursor::create(display, handOpen, (int)(12.*s), (int)(12.*s)) : Gdk::Cursor::create(display, Gdk::HAND2); + cMoveBL = moveBL ? Gdk::Cursor::create(display, moveBL, (int)(12.*s), (int)(12.*s)) : Gdk::Cursor::create(display, Gdk::BOTTOM_LEFT_CORNER); + cMoveBR = moveBR ? Gdk::Cursor::create(display, moveBR, (int)(12.*s), (int)(12.*s)) : Gdk::Cursor::create(display, Gdk::BOTTOM_RIGHT_CORNER); + cMoveL = moveL ? Gdk::Cursor::create(display, moveL, (int)(12.*s), (int)(12.*s)) : Gdk::Cursor::create(display, Gdk::SB_LEFT_ARROW); + cMoveR = moveR ? Gdk::Cursor::create(display, moveR, (int)(12.*s), (int)(12.*s)) : Gdk::Cursor::create(display, Gdk::SB_RIGHT_ARROW); + cMoveTL = moveTL ? Gdk::Cursor::create(display, moveTL, (int)(12.*s), (int)(12.*s)) : Gdk::Cursor::create(display, Gdk::TOP_LEFT_CORNER); + cMoveTR = moveTR ? Gdk::Cursor::create(display, moveTR, (int)(12.*s), (int)(12.*s)) : Gdk::Cursor::create(display, Gdk::TOP_RIGHT_CORNER); + cMoveX = moveX ? Gdk::Cursor::create(display, moveX, (int)(12.*s), (int)(12.*s)) : Gdk::Cursor::create(display, Gdk::SB_H_DOUBLE_ARROW); + cMoveXY = moveXY ? Gdk::Cursor::create(display, moveXY, (int)(12.*s), (int)(12.*s)) : Gdk::Cursor::create(display, Gdk::FLEUR); + cMoveY = moveY ? Gdk::Cursor::create(display, moveY, (int)(12.*s), (int)(12.*s)) : Gdk::Cursor::create(display, Gdk::SB_V_DOUBLE_ARROW); + cRotate = rotate ? Gdk::Cursor::create(display, rotate, (int)(12.*s), (int)(12.*s)) : Gdk::Cursor::create(display, Gdk::EXCHANGE); + cWB = colPick ? Gdk::Cursor::create(display, colPick, (int)(4.*s), (int)(21.*s)) : Gdk::Cursor::create(display, Gdk::TARGET); + cWait = wait ? Gdk::Cursor::create(display, wait, (int)(12.*s), (int)(12.*s)) : Gdk::Cursor::create(display, Gdk::CLOCK); window = mainWindow; } +void CursorManager::cleanup() +{ + cAdd.reset(); + cAddPicker.reset(); + cCropDraw.reset(); + cCrosshair.reset(); + cHandClosed.reset(); + cHandOpen.reset(); + cEmpty.reset(); + cMoveBL.reset(); + cMoveBR.reset(); + cMoveL.reset(); + cMoveR.reset(); + cMoveTL.reset(); + cMoveTR.reset(); + cMoveX.reset(); + cMoveY.reset(); + cMoveXY.reset(); + cRotate.reset(); + cWB.reset(); + cWait.reset(); +} + /* Set the cursor of the given window */ void CursorManager::setCursor (Glib::RefPtr window, CursorShape shape) { diff --git a/rtgui/cursormanager.h b/rtgui/cursormanager.h index 7d3f068b2..111652726 100644 --- a/rtgui/cursormanager.h +++ b/rtgui/cursormanager.h @@ -82,6 +82,7 @@ private: public: void init (Glib::RefPtr mainWindow); + void cleanup (); static void setWidgetCursor (Glib::RefPtr window, CursorShape shape); static void setCursorOfMainWindow (Glib::RefPtr window, CursorShape shape); }; diff --git a/rtgui/curveeditorgroup.cc b/rtgui/curveeditorgroup.cc index 2ef44a211..7ad1e9497 100644 --- a/rtgui/curveeditorgroup.cc +++ b/rtgui/curveeditorgroup.cc @@ -33,6 +33,7 @@ CurveEditorGroup::CurveEditorGroup (Glib::ustring& curveDir, Glib::ustring group // We set the label to the one provided as parameter, even if it's an empty string curveGroupLabel = Gtk::manage (new Gtk::Label (groupLabel + ":", Gtk::ALIGN_START)); setExpandAlignProperties(curveGroupLabel, false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER); + set_row_spacing(RTScalable::getScale()); } CurveEditorGroup::~CurveEditorGroup() @@ -120,6 +121,7 @@ void CurveEditorGroup::newLine() if (curveEditors.size() > numberOfPackedCurve) { Gtk::Grid* currLine = Gtk::manage (new Gtk::Grid ()); setExpandAlignProperties(currLine, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_START); + currLine->set_column_spacing(RTScalable::getScale()); bool isHeader = false; int x = 0; diff --git a/rtgui/diagonalcurveeditorsubgroup.cc b/rtgui/diagonalcurveeditorsubgroup.cc index 8f48ea3d7..6fd75db2f 100644 --- a/rtgui/diagonalcurveeditorsubgroup.cc +++ b/rtgui/diagonalcurveeditorsubgroup.cc @@ -732,6 +732,7 @@ void DiagonalCurveEditorSubGroup::switchGUI() dCurve->paramCurveEd.at(3) ); + double s = (double)RTScalable::getScale(); highlights->setValue (dCurve->paramCurveEd.at(4)); highlights->setLabel(label[3]); lights->setValue (dCurve->paramCurveEd.at(5)); @@ -742,7 +743,10 @@ void DiagonalCurveEditorSubGroup::switchGUI() shadows->setLabel(label[0]); shcSelector->coloredBar.setColorProvider(barColorProvider, dCurve->getBottomBarCallerId()); shcSelector->coloredBar.setBgGradient(bgGradient); - shcSelector->setMargins( (leftBar ? CBAR_WIDTH + CBAR_MARGIN : RADIUS), RADIUS ); + shcSelector->setMargins( + (int)( ((leftBar ? (double)CBAR_WIDTH + 2. + (double)CBAR_MARGIN + RADIUS : RADIUS) - 1.5) * s ), + (int)((RADIUS - 1.5) * s) + ); paramCurve->setColoredBar(leftBar, nullptr); paramCurve->queue_resize_no_redraw(); updateEditButton(dCurve, editParam, editParamConn); diff --git a/rtgui/dirbrowser.cc b/rtgui/dirbrowser.cc index e1acbad3e..fcc40abc9 100644 --- a/rtgui/dirbrowser.cc +++ b/rtgui/dirbrowser.cc @@ -121,13 +121,13 @@ DirBrowser::~DirBrowser() void DirBrowser::fillDirTree () { - openfolder = RTImage::createFromFile ("folder-open-small.png"); - closedfolder = RTImage::createFromFile ("folder-closed-small.png"); - icdrom = RTImage::createFromFile ("device-optical.png"); - ifloppy = RTImage::createFromFile ("device-floppy.png"); - ihdd = RTImage::createFromFile ("device-hdd.png"); - iremovable = RTImage::createFromFile ("device-usb.png"); - inetwork = RTImage::createFromFile ("device-network.png"); + openfolder = RTImage::createPixbufFromFile ("folder-open-small.png"); + closedfolder = RTImage::createPixbufFromFile ("folder-closed-small.png"); + icdrom = RTImage::createPixbufFromFile ("device-optical.png"); + ifloppy = RTImage::createPixbufFromFile ("device-floppy.png"); + ihdd = RTImage::createPixbufFromFile ("device-hdd.png"); + iremovable = RTImage::createPixbufFromFile ("device-usb.png"); + inetwork = RTImage::createPixbufFromFile ("device-network.png"); //Create the Tree model: dirTreeModel = Gtk::TreeStore::create(dtColumns); diff --git a/rtgui/edit.cc b/rtgui/edit.cc index 0a0d3a334..931880ad3 100644 --- a/rtgui/edit.cc +++ b/rtgui/edit.cc @@ -18,7 +18,6 @@ */ #include "edit.h" -#include "../rtengine/icons.h" ObjectMOBuffer::ObjectMOBuffer (EditDataProvider *dataProvider) : objectMap (nullptr), objectMode (OM_255), dataProvider (dataProvider) {} @@ -171,6 +170,8 @@ RGBColor Geometry::getOuterLineColor () return color; } +#ifdef GUIVERSION + void Circle::drawOuterGeometry (Cairo::RefPtr &cr, ObjectMOBuffer *objectBuffer, EditCoordSystem &coordSystem) { if ((flags & F_VISIBLE) && state != INSENSITIVE) { @@ -1145,11 +1146,11 @@ void OPIcon::drivenPointToRectangle (const rtengine::Coord &pos, bottomRight.y = topLeft.y + H - 1; } -OPIcon::OPIcon (const Cairo::RefPtr &normal, - const Cairo::RefPtr &active, - const Cairo::RefPtr &prelight, - const Cairo::RefPtr &dragged, - const Cairo::RefPtr &insensitive, +OPIcon::OPIcon(const Cairo::RefPtr &normal, + const Cairo::RefPtr &active, + const Cairo::RefPtr &prelight, + const Cairo::RefPtr &dragged, + const Cairo::RefPtr &insensitive, DrivenPoint drivenPoint) : drivenPoint (drivenPoint) { @@ -1178,53 +1179,53 @@ OPIcon::OPIcon (Glib::ustring normalImage, Glib::ustring activeImage, Glib::ustr Glib::ustring draggedImage, Glib::ustring insensitiveImage, DrivenPoint drivenPoint) : drivenPoint (drivenPoint) { if (!normalImage.empty()) { - normalImg = Cairo::ImageSurface::create_from_png ( rtengine::findIconAbsolutePath (normalImage) ); + normalImg->setImage(normalImage); } if (!prelightImage.empty()) { - prelightImg = Cairo::ImageSurface::create_from_png ( rtengine::findIconAbsolutePath (prelightImage) ); + prelightImg->setImage(prelightImage); } if (!activeImage.empty()) { - activeImg = Cairo::ImageSurface::create_from_png ( rtengine::findIconAbsolutePath (activeImage) ); + activeImg->setImage(activeImage); } if (!draggedImage.empty()) { - draggedImg = Cairo::ImageSurface::create_from_png ( rtengine::findIconAbsolutePath (draggedImage) ); + draggedImg->setImage(draggedImage); } if (!insensitiveImage.empty()) { - insensitiveImg = Cairo::ImageSurface::create_from_png ( rtengine::findIconAbsolutePath (insensitiveImage) ); + insensitiveImg->setImage(insensitiveImage); } } -const Cairo::RefPtr OPIcon::getNormalImg() +const Cairo::RefPtr OPIcon::getNormalImg() { return normalImg; } -const Cairo::RefPtr OPIcon::getPrelightImg() +const Cairo::RefPtr OPIcon::getPrelightImg() { return prelightImg; } -const Cairo::RefPtr OPIcon::getActiveImg() +const Cairo::RefPtr OPIcon::getActiveImg() { return activeImg; } -const Cairo::RefPtr OPIcon::getDraggedImg() +const Cairo::RefPtr OPIcon::getDraggedImg() { return draggedImg; } -const Cairo::RefPtr OPIcon::getInsensitiveImg() +const Cairo::RefPtr OPIcon::getInsensitiveImg() { return insensitiveImg; } -void OPIcon::drawImage (const Cairo::RefPtr &img, +void OPIcon::drawImage(Cairo::RefPtr &img, Cairo::RefPtr &cr, ObjectMOBuffer *objectBuffer, EditCoordSystem &coordSystem) { - int imgW = img->get_width(); - int imgH = img->get_height(); + int imgW = img->getWidth(); + int imgH = img->getHeight(); rtengine::Coord pos; @@ -1239,19 +1240,19 @@ void OPIcon::drawImage (const Cairo::RefPtr &img, rtengine::Coord tl, br; // Coordinate of the rectangle in the CropBuffer coordinate system drivenPointToRectangle (pos, tl, br, imgW, imgH); - cr->set_source (img, tl.x, tl.y); + cr->set_source(img->surface, tl.x, tl.y); cr->set_line_width (0.); cr->rectangle (tl.x, tl.y, imgW, imgH); cr->fill(); } -void OPIcon::drawMOImage (const Cairo::RefPtr &img, Cairo::RefPtr &cr, +void OPIcon::drawMOImage(Cairo::RefPtr &img, Cairo::RefPtr &cr, unsigned short id, ObjectMOBuffer *objectBuffer, EditCoordSystem &coordSystem) { // test of F_HOVERABLE has already been done - int imgW = img->get_width(); - int imgH = img->get_height(); + int imgW = img->getWidth(); + int imgH = img->getHeight(); rtengine::Coord pos; @@ -1380,6 +1381,8 @@ void OPIcon::drawToMOChannel (Cairo::RefPtr &cr, unsigned short } } +#endif + EditSubscriber::EditSubscriber (EditType editType) : ID (EUID_None), editingType (editType), bufferType (BT_SINGLEPLANE_FLOAT), provider (nullptr), action (ES_ACTION_NONE) {} void EditSubscriber::setEditProvider (EditDataProvider *provider) diff --git a/rtgui/edit.h b/rtgui/edit.h index 42db681a1..11de32244 100644 --- a/rtgui/edit.h +++ b/rtgui/edit.h @@ -16,9 +16,7 @@ * You should have received a copy of the GNU General Public License * along with RawTherapee. If not, see . */ -#ifndef _EDIT_H_ -#define _EDIT_H_ - +#pragma once #include #include "../rtengine/imagefloat.h" #include "editid.h" @@ -28,6 +26,10 @@ #include "guiutils.h" #include "options.h" +#ifdef GUIVERSION +#include "rtsurface.h" +#endif + class EditDataProvider; class EditSubscriber; @@ -171,8 +173,8 @@ protected: // instead of pointing to the EditSubscriber directly EditDataProvider* dataProvider; - void createBuffer (int width, int height); - void resize (int newWidth, int newHeight); + void createBuffer(int width, int height); + void resize(int newWidth, int newHeight); void flush(); EditSubscriber *getEditSubscriber (); @@ -336,6 +338,8 @@ public: virtual void drawToMOChannel (Cairo::RefPtr &cr, unsigned short id, ObjectMOBuffer *objectBuffer, EditCoordSystem &coordSystem) = 0; }; +#ifdef GUIVERSION + class Circle : public Geometry { public: @@ -434,10 +438,10 @@ public: Rectangle (); - void setXYWH (int left, int top, int width, int height); - void setXYXY (int left, int top, int right, int bottom); - void setXYWH (rtengine::Coord topLeft, rtengine::Coord widthHeight); - void setXYXY (rtengine::Coord topLeft, rtengine::Coord bottomRight); + void setXYWH(int left, int top, int width, int height); + void setXYXY(int left, int top, int right, int bottom); + void setXYWH(rtengine::Coord topLeft, rtengine::Coord widthHeight); + void setXYXY(rtengine::Coord topLeft, rtengine::Coord bottomRight); void drawOuterGeometry (Cairo::RefPtr &cr, ObjectMOBuffer *objectBuffer, EditCoordSystem &coordSystem) override; void drawInnerGeometry (Cairo::RefPtr &cr, ObjectMOBuffer *objectBuffer, EditCoordSystem &coordSystem) override; void drawToMOChannel (Cairo::RefPtr &cr, unsigned short id, ObjectMOBuffer *objectBuffer, EditCoordSystem &coordSystem) override; @@ -447,34 +451,34 @@ class OPIcon : public Geometry // OP stands for "On Preview" { private: - Cairo::RefPtr normalImg; - Cairo::RefPtr prelightImg; - Cairo::RefPtr activeImg; - Cairo::RefPtr draggedImg; - Cairo::RefPtr insensitiveImg; + Cairo::RefPtr normalImg; + Cairo::RefPtr prelightImg; + Cairo::RefPtr activeImg; + Cairo::RefPtr draggedImg; + Cairo::RefPtr insensitiveImg; static void updateImages(); void changeImage(Glib::ustring &newImage); - void drawImage (const Cairo::RefPtr &img, Cairo::RefPtr &cr, ObjectMOBuffer *objectBuffer, EditCoordSystem &coordSystem); - void drawMOImage (const Cairo::RefPtr &img, Cairo::RefPtr &cr, unsigned short id, ObjectMOBuffer *objectBuffer, EditCoordSystem &coordSystem); - void drivenPointToRectangle (const rtengine::Coord &pos, rtengine::Coord &topLeft, rtengine::Coord &bottomRight, int W, int H); + void drawImage (Cairo::RefPtr &img, Cairo::RefPtr &cr, ObjectMOBuffer *objectBuffer, EditCoordSystem &coordSystem); + void drawMOImage (Cairo::RefPtr &img, Cairo::RefPtr &cr, unsigned short id, ObjectMOBuffer *objectBuffer, EditCoordSystem &coordSystem); + void drivenPointToRectangle(const rtengine::Coord &pos, rtengine::Coord &topLeft, rtengine::Coord &bottomRight, int W, int H); public: DrivenPoint drivenPoint; rtengine::Coord position; - OPIcon (const Cairo::RefPtr &normal, - const Cairo::RefPtr &active, - const Cairo::RefPtr &prelight = {}, - const Cairo::RefPtr &dragged = {}, - const Cairo::RefPtr &insensitive = {}, + OPIcon (const Cairo::RefPtr &normal, + const Cairo::RefPtr &active, + const Cairo::RefPtr &prelight = {}, + const Cairo::RefPtr &dragged = {}, + const Cairo::RefPtr &insensitive = {}, DrivenPoint drivenPoint = DP_CENTERCENTER); OPIcon (Glib::ustring normalImage, Glib::ustring activeImage, Glib::ustring prelightImage = "", Glib::ustring draggedImage = "", Glib::ustring insensitiveImage = "", DrivenPoint drivenPoint = DP_CENTERCENTER); - const Cairo::RefPtr getNormalImg(); - const Cairo::RefPtr getPrelightImg(); - const Cairo::RefPtr getActiveImg(); - const Cairo::RefPtr getDraggedImg(); - const Cairo::RefPtr getInsensitiveImg(); + const Cairo::RefPtr getNormalImg(); + const Cairo::RefPtr getPrelightImg(); + const Cairo::RefPtr getActiveImg(); + const Cairo::RefPtr getDraggedImg(); + const Cairo::RefPtr getInsensitiveImg(); void drawOuterGeometry (Cairo::RefPtr &cr, ObjectMOBuffer *objectBuffer, EditCoordSystem &coordSystem) override; void drawInnerGeometry (Cairo::RefPtr &cr, ObjectMOBuffer *objectBuffer, EditCoordSystem &coordSystem) override; void drawToMOChannel (Cairo::RefPtr &cr, unsigned short id, ObjectMOBuffer *objectBuffer, EditCoordSystem &coordSystem) override; @@ -485,6 +489,8 @@ class OPAdjuster : public Geometry // OP stands for "On Preview" }; +#endif + /// @brief Method for client tools needing Edit information class EditSubscriber { @@ -510,9 +516,9 @@ public: explicit EditSubscriber (EditType editType); virtual ~EditSubscriber () {} - void setEditProvider (EditDataProvider *provider); + void setEditProvider(EditDataProvider *provider); EditDataProvider* getEditProvider (); - void setEditID (EditUniqueID ID, BufferType buffType); + void setEditID(EditUniqueID ID, BufferType buffType); bool isCurrentSubscriber(); virtual void subscribe(); virtual void unsubscribe(); @@ -629,112 +635,94 @@ public: EditDataProvider(); virtual ~EditDataProvider() {} - virtual void subscribe (EditSubscriber *subscriber); + virtual void subscribe(EditSubscriber *subscriber); virtual void unsubscribe(); /// Occurs when the subscriber has been switched off first virtual void switchOffEditMode (); /// Occurs when the user want to stop the editing mode - virtual CursorShape getCursor (int objectID); + virtual CursorShape getCursor(int objectID); int getPipetteRectSize (); EditSubscriber* getCurrSubscriber(); virtual void getImageSize (int &w, int&h) = 0; }; -inline EditDataProvider* ObjectMOBuffer::getDataProvider () -{ +inline EditDataProvider* ObjectMOBuffer::getDataProvider () { return dataProvider; } -inline ObjectMode ObjectMOBuffer::getObjectMode () -{ +inline ObjectMode ObjectMOBuffer::getObjectMode () { return objectMode; } -inline Cairo::RefPtr& ObjectMOBuffer::getObjectMap () -{ +inline Cairo::RefPtr& ObjectMOBuffer::getObjectMap () { return objectMap; } -inline void RGBColor::setColor (double r, double g, double b) -{ +inline void RGBColor::setColor (double r, double g, double b) { this->r = r; this->g = g; this->b = b; } -inline void RGBColor::setColor (char r, char g, char b) -{ +inline void RGBColor::setColor (char r, char g, char b) { this->r = double (r) / 255.; this->g = double (g) / 255.; this->b = double (b) / 255.; } -inline double RGBColor::getR () -{ +inline double RGBColor::getR () { return r; } -inline double RGBColor::getG () -{ +inline double RGBColor::getG () { return g; } -inline double RGBColor::getB () -{ +inline double RGBColor::getB () { return b; } -inline void RGBAColor::setColor (double r, double g, double b, double a) -{ +inline void RGBAColor::setColor (double r, double g, double b, double a) { RGBColor::setColor (r, g, b); this->a = a; } -inline void RGBAColor::setColor (char r, char g, char b, char a) -{ +inline void RGBAColor::setColor (char r, char g, char b, char a) { RGBColor::setColor (r, g, b); this->a = double (a) / 255.; } -inline double RGBAColor::getA () -{ +inline double RGBAColor::getA () { return a; } -inline void Geometry::setInnerLineColor (double r, double g, double b) -{ +inline void Geometry::setInnerLineColor (double r, double g, double b) { innerLineColor.setColor (r, g, b); flags &= ~F_AUTO_COLOR; } -inline void Geometry::setInnerLineColor (char r, char g, char b) -{ +inline void Geometry::setInnerLineColor (char r, char g, char b) { innerLineColor.setColor (r, g, b); flags &= ~F_AUTO_COLOR; } -inline void Geometry::setOuterLineColor (double r, double g, double b) -{ +inline void Geometry::setOuterLineColor (double r, double g, double b) { outerLineColor.setColor (r, g, b); flags &= ~F_AUTO_COLOR; } -inline double Geometry::getOuterLineWidth () -{ +inline double Geometry::getOuterLineWidth () { return double (innerLineWidth) + 2.; } -inline void Geometry::setOuterLineColor (char r, char g, char b) -{ +inline void Geometry::setOuterLineColor (char r, char g, char b) { outerLineColor.setColor (r, g, b); flags &= ~F_AUTO_COLOR; } -inline double Geometry::getMouseOverLineWidth () -{ +inline double Geometry::getMouseOverLineWidth () { return getOuterLineWidth () + 2.; } -inline void Geometry::setAutoColor (bool aColor) -{ +inline void Geometry::setAutoColor (bool aColor) { if (aColor) { flags |= F_AUTO_COLOR; } else { @@ -742,13 +730,11 @@ inline void Geometry::setAutoColor (bool aColor) } } -inline bool Geometry::isVisible () -{ +inline bool Geometry::isVisible () { return flags & F_VISIBLE; } -inline void Geometry::setVisible (bool visible) -{ +inline void Geometry::setVisible (bool visible) { if (visible) { flags |= F_VISIBLE; } else { @@ -756,13 +742,11 @@ inline void Geometry::setVisible (bool visible) } } -inline bool Geometry::isHoverable () -{ +inline bool Geometry::isHoverable () { return flags & F_HOVERABLE; } -inline void Geometry::setHoverable (bool hoverable) -{ +inline void Geometry::setHoverable (bool hoverable) { if (hoverable) { flags |= F_HOVERABLE; } else { @@ -770,17 +754,15 @@ inline void Geometry::setHoverable (bool hoverable) } } -inline void Geometry::setActive (bool active) -{ +inline void Geometry::setActive (bool active) { if (active) { flags |= (F_VISIBLE | F_HOVERABLE); } else { - flags &= ~ (F_VISIBLE | F_HOVERABLE); + flags &= ~(F_VISIBLE | F_HOVERABLE); } } -inline EditDataProvider* EditSubscriber::getEditProvider () -{ +inline EditDataProvider* EditSubscriber::getEditProvider () { return provider; } @@ -788,181 +770,150 @@ inline CursorShape EditSubscriber::getCursor (const int objectID) { return CSHandOpen; } -inline bool EditSubscriber::mouseOver (const int modifierKey) -{ +inline bool EditSubscriber::mouseOver (const int modifierKey) { return false; } -inline bool EditSubscriber::button1Pressed (const int modifierKey) -{ +inline bool EditSubscriber::button1Pressed (const int modifierKey) { return false; } -inline bool EditSubscriber::button1Released () -{ +inline bool EditSubscriber::button1Released () { return false; } -inline bool EditSubscriber::button2Pressed (const int modifierKey) -{ +inline bool EditSubscriber::button2Pressed (const int modifierKey) { return false; } -inline bool EditSubscriber::button2Released () -{ +inline bool EditSubscriber::button2Released () { return false; } -inline bool EditSubscriber::button3Pressed (const int modifierKey) -{ +inline bool EditSubscriber::button3Pressed (const int modifierKey) { return false; } -inline bool EditSubscriber::button3Released () -{ +inline bool EditSubscriber::button3Released () { return false; } -inline bool EditSubscriber::drag1 (const int modifierKey) -{ +inline bool EditSubscriber::drag1 (const int modifierKey) { return false; } -inline bool EditSubscriber::drag2 (const int modifierKey) -{ +inline bool EditSubscriber::drag2 (const int modifierKey) { return false; } -inline bool EditSubscriber::drag3 (const int modifierKey) -{ +inline bool EditSubscriber::drag3 (const int modifierKey) { return false; } -inline bool EditSubscriber::pick1 (const bool picked) -{ +inline bool EditSubscriber::pick1 (const bool picked) { return false; } -inline bool EditSubscriber::pick2 (const bool picked) -{ +inline bool EditSubscriber::pick2 (const bool picked) { return false; } -inline bool EditSubscriber::pick3 (const bool picked) -{ +inline bool EditSubscriber::pick3 (const bool picked) { return false; } -inline const std::vector& EditSubscriber::getVisibleGeometry () -{ +inline const std::vector& EditSubscriber::getVisibleGeometry () { return visibleGeometry; } -inline const std::vector& EditSubscriber::getMouseOverGeometry () -{ +inline const std::vector& EditSubscriber::getMouseOverGeometry () { return mouseOverGeometry; } -inline int EditDataProvider::getPipetteRectSize () -{ +inline int EditDataProvider::getPipetteRectSize () { return 8; // TODO: make a GUI } inline Geometry::Geometry () : - innerLineColor (char (255), char (255), char (255)), outerLineColor ( - char (0), char (0), char (0)), flags ( - F_VISIBLE | F_HOVERABLE | F_AUTO_COLOR), innerLineWidth (1.5f), datum ( - IMAGE), state (NORMAL) -{ + innerLineColor (char (255), char (255), char (255)), outerLineColor ( + char (0), char (0), char (0)), flags ( + F_VISIBLE | F_HOVERABLE | F_AUTO_COLOR), innerLineWidth (1.5f), datum ( + IMAGE), state (NORMAL) { } -inline Circle::Circle () : - center (100, 100), radius (10), filled (false), radiusInImageSpace ( - false) -{ -} - -inline Arcellipse::Arcellipse () : - center (100, 100), radius (10), radius2 (10), translax (0), translay (0), filled (false), radiusInImageSpace ( - false) -{ -} - -inline Rectangle::Rectangle () : - topLeft (0, 0), bottomRight (10, 10), filled (false) -{ -} - -inline Polyline::Polyline () : - filled (false) -{ -} - -inline Line::Line () : - begin (10, 10), end (100, 100) -{ -} -inline Beziers::Beziers () : - begin (10, 10), inter (50, 50), end (100, 100) -{ -} inline RGBAColor::RGBAColor () : - RGBColor (0., 0., 0.), a (0.) -{ + RGBColor (0., 0., 0.), a (0.) { } inline RGBColor::RGBColor () : - r (0.), g (0.), b (0.) -{ + r (0.), g (0.), b (0.) { } inline RGBColor::RGBColor (double r, double g, double b) : - r (r), g (g), b (b) -{ + r (r), g (g), b (b) { } inline RGBColor::RGBColor (char r, char g, char b) : - r (double (r) / 255.), g (double (g) / 255.), b (double (b) / 255.) -{ + r (double (r) / 255.), g (double (g) / 255.), b (double (b) / 255.) { } inline RGBAColor::RGBAColor (double r, double g, double b, double a) : - RGBColor (r, g, b), a (a) -{ + RGBColor (r, g, b), a (a) { } inline RGBAColor::RGBAColor (char r, char g, char b, char a) : - RGBColor (r, g, b), a (double (a) / 255.) -{ + RGBColor (r, g, b), a (double (a) / 255.) { +} + + +#ifdef GUIVERSION + +inline Circle::Circle () : + center (100, 100), radius (10), filled (false), radiusInImageSpace ( + false) { +} + +inline Arcellipse::Arcellipse () : + center (100, 100), radius (10), radius2 (10), translax (0), translay (0), filled (false), radiusInImageSpace ( + false) { +} + +inline Rectangle::Rectangle () : + topLeft (0, 0), bottomRight (10, 10), filled (false) { +} + +inline Polyline::Polyline () : + filled (false) { +} + +inline Line::Line () : + begin (10, 10), end (100, 100) { } inline Circle::Circle (rtengine::Coord& center, int radius, bool filled, - bool radiusInImageSpace) : - center (center), radius (radius), filled (filled), radiusInImageSpace ( - radiusInImageSpace) -{ + bool radiusInImageSpace) : + center (center), radius (radius), filled (filled), radiusInImageSpace ( + radiusInImageSpace) { } inline Circle::Circle (int centerX, int centerY, int radius, bool filled, - bool radiusInImageSpace) : - center (centerX, centerY), radius (radius), filled (filled), radiusInImageSpace ( - radiusInImageSpace) -{ + bool radiusInImageSpace) : + center (centerX, centerY), radius (radius), filled (filled), radiusInImageSpace ( + radiusInImageSpace) { } + inline Arcellipse::Arcellipse (rtengine::Coord& center, double radius, double radius2, double translax, double translay, double scalx, double scaly, double begang, double endang, bool filled, - bool radiusInImageSpace) : - center (center), radius (radius), radius2 (radius2), translax (translax), translay (translay), scalx (scalx), scaly (scaly), begang (begang), endang (endang), filled (filled), radiusInImageSpace ( - radiusInImageSpace) -{ + bool radiusInImageSpace) : + center (center), radius (radius), radius2 (radius2), translax (translax), translay (translay), scalx (scalx), scaly (scaly), begang (begang), endang (endang), filled (filled), radiusInImageSpace ( + radiusInImageSpace) { } inline Arcellipse::Arcellipse (int centerX, int centerY, double radius, double radius2, double translax, double translay, double scalx, double scaly, double begang, double endang, bool filled, - bool radiusInImageSpace) : - center (centerX, centerY), radius (radius), radius2 (radius2), translax (translax), translay (translay), scalx (scalx), scaly (scaly), begang (begang), endang (endang), filled (filled), radiusInImageSpace ( - radiusInImageSpace) -{ + bool radiusInImageSpace) : + center (centerX, centerY), radius (radius), radius2 (radius2), translax (translax), translay (translay), scalx (scalx), scaly (scaly), begang (begang), endang (endang), filled (filled), radiusInImageSpace ( + radiusInImageSpace) { } inline Beziers::Beziers (rtengine::Coord& begin, rtengine::Coord& inter, rtengine::Coord& end) : @@ -976,13 +927,11 @@ inline Beziers::Beziers (float beginX, float beginY, float interX, float interY, } inline Line::Line (rtengine::Coord& begin, rtengine::Coord& end) : - begin (begin), end (end) -{ + begin (begin), end (end) { } inline Line::Line (int beginX, int beginY, int endX, int endY) : - begin (beginX, beginY), end (endX, endY) -{ + begin (beginX, beginY), end (endX, endY) { } #endif diff --git a/rtgui/editorpanel.cc b/rtgui/editorpanel.cc index bb75e3ec5..469e051dc 100644 --- a/rtgui/editorpanel.cc +++ b/rtgui/editorpanel.cc @@ -491,7 +491,7 @@ EditorPanel::EditorPanel (FilePanel* filePanel) //leftsubbox->pack_start (*ppframe, Gtk::PACK_SHRINK, 4); navigator = Gtk::manage (new Navigator ()); - navigator->previewWindow->set_size_request (-1, 150); + navigator->previewWindow->set_size_request (-1, 150 * RTScalable::getScale()); leftsubbox->pack_start (*navigator, Gtk::PACK_SHRINK, 2); history = Gtk::manage (new History ()); diff --git a/rtgui/editwindow.cc b/rtgui/editwindow.cc index 30114c006..8ba829b26 100644 --- a/rtgui/editwindow.cc +++ b/rtgui/editwindow.cc @@ -23,7 +23,8 @@ #include #include "rtimage.h" #include "threadutils.h" -#include "../rtengine/icons.h" + +extern Glib::ustring argv0; // Check if the system has more than one display and option is set bool EditWindow::isMultiDisplayEnabled() @@ -50,10 +51,11 @@ EditWindow* EditWindow::getInstance(RTWindow* p, bool restore) return &instance_.editWnd; } -EditWindow::EditWindow (RTWindow* p) : parent(p) , isFullscreen(false), isClosed(true) +EditWindow::EditWindow (RTWindow* p) : resolution(96.), parent(p) , isFullscreen(false), isClosed(true) { - set_default_icon(p->get_icon()); + updateResolution(); + setAppIcon(); set_title_decorated(""); set_modal(false); set_resizable(true); @@ -120,8 +122,56 @@ void EditWindow::on_realize () editWindowCursorManager.init (get_window()); } +bool EditWindow::updateResolution() +{ + int scale = get_scale_factor(); + double res = get_screen()->get_resolution(); + if (scale == 2) { + // from Windows' behavior : if scale==2, resolution = 192. (Gtk shows 96 dpi !?), there's no higher value + res = 192.; + } + bool retVal = res != resolution; + resolution = res; + return retVal; +} + +void EditWindow::setAppIcon() +{ + Glib::ustring fName; + bool downsize = false; + // findIconAbsolutePath won't be able to select the image based on resolution with the + // storage of the images, we're doing the selection here + if (resolution == 96.) { + fName = "rawtherapee-logo-24.png"; + } else { + fName = "rawtherapee-logo-48.png"; + if (resolution < 192.) { + downsize = true; + } + } + Glib::ustring icon_path = Glib::build_filename (argv0, "images", fName); + const Glib::RefPtr pixbuf = Gdk::Pixbuf::create_from_file(icon_path); + if (!pixbuf) { + return; + } + if (downsize) { + int size = int((48. * resolution) / 192.); + pixbuf->scale_simple(size, size, Gdk::InterpType::INTERP_BILINEAR); + } + + try { + set_default_icon(pixbuf); + } catch(Glib::Exception& ex) { + printf ("%s\n", ex.what().c_str()); + } +} + bool EditWindow::on_configure_event(GdkEventConfigure* event) { + if (updateResolution()) { + setAppIcon(); + } + if (get_realized() && is_visible()) { if(!is_maximized()) { get_position(options.meowX, options.meowY); @@ -134,7 +184,7 @@ bool EditWindow::on_configure_event(GdkEventConfigure* event) } /* HOMBRE: Disabling this since it's maximized when opened anyway. - * Someday, the EditorWindow migh save it own position and state, so it'll have to be uncommented + * Someday, the EditorWindow might save its own position and state, so it'll have to be uncommented bool EditWindow::on_window_state_event(GdkEventWindowState* event) { if (event->changed_mask & GDK_WINDOW_STATE_MAXIMIZED) { diff --git a/rtgui/editwindow.h b/rtgui/editwindow.h index 736e46bd4..42c8ec20e 100644 --- a/rtgui/editwindow.h +++ b/rtgui/editwindow.h @@ -26,7 +26,9 @@ class EditWindow : public Gtk::Window { private: + double resolution; RTWindow* parent; + RTImage appIcon; Gtk::Notebook* mainNB; std::set filesEdited; @@ -36,6 +38,8 @@ private: bool isClosed; void toggleFullscreen (); void restoreWindow(); + bool updateResolution(); + void setAppIcon(); public: // Check if the system has more than one display and option is set diff --git a/rtgui/exifpanel.cc b/rtgui/exifpanel.cc index 1882f4377..4ba3f6c44 100644 --- a/rtgui/exifpanel.cc +++ b/rtgui/exifpanel.cc @@ -52,9 +52,9 @@ ExifPanel::ExifPanel() : exifTree->set_grid_lines (Gtk::TREE_VIEW_GRID_LINES_NONE); exifTree->set_row_separator_func (sigc::mem_fun(*this, &ExifPanel::rowSeperatorFunc)); - delicon = RTImage::createFromFile ("cancel-small.png"); - keepicon = RTImage::createFromFile ("tick-small.png"); - editicon = RTImage::createFromFile ("add-small.png"); + delicon = RTImage::createPixbufFromFile ("cancel-small.png"); + keepicon = RTImage::createPixbufFromFile ("tick-small.png"); + editicon = RTImage::createPixbufFromFile ("add-small.png"); Gtk::TreeView::Column *viewcol = Gtk::manage (new Gtk::TreeView::Column ("Field Name")); Gtk::CellRendererPixbuf* render_pb = Gtk::manage (new Gtk::CellRendererPixbuf ()); @@ -104,21 +104,21 @@ ExifPanel::ExifPanel() : setExpandAlignProperties (buttons2, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); remove = Gtk::manage (new Gtk::Button ()); // M("EXIFPANEL_REMOVE") - remove->set_image (*Gtk::manage (new Gtk::Image (delicon))); + remove->set_image (*Gtk::manage (new RTImage(delicon))); remove->set_tooltip_text (M ("EXIFPANEL_REMOVEHINT")); remove->get_style_context()->add_class ("Left"); setExpandAlignProperties (remove, true, true, Gtk::ALIGN_FILL, Gtk::ALIGN_FILL); buttons1->attach_next_to (*remove, Gtk::POS_LEFT, 1, 1); keep = Gtk::manage (new Gtk::Button ()); // M("EXIFPANEL_KEEP") - keep->set_image (*Gtk::manage (new Gtk::Image (keepicon))); + keep->set_image (*Gtk::manage (new RTImage(keepicon))); keep->set_tooltip_text (M ("EXIFPANEL_KEEPHINT")); keep->get_style_context()->add_class ("MiddleH"); setExpandAlignProperties (keep, true, true, Gtk::ALIGN_FILL, Gtk::ALIGN_FILL); buttons1->attach_next_to (*keep, Gtk::POS_RIGHT, 1, 1); add = Gtk::manage (new Gtk::Button ()); // M("EXIFPANEL_ADDEDIT") - add->set_image (*Gtk::manage (new Gtk::Image (editicon))); + add->set_image (*Gtk::manage (new RTImage(editicon))); add->set_tooltip_text (M ("EXIFPANEL_ADDEDITHINT")); add->get_style_context()->add_class ("Right"); setExpandAlignProperties (add, true, true, Gtk::ALIGN_FILL, Gtk::ALIGN_FILL); @@ -132,7 +132,7 @@ ExifPanel::ExifPanel() : buttons2->attach_next_to (*showAll, Gtk::POS_LEFT, 1, 1); reset = Gtk::manage (new Gtk::Button ()); // M("EXIFPANEL_RESET") - reset->set_image (*Gtk::manage (new RTImage ("undo.png", "redo.png"))); + reset->set_image (*Gtk::manage (new RTImage("undo.png", "redo.png"))); reset->set_tooltip_text (M ("EXIFPANEL_RESETHINT")); reset->get_style_context()->add_class ("MiddleH"); setExpandAlignProperties (reset, true, true, Gtk::ALIGN_FILL, Gtk::ALIGN_FILL); diff --git a/rtgui/filebrowserentry.cc b/rtgui/filebrowserentry.cc index a55e2ffca..0fa5694de 100644 --- a/rtgui/filebrowserentry.cc +++ b/rtgui/filebrowserentry.cc @@ -58,11 +58,11 @@ FileBrowserEntry::FileBrowserEntry (Thumbnail* thm, const Glib::ustring& fname) scale = 1; if (!iconsLoaded) { - editedIcon = RTImage::createFromFile ("tick-small.png"); - recentlySavedIcon = RTImage::createFromFile ("save-small.png"); - enqueuedIcon = RTImage::createFromFile ("gears-small.png"); - hdr = RTImage::createFromFile ("filetype-hdr.png"); - ps = RTImage::createFromFile ("filetype-ps.png"); + editedIcon = RTImage::createPixbufFromFile ("tick-small.png"); + recentlySavedIcon = RTImage::createPixbufFromFile ("save-small.png"); + enqueuedIcon = RTImage::createPixbufFromFile ("gears-small.png"); + hdr = RTImage::createPixbufFromFile ("filetype-hdr.png"); + ps = RTImage::createPixbufFromFile ("filetype-ps.png"); iconsLoaded = true; } diff --git a/rtgui/filethumbnailbuttonset.cc b/rtgui/filethumbnailbuttonset.cc index 556397b7b..455ed8555 100644 --- a/rtgui/filethumbnailbuttonset.cc +++ b/rtgui/filethumbnailbuttonset.cc @@ -21,40 +21,38 @@ #include "rtimage.h" #include "multilangmgr.h" -extern Glib::ustring argv0; - bool FileThumbnailButtonSet::iconsLoaded = false; -Cairo::RefPtr FileThumbnailButtonSet::rankIcon; -Cairo::RefPtr FileThumbnailButtonSet::gRankIcon; -Cairo::RefPtr FileThumbnailButtonSet::unRankIcon; -Cairo::RefPtr FileThumbnailButtonSet::trashIcon; -Cairo::RefPtr FileThumbnailButtonSet::unTrashIcon; -Cairo::RefPtr FileThumbnailButtonSet::processIcon; -Cairo::RefPtr FileThumbnailButtonSet::colorLabelIcon_0; -Cairo::RefPtr FileThumbnailButtonSet::colorLabelIcon_1; -Cairo::RefPtr FileThumbnailButtonSet::colorLabelIcon_2; -Cairo::RefPtr FileThumbnailButtonSet::colorLabelIcon_3; -Cairo::RefPtr FileThumbnailButtonSet::colorLabelIcon_4; -Cairo::RefPtr FileThumbnailButtonSet::colorLabelIcon_5; +Cairo::RefPtr FileThumbnailButtonSet::rankIcon; +Cairo::RefPtr FileThumbnailButtonSet::gRankIcon; +Cairo::RefPtr FileThumbnailButtonSet::unRankIcon; +Cairo::RefPtr FileThumbnailButtonSet::trashIcon; +Cairo::RefPtr FileThumbnailButtonSet::unTrashIcon; +Cairo::RefPtr FileThumbnailButtonSet::processIcon; +Cairo::RefPtr FileThumbnailButtonSet::colorLabelIcon_0; +Cairo::RefPtr FileThumbnailButtonSet::colorLabelIcon_1; +Cairo::RefPtr FileThumbnailButtonSet::colorLabelIcon_2; +Cairo::RefPtr FileThumbnailButtonSet::colorLabelIcon_3; +Cairo::RefPtr FileThumbnailButtonSet::colorLabelIcon_4; +Cairo::RefPtr FileThumbnailButtonSet::colorLabelIcon_5; FileThumbnailButtonSet::FileThumbnailButtonSet (FileBrowserEntry* myEntry) { if (!iconsLoaded) { - unRankIcon = RTImage::createFromPng ("star-hollow-narrow.png"); - rankIcon = RTImage::createFromPng ("star-gold-narrow.png"); - gRankIcon = RTImage::createFromPng ("star-narrow.png"); - trashIcon = RTImage::createFromPng ("trash-small.png"); - unTrashIcon = RTImage::createFromPng ("trash-remove-small.png"); - processIcon = RTImage::createFromPng ("gears-small.png"); + unRankIcon = Cairo::RefPtr(new RTSurface("star-hollow-narrow.png")); + rankIcon = Cairo::RefPtr(new RTSurface("star-gold-narrow.png")); + gRankIcon = Cairo::RefPtr(new RTSurface("star-narrow.png")); + trashIcon = Cairo::RefPtr(new RTSurface("trash-small.png")); + unTrashIcon = Cairo::RefPtr(new RTSurface("trash-remove-small.png")); + processIcon = Cairo::RefPtr(new RTSurface("gears-small.png")); - colorLabelIcon_0 = RTImage::createFromPng ("circle-empty-gray-small.png"); - colorLabelIcon_1 = RTImage::createFromPng ("circle-red-small.png"); - colorLabelIcon_2 = RTImage::createFromPng ("circle-yellow-small.png"); - colorLabelIcon_3 = RTImage::createFromPng ("circle-green-small.png"); - colorLabelIcon_4 = RTImage::createFromPng ("circle-blue-small.png"); - colorLabelIcon_5 = RTImage::createFromPng ("circle-purple-small.png"); + colorLabelIcon_0 = Cairo::RefPtr(new RTSurface("circle-empty-gray-small.png")); + colorLabelIcon_1 = Cairo::RefPtr(new RTSurface("circle-red-small.png")); + colorLabelIcon_2 = Cairo::RefPtr(new RTSurface("circle-yellow-small.png")); + colorLabelIcon_3 = Cairo::RefPtr(new RTSurface("circle-green-small.png")); + colorLabelIcon_4 = Cairo::RefPtr(new RTSurface("circle-blue-small.png")); + colorLabelIcon_5 = Cairo::RefPtr(new RTSurface("circle-purple-small.png"));; iconsLoaded = true; } diff --git a/rtgui/filethumbnailbuttonset.h b/rtgui/filethumbnailbuttonset.h index a83bacf7b..57811addd 100644 --- a/rtgui/filethumbnailbuttonset.h +++ b/rtgui/filethumbnailbuttonset.h @@ -22,6 +22,7 @@ #include "lwbuttonset.h" #include #include "filebrowserentry.h" +#include "rtsurface.h" class FileBrowserEntry; class FileThumbnailButtonSet : public LWButtonSet @@ -30,19 +31,19 @@ class FileThumbnailButtonSet : public LWButtonSet static bool iconsLoaded; public: - static Cairo::RefPtr rankIcon; - static Cairo::RefPtr gRankIcon; - static Cairo::RefPtr unRankIcon; - static Cairo::RefPtr trashIcon; - static Cairo::RefPtr unTrashIcon; - static Cairo::RefPtr processIcon; + static Cairo::RefPtr rankIcon; + static Cairo::RefPtr gRankIcon; + static Cairo::RefPtr unRankIcon; + static Cairo::RefPtr trashIcon; + static Cairo::RefPtr unTrashIcon; + static Cairo::RefPtr processIcon; - static Cairo::RefPtr colorLabelIcon_0; - static Cairo::RefPtr colorLabelIcon_1; - static Cairo::RefPtr colorLabelIcon_2; - static Cairo::RefPtr colorLabelIcon_3; - static Cairo::RefPtr colorLabelIcon_4; - static Cairo::RefPtr colorLabelIcon_5; + static Cairo::RefPtr colorLabelIcon_0; + static Cairo::RefPtr colorLabelIcon_1; + static Cairo::RefPtr colorLabelIcon_2; + static Cairo::RefPtr colorLabelIcon_3; + static Cairo::RefPtr colorLabelIcon_4; + static Cairo::RefPtr colorLabelIcon_5; explicit FileThumbnailButtonSet (FileBrowserEntry* myEntry); void setRank (int stars); diff --git a/rtgui/filmsimulation.cc b/rtgui/filmsimulation.cc index e354724ba..30ae09f9a 100644 --- a/rtgui/filmsimulation.cc +++ b/rtgui/filmsimulation.cc @@ -263,10 +263,17 @@ void ClutComboBox::setBatchMode(bool yes) } +void ClutComboBox::cleanup() +{ + cm.reset(); + cm2.reset(); +} + + void ClutComboBox::updateUnchangedEntry() { auto c = m_model()->children(); - + if (batchMode) { if (c.empty() || c[c.size()-1][m_columns().clutFilename] != "NULL") { Gtk::TreeModel::Row row = *(m_model()->append()); diff --git a/rtgui/filmsimulation.h b/rtgui/filmsimulation.h index 5f66b579e..c55662757 100644 --- a/rtgui/filmsimulation.h +++ b/rtgui/filmsimulation.h @@ -18,6 +18,8 @@ public: void setSelectedClut( Glib::ustring filename ); void setBatchMode(bool yes); + static void cleanup(); + private: void updateUnchangedEntry(); // in batchMode we need to add an extra entry "(Unchanged)". We do this whenever the widget is mapped (connecting to signal_map()), unless options.multiDisplayMode (see the comment below about cm2 in this case) diff --git a/rtgui/guiutils.cc b/rtgui/guiutils.cc index e2a40bcf8..eb3704076 100644 --- a/rtgui/guiutils.cc +++ b/rtgui/guiutils.cc @@ -22,7 +22,6 @@ #include "options.h" #include "../rtengine/rt_math.h" #include "../rtengine/utils.h" -#include "../rtengine/icons.h" #include "../rtengine/procparams.h" #include "rtimage.h" #include "multilangmgr.h" @@ -33,11 +32,11 @@ using namespace std; -Glib::RefPtr MyExpander::inconsistentPBuf; -Glib::RefPtr MyExpander::enabledPBuf; -Glib::RefPtr MyExpander::disabledPBuf; -Glib::RefPtr MyExpander::openedPBuf; -Glib::RefPtr MyExpander::closedPBuf; +Glib::RefPtr MyExpander::inconsistentImage; +Glib::RefPtr MyExpander::enabledImage; +Glib::RefPtr MyExpander::disabledImage; +Glib::RefPtr MyExpander::openedImage; +Glib::RefPtr MyExpander::closedImage; IdleRegister::~IdleRegister() { @@ -179,6 +178,25 @@ void setExpandAlignProperties(Gtk::Widget *widget, bool hExpand, bool vExpand, e widget->set_valign(vAlign); } +Gtk::Border getPadding(const Glib::RefPtr style) +{ + Gtk::Border padding; + if (!style) { + return padding; + } + + int s = (double)RTScalable::getScale(); + padding = style->get_padding(); + if (s > 1) { + padding.set_left(padding.get_left() * s); + padding.set_right(padding.get_right() * s); + padding.set_top(padding.get_top() * s); + padding.set_bottom(padding.get_bottom() * s); + } + + return padding; +} + bool removeIfThere (Gtk::Container* cont, Gtk::Widget* w, bool increference) { @@ -555,11 +573,22 @@ void ExpanderBox::hideBox() void MyExpander::init() { - inconsistentPBuf = Gdk::Pixbuf::create_from_file(rtengine::findIconAbsolutePath("power-inconsistent-small.png")); - enabledPBuf = Gdk::Pixbuf::create_from_file(rtengine::findIconAbsolutePath("power-on-small.png")); - disabledPBuf = Gdk::Pixbuf::create_from_file(rtengine::findIconAbsolutePath("power-off-small.png")); - openedPBuf = Gdk::Pixbuf::create_from_file(rtengine::findIconAbsolutePath("expander-open-small.png")); - closedPBuf = Gdk::Pixbuf::create_from_file(rtengine::findIconAbsolutePath("expander-closed-small.png")); + if (!inconsistentImage) { // if one is null, all are null + inconsistentImage = Glib::RefPtr(new RTImage("power-inconsistent-small.png")); + enabledImage = Glib::RefPtr(new RTImage("power-on-small.png")); + disabledImage = Glib::RefPtr(new RTImage("power-off-small.png")); + openedImage = Glib::RefPtr(new RTImage("expander-open-small.png")); + closedImage = Glib::RefPtr(new RTImage("expander-closed-small.png")); + } +} + +void MyExpander::cleanup() +{ + inconsistentImage.reset(); + enabledImage.reset(); + disabledImage.reset(); + openedImage.reset(); + closedImage.reset(); } MyExpander::MyExpander(bool useEnabled, Gtk::Widget* titleWidget) : @@ -577,7 +606,7 @@ MyExpander::MyExpander(bool useEnabled, Gtk::Widget* titleWidget) : setExpandAlignProperties(headerHBox, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_FILL); if (useEnabled) { - statusImage = Gtk::manage(new Gtk::Image(disabledPBuf)); + statusImage = Gtk::manage(new RTImage(disabledImage)); imageEvBox = Gtk::manage(new Gtk::EventBox()); imageEvBox->add(*statusImage); imageEvBox->set_above_child(true); @@ -586,7 +615,7 @@ MyExpander::MyExpander(bool useEnabled, Gtk::Widget* titleWidget) : imageEvBox->signal_leave_notify_event().connect( sigc::mem_fun(this, & MyExpander::on_enter_leave_enable), false ); headerHBox->pack_start(*imageEvBox, Gtk::PACK_SHRINK, 0); } else { - statusImage = Gtk::manage(new Gtk::Image(openedPBuf)); + statusImage = Gtk::manage(new RTImage(openedImage)); headerHBox->pack_start(*statusImage, Gtk::PACK_SHRINK, 0); } @@ -616,7 +645,7 @@ MyExpander::MyExpander(bool useEnabled, Gtk::Widget* titleWidget) : MyExpander::MyExpander(bool useEnabled, Glib::ustring titleLabel) : enabled(false), inconsistent(false), flushEvent(false), expBox(nullptr), - child(nullptr), headerWidget(nullptr), statusImage(nullptr), + child(nullptr), headerWidget(nullptr), label(nullptr), useEnabled(useEnabled) { set_spacing(0); @@ -630,7 +659,7 @@ MyExpander::MyExpander(bool useEnabled, Glib::ustring titleLabel) : if (useEnabled) { - statusImage = Gtk::manage(new Gtk::Image(disabledPBuf)); + statusImage = Gtk::manage(new RTImage(disabledImage)); imageEvBox = Gtk::manage(new Gtk::EventBox()); imageEvBox->set_name("MyExpanderStatus"); imageEvBox->add(*statusImage); @@ -640,7 +669,7 @@ MyExpander::MyExpander(bool useEnabled, Glib::ustring titleLabel) : imageEvBox->signal_leave_notify_event().connect( sigc::mem_fun(this, & MyExpander::on_enter_leave_enable), false ); headerHBox->pack_start(*imageEvBox, Gtk::PACK_SHRINK, 0); } else { - statusImage = Gtk::manage(new Gtk::Image(openedPBuf)); + statusImage = Gtk::manage(new RTImage(openedImage)); headerHBox->pack_start(*statusImage, Gtk::PACK_SHRINK, 0); } @@ -760,12 +789,12 @@ void MyExpander::set_inconsistent(bool isInconsistent) if (useEnabled) { if (isInconsistent) { - statusImage->set(inconsistentPBuf); + statusImage->set(inconsistentImage->get_surface()); } else { if (enabled) { - statusImage->set(enabledPBuf); + statusImage->set(enabledImage->get_surface()); } else { - statusImage->set(disabledPBuf); + statusImage->set(disabledImage->get_surface()); } } } @@ -791,14 +820,14 @@ void MyExpander::setEnabled(bool isEnabled) enabled = false; if (!inconsistent) { - statusImage->set(disabledPBuf); + statusImage->set(disabledImage->get_surface()); message.emit(); } } else { enabled = true; if (!inconsistent) { - statusImage->set(enabledPBuf); + statusImage->set(enabledImage->get_surface()); message.emit(); } } @@ -834,9 +863,9 @@ void MyExpander::set_expanded( bool expanded ) if (!useEnabled) { if (expanded ) { - statusImage->set(openedPBuf); + statusImage->set(openedImage->get_surface()); } else { - statusImage->set(closedPBuf); + statusImage->set(closedImage->get_surface()); } } @@ -879,9 +908,9 @@ bool MyExpander::on_toggle(GdkEventButton* event) if (!useEnabled) { if (isVisible) { - statusImage->set(closedPBuf); + statusImage->set(closedImage->get_surface()); } else { - statusImage->set(openedPBuf); + statusImage->set(openedImage->get_surface()); } } @@ -906,10 +935,10 @@ bool MyExpander::on_enabled_change(GdkEventButton* event) if (event->button == 1) { if (enabled) { enabled = false; - statusImage->set(disabledPBuf); + statusImage->set(disabledImage->get_surface()); } else { enabled = true; - statusImage->set(enabledPBuf); + statusImage->set(enabledImage->get_surface()); } message.emit(); @@ -983,14 +1012,19 @@ bool MyScrolledWindow::on_scroll_event (GdkEventScroll* event) return true; } +void MyScrolledWindow::get_preferred_width_vfunc (int &minimum_width, int &natural_width) const +{ + natural_width = minimum_width = 100 * RTScalable::getScale(); +} + void MyScrolledWindow::get_preferred_height_vfunc (int &minimum_height, int &natural_height) const { - natural_height = minimum_height = 50; + natural_height = minimum_height = 50 * RTScalable::getScale(); } void MyScrolledWindow::get_preferred_height_for_width_vfunc (int width, int &minimum_height, int &natural_height) const { - natural_height = minimum_height = 50; + natural_height = minimum_height = 50 * RTScalable::getScale(); } /* @@ -1050,11 +1084,11 @@ bool MyScrolledToolbar::on_scroll_event (GdkEventScroll* event) return true; } -void MyScrolledToolbar::get_preferred_height (int &minimumHeight, int &naturalHeight) +void MyScrolledToolbar::get_preferred_height_vfunc (int &minimumHeight, int &naturalHeight) const { int currMinHeight = 0; int currNatHeight = 0; - std::vector childs = get_children(); + std::vector childs = get_children(); minimumHeight = naturalHeight = 0; for (auto child : childs) @@ -1093,7 +1127,7 @@ bool MyComboBoxText::on_scroll_event (GdkEventScroll* event) void MyComboBoxText::setPreferredWidth (int minimum_width, int natural_width) { if (natural_width == -1 && minimum_width == -1) { - naturalWidth = minimumWidth = 70; + naturalWidth = minimumWidth = 70 * RTScalable::getScale(); } else if (natural_width == -1) { naturalWidth = minimumWidth = minimum_width; } else if (minimum_width == -1) { @@ -1108,19 +1142,19 @@ void MyComboBoxText::setPreferredWidth (int minimum_width, int natural_width) void MyComboBoxText::get_preferred_width_vfunc (int &minimum_width, int &natural_width) const { - natural_width = rtengine::max(naturalWidth, 10); - minimum_width = rtengine::max(minimumWidth, 10); + natural_width = rtengine::max(naturalWidth, 10 * RTScalable::getScale()); + minimum_width = rtengine::max(minimumWidth, 10 * RTScalable::getScale()); } void MyComboBoxText::get_preferred_width_for_height_vfunc (int height, int &minimum_width, int &natural_width) const { - natural_width = rtengine::max(naturalWidth, 10); - minimum_width = rtengine::max(minimumWidth, 10); + natural_width = rtengine::max(naturalWidth, 10 * RTScalable::getScale()); + minimum_width = rtengine::max(minimumWidth, 10 * RTScalable::getScale()); } MyComboBox::MyComboBox () { - minimumWidth = naturalWidth = 70; + minimumWidth = naturalWidth = 70 * RTScalable::getScale(); } bool MyComboBox::on_scroll_event (GdkEventScroll* event) @@ -1139,7 +1173,7 @@ bool MyComboBox::on_scroll_event (GdkEventScroll* event) void MyComboBox::setPreferredWidth (int minimum_width, int natural_width) { if (natural_width == -1 && minimum_width == -1) { - naturalWidth = minimumWidth = 70; + naturalWidth = minimumWidth = 70 * RTScalable::getScale(); } else if (natural_width == -1) { naturalWidth = minimumWidth = minimum_width; } else if (minimum_width == -1) { @@ -1154,13 +1188,13 @@ void MyComboBox::setPreferredWidth (int minimum_width, int natural_width) void MyComboBox::get_preferred_width_vfunc (int &minimum_width, int &natural_width) const { - natural_width = rtengine::max(naturalWidth, 10); - minimum_width = rtengine::max(minimumWidth, 10); + natural_width = rtengine::max(naturalWidth, 10 * RTScalable::getScale()); + minimum_width = rtengine::max(minimumWidth, 10 * RTScalable::getScale()); } void MyComboBox::get_preferred_width_for_height_vfunc (int height, int &minimum_width, int &natural_width) const { - natural_width = rtengine::max(naturalWidth, 10); - minimum_width = rtengine::max(minimumWidth, 10); + natural_width = rtengine::max(naturalWidth, 10 * RTScalable::getScale()); + minimum_width = rtengine::max(minimumWidth, 10 * RTScalable::getScale()); } MySpinButton::MySpinButton () @@ -1445,11 +1479,11 @@ bool MyFileChooserButton::on_scroll_event (GdkEventScroll* event) void MyFileChooserButton::get_preferred_width_vfunc (int &minimum_width, int &natural_width) const { - minimum_width = natural_width = 35; + minimum_width = natural_width = 35 * RTScalable::getScale(); } void MyFileChooserButton::get_preferred_width_for_height_vfunc (int height, int &minimum_width, int &natural_width) const { - minimum_width = natural_width = 35; + minimum_width = natural_width = 35 * RTScalable::getScale(); } @@ -1457,7 +1491,8 @@ void MyFileChooserButton::get_preferred_width_for_height_vfunc (int height, int TextOrIcon::TextOrIcon (const Glib::ustring &fname, const Glib::ustring &labelTx, const Glib::ustring &tooltipTx) { - pack_start(*Gtk::manage(new RTImage(fname)), Gtk::PACK_SHRINK, 0); + RTImage *img = Gtk::manage(new RTImage(fname)); + pack_start(*img, Gtk::PACK_SHRINK, 0); set_tooltip_markup("" + labelTx + "\n" + tooltipTx); set_name("TextOrIcon"); @@ -1494,18 +1529,18 @@ const Gtk::Label* MyImageMenuItem::getLabel () const return label; } -MyProgressBar::MyProgressBar(int width) : w(rtengine::max(width, 10)) {} -MyProgressBar::MyProgressBar() : w(200) {} +MyProgressBar::MyProgressBar(int width) : w(rtengine::max(width, 10 * RTScalable::getScale())) {} +MyProgressBar::MyProgressBar() : w(200 * RTScalable::getScale()) {} void MyProgressBar::setPreferredWidth(int width) { - w = rtengine::max(width, 10); + w = rtengine::max(width, 10 * RTScalable::getScale()); } void MyProgressBar::get_preferred_width_vfunc (int &minimum_width, int &natural_width) const { - minimum_width = rtengine::max(w / 2, 50); - natural_width = rtengine::max(w, 50); + minimum_width = rtengine::max(w / 2, 50 * RTScalable::getScale()); + natural_width = rtengine::max(w, 50 * RTScalable::getScale()); } void MyProgressBar::get_preferred_width_for_height_vfunc (int height, int &minimum_width, int &natural_width) const diff --git a/rtgui/guiutils.h b/rtgui/guiutils.h index fdf1ea5c7..e4c38f347 100644 --- a/rtgui/guiutils.h +++ b/rtgui/guiutils.h @@ -44,6 +44,7 @@ void writeFailed (Gtk::Window& parent, const std::string& filename); void drawCrop (Cairo::RefPtr cr, int imx, int imy, int imw, int imh, int startx, int starty, double scale, const rtengine::procparams::CropParams& cparams, bool drawGuide = true, bool useBgColor = true, bool fullImageVisible = true); gboolean acquireGUI(void* data); void setExpandAlignProperties(Gtk::Widget *widget, bool hExpand, bool vExpand, enum Gtk::Align hAlign, enum Gtk::Align vAlign); +Gtk::Border getPadding(const Glib::RefPtr style); class IdleRegister final : public rtengine::NonCopyable @@ -181,11 +182,11 @@ public: typedef sigc::signal type_signal_enabled_toggled; private: type_signal_enabled_toggled message; - static Glib::RefPtr inconsistentPBuf; /// "inconsistent" image, displayed when useEnabled is true ; in this case, nothing will tell that an expander is opened/closed - static Glib::RefPtr enabledPBuf; /// "enabled" image, displayed when useEnabled is true ; in this case, nothing will tell that an expander is opened/closed - static Glib::RefPtr disabledPBuf; /// "disabled" image, displayed when useEnabled is true ; in this case, nothing will tell that an expander is opened/closed - static Glib::RefPtr openedPBuf; /// "opened" image, displayed when useEnabled is false - static Glib::RefPtr closedPBuf; /// "closed" image, displayed when useEnabled is false + static Glib::RefPtr inconsistentImage; /// "inconsistent" image, displayed when useEnabled is true ; in this case, nothing will tell that an expander is opened/closed + static Glib::RefPtr enabledImage; /// "enabled" image, displayed when useEnabled is true ; in this case, nothing will tell that an expander is opened/closed + static Glib::RefPtr disabledImage; /// "disabled" image, displayed when useEnabled is true ; in this case, nothing will tell that an expander is opened/closed + static Glib::RefPtr openedImage; /// "opened" image, displayed when useEnabled is false + static Glib::RefPtr closedImage; /// "closed" image, displayed when useEnabled is false bool enabled; /// Enabled feature (default to true) bool inconsistent; /// True if the enabled button is inconsistent Gtk::EventBox *titleEvBox; /// EventBox of the title, to get a connector from it @@ -210,7 +211,7 @@ private: protected: Gtk::Container* child; /// Gtk::Contained to display below the expander's title Gtk::Widget* headerWidget; /// Widget to display in the header, next to the arrow image ; can be NULL if the "string" version of the ctor has been used - Gtk::Image* statusImage; /// Image to display the opened/closed status (if useEnabled is false) of the enabled/disabled status (if useEnabled is true) + RTImage* statusImage; /// Image to display the opened/closed status (if useEnabled is false) of the enabled/disabled status (if useEnabled is true) Gtk::Label* label; /// Text to display in the header, next to the arrow image ; can be NULL if the "widget" version of the ctor has been used bool useEnabled; /// Set whether to handle an enabled/disabled feature and display the appropriate images @@ -230,6 +231,7 @@ public: /// Initialize the class by loading the images static void init(); + static void cleanup(); Glib::SignalProxy1< bool, GdkEventButton* > signal_button_release_event() { @@ -288,6 +290,7 @@ class MyScrolledWindow : public Gtk::ScrolledWindow { bool on_scroll_event (GdkEventScroll* event) override; + void get_preferred_width_vfunc (int& minimum_width, int& natural_width) const override; void get_preferred_height_vfunc (int& minimum_height, int& natural_height) const override; void get_preferred_height_for_width_vfunc (int width, int &minimum_height, int &natural_height) const override; @@ -302,7 +305,7 @@ class MyScrolledToolbar : public Gtk::ScrolledWindow { bool on_scroll_event (GdkEventScroll* event) override; - void get_preferred_height (int &minimumHeight, int &naturalHeight); + void get_preferred_height_vfunc (int& minimum_height, int& natural_height) const override; public: MyScrolledToolbar(); diff --git a/rtgui/histogrampanel.cc b/rtgui/histogrampanel.cc index 8ee19eca8..49960b2db 100644 --- a/rtgui/histogrampanel.cc +++ b/rtgui/histogrampanel.cc @@ -412,18 +412,21 @@ void HistogramRGBArea::get_preferred_height_vfunc (int &minimum_height, int &nat void HistogramRGBArea::get_preferred_width_vfunc (int &minimum_width, int &natural_width) const { - minimum_width = 60; - natural_width = 200; + int s = RTScalable::getScale(); + minimum_width = 60 * s; + natural_width = 200 * s; } void HistogramRGBArea::get_preferred_height_for_width_vfunc (int width, int &minimum_height, int &natural_height) const { int bHeight = width / 30; - if (bHeight > 10) { - bHeight = 10; - } else if (bHeight < 5) { - bHeight = 5; + int s = RTScalable::getScale(); + + if (bHeight > (10 * s)) { + bHeight = 10 * s; + } else if (bHeight < (5 * s)) { + bHeight = 5 * s; } minimum_height = bHeight; @@ -454,6 +457,8 @@ void HistogramRGBArea::updateBackBuffer (int r, int g, int b, const Glib::ustrin int winx, winy, winw, winh; window->get_geometry(winx, winy, winw, winh); + double s = RTScalable::getScale(); + // This will create or update the size of the BackBuffer::surface setDrawRectangle(Cairo::FORMAT_ARGB32, 0, 0, winw, winh, true); @@ -467,18 +472,18 @@ void HistogramRGBArea::updateBackBuffer (int r, int g, int b, const Glib::ustrin cc->set_operator (Cairo::OPERATOR_OVER); cc->set_antialias(Cairo::ANTIALIAS_NONE); - cc->set_line_width (1.0); + cc->set_line_width (1.0 * s); if ( r != -1 && g != -1 && b != -1 ) { if (needRed) { // Red cc->set_source_rgb(1.0, 0.0, 0.0); if (options.histogramDrawMode < 2) { - cc->move_to(r * (winw - 3) / 255.0 + 2, 0); // Rescaling seems needed to fit between boundaries of draw area - cc->line_to(r * (winw - 3) / 255.0 + 2, winh - 0); + cc->move_to(r * (winw - 1.) / 255.0 + 0.5*s, 0); // Rescaling seems needed to fit between boundaries of draw area + cc->line_to(r * (winw - 1.) / 255.0 + 0.5*s, winh - 0); } else { - cc->move_to(HistogramScaling::log (255, r) * (winw - 3) / 255.0 + 2, 0); - cc->line_to(HistogramScaling::log (255, r) * (winw - 3) / 255.0 + 2, winh - 0); + cc->move_to(HistogramScaling::log (255, r) * (winw - 1.*s) / 255.0 + 0.5*s, 0); + cc->line_to(HistogramScaling::log (255, r) * (winw - 1.*s) / 255.0 + 0.5*s, winh - 0); } cc->stroke(); } @@ -487,11 +492,11 @@ void HistogramRGBArea::updateBackBuffer (int r, int g, int b, const Glib::ustrin // Green cc->set_source_rgb(0.0, 1.0, 0.0); if (options.histogramDrawMode < 2) { - cc->move_to(g * (winw - 3) / 255.0 + 2, 0); - cc->line_to(g * (winw - 3) / 255.0 + 2, winh - 0); + cc->move_to(g * (winw - 1.) / 255.0 + 0.5*s, 0); + cc->line_to(g * (winw - 1.) / 255.0 + 0.5*s, winh - 0); } else { - cc->move_to(HistogramScaling::log (255, g) * (winw - 3) / 255.0 + 2, 0); - cc->line_to(HistogramScaling::log (255, g) * (winw - 3) / 255.0 + 2, winh - 0); + cc->move_to(HistogramScaling::log (255, g) * (winw - 1.) / 255.0 + 0.5*s, 0); + cc->line_to(HistogramScaling::log (255, g) * (winw - 1.) / 255.0 + 0.5*s, winh - 0); } cc->stroke(); } @@ -500,11 +505,11 @@ void HistogramRGBArea::updateBackBuffer (int r, int g, int b, const Glib::ustrin // Blue cc->set_source_rgb(0.0, 0.0, 1.0); if (options.histogramDrawMode < 2) { - cc->move_to(b * (winw - 3) / 255.0 + 2, 0); - cc->line_to(b * (winw - 3) / 255.0 + 2, winh - 0); + cc->move_to(b * (winw - 1.) / 255.0 + 0.5*s, 0); + cc->line_to(b * (winw - 1.) / 255.0 + 0.5*s, winh - 0); } else { - cc->move_to(HistogramScaling::log (255, b) * (winw - 3) / 255.0 + 2, 0); - cc->line_to(HistogramScaling::log (255, b) * (winw - 3) / 255.0 + 2, winh - 0); + cc->move_to(HistogramScaling::log (255, b) * (winw - 1.) / 255.0 + 0.5*s, 0); + cc->line_to(HistogramScaling::log (255, b) * (winw - 1.) / 255.0 + 0.5*s, winh - 0); } cc->stroke(); } @@ -517,11 +522,11 @@ void HistogramRGBArea::updateBackBuffer (int r, int g, int b, const Glib::ustrin // Luma cc->set_source_rgb(1.0, 1.0, 1.0); if (options.histogramDrawMode < 2) { - cc->move_to(Lab_L * (winw - 3) / 100.0 + 2, 0); - cc->line_to(Lab_L * (winw - 3) / 100.0 + 2, winh - 0); + cc->move_to(Lab_L * (winw - 3.*s) / 100.0 + 0.5*s, 0); + cc->line_to(Lab_L * (winw - 3.*s) / 100.0 + 0.5*s, winh - 0); } else { - cc->move_to(HistogramScaling::log (100, Lab_L) * (winw - 3) / 100.0 + 2, 0); - cc->line_to(HistogramScaling::log (100, Lab_L) * (winw - 3) / 100.0 + 2, winh - 0); + cc->move_to(HistogramScaling::log (100, Lab_L) * (winw - 1.) / 100.0 + 0.5*s, 0); + cc->line_to(HistogramScaling::log (100, Lab_L) * (winw - 1.) / 100.0 + 0.5*s, winh - 0); } cc->stroke(); } @@ -532,11 +537,11 @@ void HistogramRGBArea::updateBackBuffer (int r, int g, int b, const Glib::ustrin // float chromaval = sqrt(Lab_a*Lab_a + Lab_b*Lab_b); cc->set_source_rgb(0.9, 0.9, 0.0); if (options.histogramDrawMode < 2) { - cc->move_to(chromaval * (winw - 3) / 100.0 + 2, 0); - cc->line_to(chromaval * (winw - 3) / 100.0 + 2, winh - 0); + cc->move_to(chromaval * (winw - 1.) / 100.0 + 0.5*s, 0); + cc->line_to(chromaval * (winw - 1.) / 100.0 + 0.5*s, winh - 0); } else { - cc->move_to(HistogramScaling::log (100, chromaval) * (winw - 3) / 100.0 + 2, 0); - cc->line_to(HistogramScaling::log (100, chromaval) * (winw - 3) / 100.0 + 2, winh - 0); + cc->move_to(HistogramScaling::log (100, chromaval) * (winw - 1.) / 100.0 + 0.5*s, 0); + cc->line_to(HistogramScaling::log (100, chromaval) * (winw - 1.) / 100.0 + 0.5*s, winh - 0); } cc->stroke(); } @@ -695,16 +700,17 @@ Gtk::SizeRequestMode HistogramArea::get_request_mode_vfunc () const void HistogramArea::get_preferred_height_vfunc (int &minimum_height, int &natural_height) const { - - minimum_height = 100; - natural_height = 200; + int s = (int)RTScalable::getScale(); + minimum_height = 100 * s; + natural_height = 200 * s; } void HistogramArea::get_preferred_width_vfunc (int &minimum_width, int &natural_width) const { - minimum_width = 200; - natural_width = 400; + int s = (int)RTScalable::getScale(); + minimum_width = 200 * s; + natural_width = 400 * s; } void HistogramArea::get_preferred_height_for_width_vfunc (int width, int &minimum_height, int &natural_height) const @@ -802,6 +808,8 @@ void HistogramArea::updateBackBuffer () Cairo::RefPtr cr = Cairo::Context::create(surface); const Glib::RefPtr style = get_style_context(); + double s = RTScalable::getScale(); + // Setup drawing cr->set_source_rgba (0., 0., 0., 0.); cr->set_operator (Cairo::OPERATOR_CLEAR); @@ -810,9 +818,10 @@ void HistogramArea::updateBackBuffer () // Prepare drawing gridlines first cr->set_source_rgba (1., 1., 1., 0.25); - cr->set_line_width (1.0); + cr->set_line_width (1.0 * s); cr->set_antialias(Cairo::ANTIALIAS_NONE); cr->set_line_join(Cairo::LINE_JOIN_MITER); + cr->set_line_cap(Cairo::LINE_CAP_BUTT); std::valarray ch_ds (1); ch_ds[0] = 4; cr->set_dash (ch_ds, 0); @@ -824,14 +833,14 @@ void HistogramArea::updateBackBuffer () // draw vertical gridlines if (options.histogramDrawMode < 2) { for (int i = 1; i < nrOfVGridPartitions; i++) { - cr->move_to ((pow(2.0,i) - 1) / 255.0 * w + 0.5, 1.5); - cr->line_to ((pow(2.0,i) - 1) / 255.0 * w + 0.5, h - 2); + cr->move_to ((pow(2.0,i) - 1) / 255.0 * w + 0.5, 0.); + cr->line_to ((pow(2.0,i) - 1) / 255.0 * w + 0.5, h); cr->stroke (); } } else { for (int i = 1; i < nrOfVGridPartitions; i++) { - cr->move_to (HistogramScaling::log (255, pow(2.0,i) - 1) / 255.0 * w + 0.5, 1.5); - cr->line_to (HistogramScaling::log (255, pow(2.0,i) - 1) / 255.0 * w + 0.5, h - 2); + cr->move_to (HistogramScaling::log (255, pow(2.0,i) - 1) / 255.0 * w + 0.5, 0.); + cr->line_to (HistogramScaling::log (255, pow(2.0,i) - 1) / 255.0 * w + 0.5, h); cr->stroke (); } } @@ -839,14 +848,14 @@ void HistogramArea::updateBackBuffer () // draw horizontal gridlines if (options.histogramDrawMode == 0) { for (int i = 1; i < nrOfHGridPartitions; i++) { - cr->move_to (1.5, i * (double)h / nrOfHGridPartitions + 0.5); - cr->line_to (w - 2, i * (double)h / nrOfHGridPartitions + 0.5); + cr->move_to (0., i * (double)h / nrOfHGridPartitions + 0.5); + cr->line_to (w, i * (double)h / nrOfHGridPartitions + 0.5); cr->stroke (); } } else { for (int i = 1; i < nrOfHGridPartitions; i++) { - cr->move_to (1.5, h - HistogramScaling::log (h, i * (double)h / nrOfHGridPartitions) + 0.5); - cr->line_to (w - 2, h - HistogramScaling::log (h, i * (double)h / nrOfHGridPartitions) + 0.5); + cr->move_to (0., h - HistogramScaling::log (h, i * (double)h / nrOfHGridPartitions) + 0.5*s); + cr->line_to (w, h - HistogramScaling::log (h, i * (double)h / nrOfHGridPartitions) + 0.5*s); cr->stroke (); } } @@ -920,7 +929,7 @@ void HistogramArea::updateBackBuffer () } cr->set_antialias (Cairo::ANTIALIAS_SUBPIXEL); - cr->set_line_width (1.0); + cr->set_line_width (1.0 * s); cr->set_operator (Cairo::OPERATOR_OVER); int ui = 0, oi = 0; @@ -982,6 +991,9 @@ void HistogramArea::on_realize () void HistogramArea::drawCurve(Cairo::RefPtr &cr, LUTu & data, double scale, int hsize, int vsize) { + double s = RTScalable::getScale(); + + cr->set_line_width(s); cr->move_to (0, vsize - 1); scale = scale <= 0.f ? 0.001f : scale; // avoid division by zero and negative values @@ -1009,7 +1021,7 @@ void HistogramArea::drawCurve(Cairo::RefPtr &cr, void HistogramArea::drawMarks(Cairo::RefPtr &cr, LUTu & data, double scale, int hsize, int & ui, int & oi) { - int s = 8; + int s = 8 * RTScalable::getScale(); if(data[0] > scale) { cr->rectangle(0, (ui++)*s, s, s); diff --git a/rtgui/iccprofilecreator.cc b/rtgui/iccprofilecreator.cc index 584412120..e5172c7e7 100644 --- a/rtgui/iccprofilecreator.cc +++ b/rtgui/iccprofilecreator.cc @@ -22,7 +22,6 @@ #include "multilangmgr.h" #include "cachemanager.h" #include "addsetids.h" -#include "../rtengine/icons.h" #include "../rtengine/color.h" #include "rtimage.h" #ifdef _OPENMP diff --git a/rtgui/imagearea.cc b/rtgui/imagearea.cc index 40a8c2ca8..dd891b351 100644 --- a/rtgui/imagearea.cc +++ b/rtgui/imagearea.cc @@ -760,14 +760,14 @@ Gtk::SizeRequestMode ImageArea::get_request_mode_vfunc () const void ImageArea::get_preferred_height_vfunc (int &minimum_height, int &natural_height) const { - minimum_height= 50; - natural_height = 300; + minimum_height= 50 * RTScalable::getScale(); + natural_height = 300 * RTScalable::getScale(); } void ImageArea::get_preferred_width_vfunc (int &minimum_width, int &natural_width) const { - minimum_width = 100; - natural_width = 400; + minimum_width = 100 * RTScalable::getScale(); + natural_width = 400 * RTScalable::getScale(); } void ImageArea::get_preferred_height_for_width_vfunc (int width, int &minimum_height, int &natural_height) const diff --git a/rtgui/inspector.cc b/rtgui/inspector.cc index 6da62cd3b..06e2272e7 100644 --- a/rtgui/inspector.cc +++ b/rtgui/inspector.cc @@ -323,14 +323,14 @@ Gtk::SizeRequestMode Inspector::get_request_mode_vfunc () const void Inspector::get_preferred_height_vfunc (int &minimum_height, int &natural_height) const { - minimum_height= 50; - natural_height = 300; + minimum_height= 50 * RTScalable::getScale(); + natural_height = 300 * RTScalable::getScale(); } void Inspector::get_preferred_width_vfunc (int &minimum_width, int &natural_width) const { - minimum_width = 50; - natural_width = 200; + minimum_width = 50 * RTScalable::getScale(); + natural_width = 200 * RTScalable::getScale(); } void Inspector::get_preferred_height_for_width_vfunc (int width, int &minimum_height, int &natural_height) const diff --git a/rtgui/labgrid.cc b/rtgui/labgrid.cc index f680c7322..81d4ee170 100644 --- a/rtgui/labgrid.cc +++ b/rtgui/labgrid.cc @@ -70,8 +70,10 @@ LabGridArea::LabGridArea(rtengine::ProcEvent evt, const Glib::ustring &msg, bool isDragged(false), low_enabled(enable_low) { - set_can_focus(true); + set_can_focus(false); // prevent moving the grid while you're moving a point add_events(Gdk::EXPOSURE_MASK | Gdk::BUTTON_PRESS_MASK | Gdk::BUTTON_RELEASE_MASK | Gdk::POINTER_MOTION_MASK); + set_name("LabGrid"); + get_style_context()->add_class("drawingarea"); } void LabGridArea::getParams(double &la, double &lb, double &ha, double &hb) const @@ -157,12 +159,15 @@ bool LabGridArea::on_draw(const ::Cairo::RefPtr &crf) } Glib::RefPtr style = get_style_context(); + Gtk::Border padding = getPadding(style); // already scaled Cairo::RefPtr cr = getContext(); if (isDirty()) { int width = allocation.get_width(); int height = allocation.get_height(); + int s = RTScalable::getScale(); + cr->set_line_cap(Cairo::LINE_CAP_SQUARE); // clear background @@ -170,19 +175,31 @@ bool LabGridArea::on_draw(const ::Cairo::RefPtr &crf) cr->set_operator (Cairo::OPERATOR_CLEAR); cr->paint (); cr->set_operator (Cairo::OPERATOR_OVER); - style->render_background(cr, 0, 0, width, height); + style->render_background(cr, + inset * s + padding.get_left() - s, + inset * s + padding.get_top() - s, + width - 2 * inset * s - padding.get_right() - padding.get_left() + 2 * s, + height - 2 * inset * s - padding.get_top() - padding.get_bottom() + 2 * s + ); // drawing the cells - cr->translate(inset, inset); + cr->translate(inset * s + padding.get_left(), inset * s + padding.get_top()); cr->set_antialias(Cairo::ANTIALIAS_NONE); - width -= 2 * inset; - height -= 2 * inset; + width -= 2 * inset * s + padding.get_right() + padding.get_left(); + height -= 2 * inset * s + padding.get_top() + padding.get_bottom(); + // flip y: cr->translate(0, height); cr->scale(1., -1.); const int cells = 8; float step = 12000.f / float(cells/2); + double cellW = double(width) / double(cells); + double cellH = double(height) / double(cells); + double cellYMin = 0.; + double cellYMax = std::floor(cellH); for (int j = 0; j < cells; j++) { + double cellXMin = 0.; + double cellXMax = std::floor(cellW); for (int i = 0; i < cells; i++) { float R, G, B; float x, y, z; @@ -193,9 +210,18 @@ bool LabGridArea::on_draw(const ::Cairo::RefPtr &crf) Color::Lab2XYZ(25000.f, a, b, x, y, z); Color::xyz2srgb(x, y, z, R, G, B); cr->set_source_rgb(R / 65535.f, G / 65535.f, B / 65535.f); - cr->rectangle(width * i / float(cells), height * j / float(cells), width / float(cells) - 1, height / float(cells) - 1); + cr->rectangle( + cellXMin, + cellYMin, + cellXMax - cellXMin - (i == cells-1 ? 0. : double(s)), + cellYMax - cellYMin - (j == cells-1 ? 0. : double(s)) + ); + cellXMin = cellXMax; + cellXMax = std::floor(cellW * double(i+2) + 0.01); cr->fill(); } + cellYMin = cellYMax; + cellYMax = std::floor(cellH * double(j+2) + 0.01); } // drawing the connection line @@ -205,7 +231,7 @@ bool LabGridArea::on_draw(const ::Cairo::RefPtr &crf) hia = .5f * (width + width * high_a); lob = .5f * (height + height * low_b); hib = .5f * (height + height * high_b); - cr->set_line_width(2.); + cr->set_line_width(2. * double(s)); cr->set_source_rgb(0.6, 0.6, 0.6); cr->move_to(loa, lob); cr->line_to(hia, hib); @@ -215,18 +241,18 @@ bool LabGridArea::on_draw(const ::Cairo::RefPtr &crf) if (low_enabled) { cr->set_source_rgb(0.1, 0.1, 0.1); if (litPoint == LOW) { - cr->arc(loa, lob, 5, 0, 2. * rtengine::RT_PI); + cr->arc(loa, lob, 5 * s, 0, 2. * rtengine::RT_PI); } else { - cr->arc(loa, lob, 3, 0, 2. * rtengine::RT_PI); + cr->arc(loa, lob, 3 * s, 0, 2. * rtengine::RT_PI); } cr->fill(); } cr->set_source_rgb(0.9, 0.9, 0.9); if (litPoint == HIGH) { - cr->arc(hia, hib, 5, 0, 2. * rtengine::RT_PI); + cr->arc(hia, hib, 5 * s, 0, 2. * rtengine::RT_PI); } else { - cr->arc(hia, hib, 3, 0, 2. * rtengine::RT_PI); + cr->arc(hia, hib, 3 * s, 0, 2. * rtengine::RT_PI); } cr->fill(); } @@ -279,11 +305,16 @@ bool LabGridArea::on_motion_notify_event(GdkEventMotion *event) delayconn.disconnect(); } + Glib::RefPtr style = get_style_context(); + Gtk::Border padding = getPadding(style); // already scaled + State oldLitPoint = litPoint; - int width = get_allocated_width() - 2 * inset, height = get_allocated_height() - 2 * inset; - const float mouse_x = std::min(std::max(event->x - inset, 0.), double(width)); - const float mouse_y = std::min(std::max(height - 1 - event->y + inset, 0.), double(height)); + int s = RTScalable::getScale(); + int width = get_allocated_width() - 2 * inset * s - padding.get_right() - padding.get_left(); + int height = get_allocated_height() - 2 * inset * s - padding.get_top() - padding.get_bottom(); + const float mouse_x = std::min(double(std::max(event->x - inset * s - padding.get_right(), 0.)), double(width)); + const float mouse_y = std::min(double(std::max(get_allocated_height() - 1 - event->y - inset * s - padding.get_bottom(), 0.)), double(height)); const float ma = (2.0 * mouse_x - width) / (float)width; const float mb = (2.0 * mouse_y - height) / (float)height; if (isDragged) { @@ -332,14 +363,22 @@ Gtk::SizeRequestMode LabGridArea::get_request_mode_vfunc() const void LabGridArea::get_preferred_width_vfunc(int &minimum_width, int &natural_width) const { - minimum_width = 50; - natural_width = 150; // same as GRAPH_SIZE from mycurve.h + Glib::RefPtr style = get_style_context(); + Gtk::Border padding = getPadding(style); // already scaled + int s = RTScalable::getScale(); + int p = padding.get_left() + padding.get_right(); + + minimum_width = 50 * s + p; + natural_width = 150 * s + p; // same as GRAPH_SIZE from mycurve.h } void LabGridArea::get_preferred_height_for_width_vfunc(int width, int &minimum_height, int &natural_height) const { - minimum_height = natural_height = width; + Glib::RefPtr style = get_style_context(); + Gtk::Border padding = getPadding(style); // already scaled + + minimum_height = natural_height = width - padding.get_left() - padding.get_right() + padding.get_top() + padding.get_bottom(); } diff --git a/rtgui/labgrid.h b/rtgui/labgrid.h index 00266c91b..dbb0cc427 100644 --- a/rtgui/labgrid.h +++ b/rtgui/labgrid.h @@ -50,21 +50,21 @@ private: enum State { NONE, HIGH, LOW }; State litPoint; - float low_a; - float high_a; - float low_b; - float high_b; + double low_a; + double high_a; + double low_b; + double high_b; - float defaultLow_a; - float defaultHigh_a; - float defaultLow_b; - float defaultHigh_b; + double defaultLow_a; + double defaultHigh_a; + double defaultLow_b; + double defaultHigh_b; ToolPanelListener *listener; bool edited; bool isDragged; sigc::connection delayconn; - static const int inset = 2; + static const int inset = 5; bool low_enabled; diff --git a/rtgui/lwbutton.cc b/rtgui/lwbutton.cc index 4998a302e..b1ed940c2 100644 --- a/rtgui/lwbutton.cc +++ b/rtgui/lwbutton.cc @@ -19,13 +19,13 @@ #include "lwbutton.h" #include "guiutils.h" -LWButton::LWButton (Cairo::RefPtr i, int aCode, void* aData, Alignment ha, Alignment va, Glib::ustring tooltip) +LWButton::LWButton (Cairo::RefPtr i, int aCode, void* aData, Alignment ha, Alignment va, Glib::ustring tooltip) : xpos(0), ypos(0), halign(ha), valign(va), icon(i), bgr(0.0), bgg(0.0), bgb(0.0), fgr(0.0), fgg(0.0), fgb(0.0), state(Normal), listener(nullptr), actionCode(aCode), actionData(aData), toolTip(tooltip) { if (i) { - w = i->get_width () + 2; - h = i->get_height () + 2; + w = i->getWidth () + 2; + h = i->getHeight () + 2; } else { w = h = 2; } @@ -52,20 +52,20 @@ void LWButton::getPosition (int& x, int& y) y = ypos; } -void LWButton::setIcon (Cairo::RefPtr i) +void LWButton::setIcon (Cairo::RefPtr i) { icon = i; if (i) { - w = i->get_width () + 2; - h = i->get_height () + 2; + w = i->getWidth () + 2; + h = i->getHeight () + 2; } else { w = h = 2; } } -Cairo::RefPtr LWButton::getIcon () +Cairo::RefPtr LWButton::getIcon () { return icon; @@ -205,7 +205,7 @@ void LWButton::redraw (Cairo::RefPtr context) } if (icon) { - context->set_source (icon, xpos + dilat, ypos + dilat); + context->set_source (icon->surface, xpos + dilat, ypos + dilat); context->paint (); } } diff --git a/rtgui/lwbutton.h b/rtgui/lwbutton.h index cccf59b11..4ab34f265 100644 --- a/rtgui/lwbutton.h +++ b/rtgui/lwbutton.h @@ -20,6 +20,7 @@ #define _LWBUTTON_ #include +#include "rtsurface.h" class LWButton; @@ -41,7 +42,7 @@ public: private: int xpos, ypos, w, h; Alignment halign, valign; - Cairo::RefPtr icon; + Cairo::RefPtr icon; double bgr, bgg, bgb; double fgr, fgg, fgb; State state; @@ -51,15 +52,15 @@ private: Glib::ustring toolTip; public: - LWButton (Cairo::RefPtr i, int aCode, void* aData, Alignment ha = Left, Alignment va = Center, Glib::ustring tooltip = ""); + LWButton (Cairo::RefPtr i, int aCode, void* aData, Alignment ha = Left, Alignment va = Center, Glib::ustring tooltip = ""); void getSize (int& minw, int& minh); void getAlignment (Alignment& ha, Alignment& va); void setPosition (int x, int y); void getPosition (int& x, int& y); bool inside (int x, int y); - void setIcon (Cairo::RefPtr i); - Cairo::RefPtr getIcon (); + void setIcon (Cairo::RefPtr i); + Cairo::RefPtr getIcon (); void setColors (const Gdk::RGBA& bg, const Gdk::RGBA& fg); void setToolTip (const Glib::ustring& tooltip); diff --git a/rtgui/main-cli.cc b/rtgui/main-cli.cc index be225378e..ddd42eb6a 100644 --- a/rtgui/main-cli.cc +++ b/rtgui/main-cli.cc @@ -33,7 +33,6 @@ #include #include #include "options.h" -#include "../rtengine/icons.h" #include "soundman.h" #include "rtimage.h" #include "version.h" @@ -195,8 +194,6 @@ int main (int argc, char **argv) options.defProfImg = DEFPROFILE_INTERNAL; } - rtengine::setPaths(); - TIFFSetWarningHandler (nullptr); // avoid annoying message boxes #ifndef WIN32 @@ -284,6 +281,10 @@ int processLineParams ( int argc, char **argv ) if ( currParam.at (0) == '-' && currParam.size() > 1) { switch ( currParam.at (1) ) { + case '-': + // GTK --argument, we're skipping it + break; + case 'O': copyParamsFile = true; diff --git a/rtgui/main.cc b/rtgui/main.cc index 1721867ba..a2c237d59 100644 --- a/rtgui/main.cc +++ b/rtgui/main.cc @@ -28,7 +28,6 @@ #include #include #include -#include "../rtengine/icons.h" #include "rtwindow.h" #include #include @@ -65,8 +64,7 @@ Glib::ustring argv2; bool simpleEditor = false; bool gimpPlugin = false; bool remote = false; -Glib::RefPtr cssForced; -Glib::RefPtr cssRT; +unsigned char initialGdkScale = 1; //Glib::Threads::Thread* mainThread; namespace @@ -134,6 +132,10 @@ int processLineParams ( int argc, char **argv ) if ( currParam.at (0) == '-' && currParam.size() > 1 ) { switch ( currParam.at (1) ) { + case '-': + // GTK --argument, we're skipping it + break; + #ifdef WIN32 case 'w': // This case is handled outside this function @@ -248,103 +250,8 @@ RTWindow *create_rt_window() Glib::RefPtr defaultIconTheme = Gtk::IconTheme::get_default(); defaultIconTheme->append_search_path (icon_path); - rtengine::setPaths(); - MyExpander::init(); // has to stay AFTER rtengine::setPaths - - // ------- loading theme files - - Glib::RefPtr screen = Gdk::Screen::get_default(); - - if (screen) { - Gtk::Settings::get_for_screen (screen)->property_gtk_theme_name() = "Adwaita"; - Gtk::Settings::get_for_screen (screen)->property_gtk_application_prefer_dark_theme() = true; - -#if defined(__APPLE__) - // This will force screen resolution regarding font, but I don't think it's compliant with Gtk guidelines... - // Do not confuse with screen scaling, where everything is scaled up ! - screen->set_resolution (96.); -#endif - - Glib::RefPtr regex = Glib::Regex::create (THEMEREGEXSTR, Glib::RegexCompileFlags::REGEX_CASELESS); - Glib::ustring filename; - Glib::MatchInfo mInfo; - bool match = regex->match(options.theme + ".css", mInfo); - if (match) { - // save old theme (name + version) - Glib::ustring initialTheme(options.theme); - - // update version - auto pos = options.theme.find("-GTK3-"); - Glib::ustring themeRootName(options.theme.substr(0, pos)); - if (GTK_MINOR_VERSION < 20) { - options.theme = themeRootName + "-GTK3-_19"; - } else { - options.theme = themeRootName + "-GTK3-20_"; - } - // check if this version exist - if (!Glib::file_test(Glib::build_filename(argv0, "themes", options.theme + ".css"), Glib::FILE_TEST_EXISTS)) { - // set back old theme version if the actual one doesn't exist yet - options.theme = initialTheme; - } - } - filename = Glib::build_filename(argv0, "themes", options.theme + ".css"); - - if (!match || !Glib::file_test(filename, Glib::FILE_TEST_EXISTS)) { - options.theme = "RawTherapee-GTK"; - - // We're not testing GTK_MAJOR_VERSION == 3 here, since this branch requires Gtk3 only - if (GTK_MINOR_VERSION < 20) { - options.theme = options.theme + "3-_19"; - } else { - options.theme = options.theme + "3-20_"; - } - - filename = Glib::build_filename (argv0, "themes", options.theme + ".css"); - } - - cssRT = Gtk::CssProvider::create(); - - try { - cssRT->load_from_path (filename); - Gtk::StyleContext::add_provider_for_screen (screen, cssRT, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); - } catch (Glib::Error &err) { - printf ("Error: Can't load css file \"%s\"\nMessage: %s\n", filename.c_str(), err.what().c_str()); - } catch (...) { - printf ("Error: Can't load css file \"%s\"\n", filename.c_str()); - } - - // Set the font face and size - if (options.fontFamily != "default") { - try { - cssForced = Gtk::CssProvider::create(); - //GTK318 -#if GTK_MAJOR_VERSION == 3 && GTK_MINOR_VERSION < 20 - cssForced->load_from_data (Glib::ustring::compose ("* { font-family: %1; font-size: %2px }", options.fontFamily, options.fontSize)); -#else - cssForced->load_from_data (Glib::ustring::compose ("* { font-family: %1; font-size: %2pt }", options.fontFamily, options.fontSize)); -#endif - //GTK318 - Gtk::StyleContext::add_provider_for_screen (screen, cssForced, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); - } catch (Glib::Error &err) { - printf ("Error: \"%s\"\n", err.what().c_str()); - } catch (...) { - printf ("Error: Can't find the font named \"%s\"\n", options.fontFamily.c_str()); - } - } - } - -#ifndef NDEBUG - else if (!screen) { - printf ("ERROR: Can't get default screen!\n"); - } - -#endif - - // ------- end loading theme files - //gdk_threads_enter (); RTWindow *rtWindow = new RTWindow(); - return rtWindow; } @@ -469,6 +376,14 @@ int main (int argc, char **argv) Glib::init(); // called by Gtk::Main, but this may be important for thread handling, so we call it ourselves now Gio::init (); + // Reading/updating GDK_SCALE early if it exists + const gchar *gscale = g_getenv("GDK_SCALE"); + if (gscale && gscale[0] == '2') { + initialGdkScale = 2; + } + // HOMBRE: On Windows, if resolution is set to 200%, Gtk internal variables are SCALE=2 and DPI=96 + g_setenv("GDK_SCALE", "1", true); + #ifdef WIN32 if (GetFileType (GetStdHandle (STD_OUTPUT_HANDLE)) == 0x0003) { // started from msys2 console => do not buffer stdout diff --git a/rtgui/mycurve.cc b/rtgui/mycurve.cc index 215eac429..5684bec33 100644 --- a/rtgui/mycurve.cc +++ b/rtgui/mycurve.cc @@ -21,11 +21,30 @@ #include #include -MyCurve::MyCurve () : pipetteR(-1.f), pipetteG(-1.f), pipetteB(-1.f), pipetteVal(-1.f), listener(nullptr), cursor_type(CSArrow), graphW(0), graphH(0), mod_type(Gdk::MODIFIER_MASK), cursorX(0), cursorY(0), snapToMinDistX(0.0), snapToMinDistY(0.0), snapToValX(0.0), snapToValY(0.0) +MyCurve::MyCurve () : + pipetteR(-1.f), + pipetteG(-1.f), + pipetteB(-1.f), + pipetteVal(-1.f), + listener(nullptr), + cursor_type(CSArrow), + graphX(0), + graphY(0), + graphW(0), + graphH(0), + mod_type(Gdk::MODIFIER_MASK), + cursorX(0), + cursorY(0), + snapToMinDistX(0.0), + snapToMinDistY(0.0), + snapToValX(0.0), + snapToValY(0.0) { - graphX = get_allocation().get_width() - RADIUS * 2; - graphY = get_allocation().get_height() - RADIUS * 2; + int s = RTScalable::getScale(); + int pointDiameter = (int)(RADIUS * 2.) * s; + graphW = get_allocation().get_width() - pointDiameter; + graphH = get_allocation().get_height() - pointDiameter; prevGraphW = graphW; prevGraphH = graphH; buttonPressed = false; @@ -55,26 +74,17 @@ MyCurve::~MyCurve () } } -int MyCurve::calcDimensions () +void MyCurve::calcDimensions () { - int newRequestedW, newRequestedH; + double newRequestedW, newRequestedH; + double s = (double)RTScalable::getScale(); newRequestedW = newRequestedH = get_allocation().get_width(); - if (leftBar && !bottomBar) { - newRequestedH -= CBAR_WIDTH + CBAR_MARGIN - RADIUS; - } - - if (!leftBar && bottomBar) { - newRequestedH += CBAR_WIDTH + CBAR_MARGIN - RADIUS; - } - - graphW = newRequestedW - RADIUS - (leftBar ? (CBAR_WIDTH + CBAR_MARGIN) : RADIUS); - graphH = newRequestedH - RADIUS - (bottomBar ? (CBAR_WIDTH + CBAR_MARGIN) : RADIUS); - graphX = newRequestedW - RADIUS - graphW; - graphY = RADIUS + graphH; - - return newRequestedH; + graphX = ((double)RADIUS + (leftBar ? (double)CBAR_WIDTH + 2. + (double)CBAR_MARGIN : 0.)) * s; + graphH = graphW = newRequestedW - graphX - (double)RADIUS * s; + graphY = (double)RADIUS * s + graphW; + return; } Gtk::SizeRequestMode MyCurve::get_request_mode_vfunc () const @@ -92,28 +102,23 @@ void MyCurve::get_preferred_height_vfunc (int &minimum_height, int &natural_heig void MyCurve::get_preferred_width_vfunc (int &minimum_width, int &natural_width) const { - natural_width = minimum_width = GRAPH_SIZE + 2 * RADIUS; + int s = RTScalable::getScale(); + natural_width = minimum_width = (GRAPH_SIZE + (int)(RADIUS * 2.) + (leftBar ? (CBAR_WIDTH + 2 + CBAR_MARGIN) : 0)) * s; } void MyCurve::get_preferred_height_for_width_vfunc (int width, int &minimum_height, int &natural_height) const { minimum_height = width; + int s = RTScalable::getScale(); if (leftBar && !bottomBar) { - minimum_height -= CBAR_WIDTH + CBAR_MARGIN - RADIUS; + minimum_height -= (CBAR_WIDTH + 2 + CBAR_MARGIN) * s; } if (!leftBar && bottomBar) { - minimum_height += CBAR_WIDTH + CBAR_MARGIN - RADIUS; + minimum_height += (CBAR_WIDTH + 2 + CBAR_MARGIN) * s; } - /* - graphW = width - RADIUS - (leftBar ? (CBAR_WIDTH+CBAR_MARGIN) : RADIUS); - graphH = minimum_height - RADIUS - (bottomBar ? (CBAR_WIDTH+CBAR_MARGIN) : RADIUS); - graphX = width - RADIUS - graphW; - graphY = RADIUS + graphH; - */ - natural_height = minimum_height; } @@ -174,10 +179,10 @@ bool MyCurve::snapCoordinateY(double testedVal, double realVal) float MyCurve::getVal(LUTf &curve, int x) { - if (size_t(graphW - 2) == curve.getSize()) { + if (size_t(graphW) == curve.getSize()) { return curve[x]; } else { - return curve.getVal01(float(x) / (graphW - 3)); + return curve.getVal01(float(x) / graphW); } } diff --git a/rtgui/mycurve.h b/rtgui/mycurve.h index f555ab7ef..82dd4a1a4 100644 --- a/rtgui/mycurve.h +++ b/rtgui/mycurve.h @@ -29,9 +29,9 @@ #include "guiutils.h" #include "options.h" -#define RADIUS 3 /** radius of the control points */ -#define CBAR_WIDTH 10 /** width of the colored bar (border included) */ -#define CBAR_MARGIN 2 /** spacing between the colored bar and the graph */ +#define RADIUS 3.5 /** radius of the control points ; must be x.5 to target the center of a pixel */ +#define CBAR_WIDTH 10 /** inner width of the colored bar (border excluded) */ +#define CBAR_MARGIN 1 /** spacing between the colored bar and the graph's bullet when set at 0,0 */ #define SQUARE 2 /** half length of the square shape of the tangent handles */ #define MIN_DISTANCE 5 /** min distance between control points */ #define GRAPH_SIZE 150 /** size of the curve editor graphic */ @@ -67,8 +67,8 @@ protected: ColoredBar *leftBar; ColoredBar *bottomBar; CursorShape cursor_type; - int graphX, graphY, graphW, graphH; /// position and dimensions of the graphic area, excluding surrounding space for the points or for the colored bar - int prevGraphW, prevGraphH; /// previous inner width and height of the editor + double graphX, graphY, graphW, graphH; /// position and dimensions of the inner graphic area, excluding the graph's border and the surrounding space for the points or for the colored bar + double prevGraphW, prevGraphH; /// previous inner width and height of the editor Gdk::ModifierType mod_type; int cursorX; /// X coordinate in the graph of the cursor int cursorY; /// Y coordinate in the graph of the cursor @@ -96,16 +96,10 @@ protected: std::vector editedPos; virtual std::vector get_vector (int veclen) = 0; - int getGraphMinSize() - { - return GRAPH_SIZE + RADIUS + 1; - } bool snapCoordinateX(double testedVal, double realVal); bool snapCoordinateY(double testedVal, double realVal); float getVal(LUTf &curve, int x); - - // return value = new requested height - int calcDimensions (); + void calcDimensions (); public: MyCurve (); diff --git a/rtgui/mydiagonalcurve.cc b/rtgui/mydiagonalcurve.cc index 4980f9bd9..59ac5a807 100644 --- a/rtgui/mydiagonalcurve.cc +++ b/rtgui/mydiagonalcurve.cc @@ -21,16 +21,23 @@ #include #include -MyDiagonalCurve::MyDiagonalCurve () : closest_point(0), clampedX(0.0), clampedY(0.0), deltaX(0.0), deltaY(0.0), distanceX(0.0), distanceY(0.0), ugpX(0.0), ugpY(0.0), activeParam(-1), bghistvalid(false) +MyDiagonalCurve::MyDiagonalCurve () : + MyCurve(), + closest_point(0), + clampedX(0.0), + clampedY(0.0), + deltaX(0.0), + deltaY(0.0), + distanceX(0.0), + distanceY(0.0), + ugpX(0.0), + ugpY(0.0), + activeParam(-1), + bghistvalid(false) { - graphW = get_allocation().get_width() - RADIUS * 2; - graphH = get_allocation().get_height() - RADIUS * 2; - prevGraphW = graphW; - prevGraphH = graphH; grab_point = -1; lit_point = -1; - buttonPressed = false; bghist = new unsigned int[256]; @@ -182,7 +189,7 @@ void MyDiagonalCurve::interpolate () prevGraphW = graphW; prevGraphH = graphH; - int nbPoints = rtengine::max(graphW - 2, 201); + unsigned int nbPoints = (unsigned int)graphW; point(nbPoints); get_LUT (point); upoint.reset(); @@ -215,14 +222,19 @@ void MyDiagonalCurve::draw (int handle) return; } - // re-calculate curve if dimensions changed - int currPointSize = point.getUpperBound(); + const double s = (double)RTScalable::getScale(); - if (curveIsDirty || /*prevGraphW != graphW || prevGraphH != graphH ||*/ (currPointSize == GRAPH_SIZE && (graphW - 3 > GRAPH_SIZE)) || (currPointSize > GRAPH_SIZE && (graphW - 2 <= GRAPH_SIZE || graphW - 3 != currPointSize))) { + // re-calculate curve if dimensions changed + int currLUTSize = point.getUpperBound(); + + if (curveIsDirty + || (currLUTSize == (GRAPH_SIZE * s) && (graphW > (GRAPH_SIZE * s))) + || (currLUTSize > (GRAPH_SIZE * s) && (graphW <= (GRAPH_SIZE * s) || graphW != currLUTSize)) ) + { interpolate (); } - currPointSize = point.getUpperBound(); + currLUTSize = point.getUpperBound(); Gtk::StateFlags state = !is_sensitive() ? Gtk::STATE_FLAG_INSENSITIVE : Gtk::STATE_FLAG_NORMAL; @@ -240,6 +252,36 @@ void MyDiagonalCurve::draw (int handle) Gdk::RGBA c; + cr->set_line_width (1.0 * s); + + // draw the left colored bar + if (leftBar) { + // first the background + BackBuffer *bb = this; + leftBar->setDrawRectangle(1. * s, graphY - graphH - 0.5, CBAR_WIDTH * s, graphH); + leftBar->expose(*this, bb); + + // now the border + c = style->get_border_color(state); + cr->set_source_rgb (c.get_red(), c.get_green(), c.get_blue()); + cr->rectangle(0.5 * s, graphY - graphH - 0.5 - 0.5 * s, (CBAR_WIDTH + 1) * s, (double)graphH + 1. + 1. * s); + cr->stroke(); + } + + // draw the bottom colored bar + if (bottomBar) { + // first the background + BackBuffer *bb = this; + bottomBar->setDrawRectangle(graphX - 0.5, graphY + (RADIUS + CBAR_MARGIN + 1.) * s, graphW + 1., CBAR_WIDTH * s); + bottomBar->expose(*this, bb); + + // now the border + c = style->get_border_color (state); + cr->set_source_rgb (c.get_red(), c.get_green(), c.get_blue()); + cr->rectangle(graphX - 0.5 - 0.5 * s, graphY + (RADIUS + CBAR_MARGIN + 0.5) * s, graphW + 1. + 0.5 * s, (CBAR_WIDTH + 1.) * s); + cr->stroke(); + } + // histogram in the background if (bghistvalid) { // find highest bin @@ -251,9 +293,9 @@ void MyDiagonalCurve::draw (int handle) } // draw histogram - cr->set_line_width (1.0); - double stepSize = (graphW - 3) / 255.0; - cr->move_to ( double(graphX + 1), double(graphY - 1) ); + cr->set_line_width (1.0 * s); + double stepSize = graphW / 255.0; + cr->move_to (graphX, graphY); c = style->get_color(state); cr->set_source_rgba (c.get_red(), c.get_green(), c.get_blue(), 0.2); @@ -264,27 +306,27 @@ void MyDiagonalCurve::draw (int handle) val = graphH-2; */ //if (i>0) - cr->line_to (double(graphX) + 1.5 + double(i)*stepSize, double(graphY - 1) - val); + cr->line_to (graphX + double(i)*stepSize, graphY - val); } - cr->line_to (double(graphX) + 1.5 + 255.*stepSize, double(graphY - 1)); + cr->line_to (graphX + 255.*stepSize, graphY); cr->close_path(); cr->fill (); } // draw the grid lines: - cr->set_line_width (1.0); + cr->set_line_width (1.0 * s); c = style->get_border_color(state); cr->set_source_rgb (c.get_red(), c.get_green(), c.get_blue()); cr->set_antialias (Cairo::ANTIALIAS_NONE); for (int i = 0; i <= 10; i++) { // horizontal lines - cr->move_to (double(graphX) + 0.5 , double(graphY) - max(0.5, double(graphH * i / 10) - 0.5)); - cr->rel_line_to (double(graphW - 1) , 0.); + cr->move_to (graphX - 0.5 - 0.5 * s, graphY + 0.5 + 0.5 * s - (graphH + 1. + 1. * s) * (double)i / 10.); + cr->rel_line_to (graphW + 1. + 1. * s, 0.); // vertical lines - cr->move_to (double(graphX) + max(0.5, double(graphW * i / 10) - 0.5), double(graphY)); - cr->rel_line_to (0. , double(-graphH + 1)); + cr->move_to (graphX - 0.5 - 0.5 * s + (graphW + 1. + 1. * s) * (double)i / 10., graphY + 0.5 + 0.5 * s); + cr->rel_line_to (0., -graphH - 1. - 1. * s); } cr->stroke (); @@ -297,31 +339,27 @@ void MyDiagonalCurve::draw (int handle) } std::valarray ds (1); - ds[0] = 4; + ds[0] = 4 * s; cr->set_dash (ds, 0); - cr->move_to (double(graphX) + 1.5, double(graphY) - 1.5); - cr->rel_line_to (double(graphW - 3), double(-graphH + 3)); + cr->move_to (graphX - 0.5 - 0.5 * s, graphY + 0.5 + 0.5 * s); + cr->rel_line_to (graphW + 1. + 1. * s, -(graphH + 1. + 1. * s)); cr->stroke (); cr->unset_dash (); cr->set_antialias (Cairo::ANTIALIAS_SUBPIXEL); - cr->set_line_width (1.0); + cr->set_line_width (1.0 * s); // draw upper and lower bounds - float graphH_ = float(graphH - 3); - float graphX_ = float(graphX) + 1.5; - float graphY_ = float(graphY) - 1.5; - if (curve.type == DCT_Parametric && activeParam > 0 && lpoint.getUpperBound() > 1 && upoint.getUpperBound() > 1) { cr->set_source_rgba (1.0, 1.0, 1.0, 0.1); - cr->move_to (graphX_, getVal(upoint, 0) * -graphH_ + graphY_); + cr->move_to (graphX, getVal(upoint, 0) * -graphH + graphY); for (int i = 1; i < graphW - 2; ++i) { - cr->line_to (float(i) + graphX_, getVal(upoint, i) * -graphH_ + graphY_); + cr->line_to ((double)i + graphX, getVal(upoint, i) * -graphH + graphY); } for (int i = graphW - 3; i >= 0; --i) { - cr->line_to (float(i) + graphX_, getVal(lpoint, i) * -graphH_ + graphY_); + cr->line_to ((double)i + graphX, getVal(lpoint, i) * -graphH + graphY); } cr->fill (); @@ -346,34 +384,34 @@ void MyDiagonalCurve::draw (int handle) if (n > 1) { if (pipetteR > -1.f) { cr->set_source_rgba (1., 0., 0., 0.5); // WARNING: assuming that red values are stored in pipetteR, which might not be the case! - cr->move_to (double(graphX) + 1.5 + double(graphW - 3)*pipetteR, double(graphY) - 1.5); - cr->rel_line_to (0, double(-graphH + 3)); + cr->move_to (graphX + graphW*pipetteR, graphY + 1. * s); + cr->rel_line_to (0, -graphH - 1. * s); cr->stroke (); } if (pipetteG > -1.f) { cr->set_source_rgba (0., 1., 0., 0.5); // WARNING: assuming that green values are stored in pipetteG, which might not be the case! - cr->move_to (double(graphX) + 1.5 + double(graphW - 3)*pipetteG, double(graphY) - 1.5); - cr->rel_line_to (0, double(-graphH + 3)); + cr->move_to (graphX + graphW*pipetteG, graphY + 1. * s); + cr->rel_line_to (0, -graphH - 1. * s); cr->stroke (); } if (pipetteB > -1.f) { cr->set_source_rgba (0., 0., 1., 0.5); // WARNING: assuming that blue values are stored in pipetteB, which might not be the case! - cr->move_to (double(graphX) + 1.5 + double(graphW - 3)*pipetteB, double(graphY) - 1.5); - cr->rel_line_to (0, double(-graphH + 3)); + cr->move_to (graphX + graphW*pipetteB, graphY + 1. * s); + cr->rel_line_to (0, -graphH - 1. * s); cr->stroke (); } } if (pipetteVal > -1.f) { - cr->set_line_width (2.); + cr->set_line_width (2. * s); c = style->get_color (state); cr->set_source_rgb (c.get_red(), c.get_green(), c.get_blue()); - cr->move_to (double(graphX) + 1.5 + double(graphW - 3)*pipetteVal, double(graphY) - 1.5); - cr->rel_line_to (0, double(-graphH + 3)); + cr->move_to (graphX + graphW*pipetteVal, graphY + 1. * s); + cr->rel_line_to (0, -graphH - 1. * s); cr->stroke (); - cr->set_line_width (1.); + cr->set_line_width (1. * s); } } @@ -383,9 +421,9 @@ void MyDiagonalCurve::draw (int handle) if (curve.type == DCT_NURBS) { unsigned int nbPoints; std::valarray ch_ds (1); - ch_ds[0] = 2; + ch_ds[0] = 2 * s; cr->set_dash (ch_ds, 0); - cr->set_line_width (0.75); + cr->set_line_width (0.75 * s); cr->set_source_rgb (c.get_red(), c.get_green(), c.get_blue()); std::vector points = getPoints(); nbPoints = ((int)points.size() - 1) / 2; @@ -393,10 +431,10 @@ void MyDiagonalCurve::draw (int handle) for (unsigned int i = 1; i < nbPoints; i++) { int pos = i * 2 + 1; - double x1 = double(graphX) + 1.5 + double(graphW - 3) * points[pos - 2]; // project (curve.at(i), 0, 1, graphW); - double y1 = double(graphY) - 1.5 - double(graphH - 3) * points[pos - 1]; // project (curve.y.at(i)i], 0, 1, graphH); - double x2 = double(graphX) + 0.5 + double(graphW - 3) * points[pos]; // project (curve.at(i), 0, 1, graphW); - double y2 = double(graphY) - 1.5 - double(graphH - 3) * points[pos + 1]; // project (curve.y.at(i), 0, 1, graphH); + double x1 = graphX + graphW * points[pos - 2]; // project (curve.at(i), 0, 1, graphW); + double y1 = graphY - graphH * points[pos - 1]; // project (curve.y.at(i)i], 0, 1, graphH); + double x2 = graphX + graphW * points[pos ]; // project (curve.at(i), 0, 1, graphW); + double y2 = graphY - graphH * points[pos + 1]; // project (curve.y.at(i), 0, 1, graphH); // set the color of the line when the point is snapped to the cage if (curve.x.size() == nbPoints && snapToElmt >= 1000 && ((int(i) == (snapToElmt - 1000)) || (int(i) == (snapToElmt - 999)))) { @@ -411,49 +449,19 @@ void MyDiagonalCurve::draw (int handle) } cr->unset_dash (); - cr->set_line_width (1.0); + cr->set_line_width (1.0 * s); } // draw curve cr->set_source_rgb (c.get_red(), c.get_green(), c.get_blue()); - cr->move_to (graphX_, getVal(point, 0) * -graphH_ + graphY_); + cr->move_to (graphX, getVal(point, 0) * -graphH + graphY); - for (int i = 1; i < graphW - 2; ++i) { - cr->line_to (float(i) + graphX_, getVal(point, i) * -graphH_ + graphY_); + for (int i = 1; i < graphW; ++i) { + cr->line_to ((double)i + graphX, (double)getVal(point, i) * -graphH + graphY); } cr->stroke (); - // draw the left colored bar - if (leftBar) { - // first the background - int bWidth = CBAR_WIDTH; - BackBuffer *bb = this; - leftBar->setDrawRectangle(1, graphY - graphH + 1, bWidth - 2, graphH - 2); - leftBar->expose(*this, bb); - - // now the border - c = style->get_border_color(state); - cr->set_source_rgb (c.get_red(), c.get_green(), c.get_blue()); - cr->rectangle(0.5, graphY - graphH + 0.5, bWidth - 1, graphH - 1); - cr->stroke(); - } - - // draw the bottom colored bar - if (bottomBar) { - // first the background - int bWidth = CBAR_WIDTH; - BackBuffer *bb = this; - bottomBar->setDrawRectangle(graphX + 1, graphY + CBAR_MARGIN + 1, graphW - 2, bWidth - 2); - bottomBar->expose(*this, bb); - - // now the border - c = style->get_border_color (state); - cr->set_source_rgb (c.get_red(), c.get_green(), c.get_blue()); - cr->rectangle(graphX + 0.5, graphY + CBAR_MARGIN + 0.5, graphW - 1, bWidth - 1 ); - cr->stroke(); - } - // draw bullets if (curve.type != DCT_Parametric) { c = style->get_color (state); @@ -479,17 +487,17 @@ void MyDiagonalCurve::draw (int handle) } } - double x = double(graphX + 1) + double((graphW - 2) * curve.x.at(i)); // project (curve.x.at(i), 0, 1, graphW); - double y = double(graphY - 1) - double((graphH - 2) * curve.y.at(i)); // project (curve.y.at(i), 0, 1, graphH); + double x = graphX + graphW * curve.x.at(i); // project (curve.x.at(i), 0, 1, graphW); + double y = graphY - graphH * curve.y.at(i); // project (curve.y.at(i), 0, 1, graphH); - cr->arc (x, y, RADIUS + 0.5, 0, 2 * rtengine::RT_PI); + cr->arc (x, y, RADIUS * s + 0.5, 0, 2 * rtengine::RT_PI); cr->fill (); if (i == edited_point) { - cr->set_line_width(2.); - cr->arc (x, y, RADIUS + 3.5, 0, 2 * rtengine::RT_PI); + cr->set_line_width(2. * s); + cr->arc (x, y, (RADIUS + 2.) * s, 0, 2 * rtengine::RT_PI); cr->stroke(); - cr->set_line_width(1.); + cr->set_line_width(1. * s); } } @@ -519,13 +527,6 @@ bool MyDiagonalCurve::on_draw(const ::Cairo::RefPtr< Cairo::Context> &cr) return false; } -/*void MyDiagonalCurve::graphSizeRequest (Gtk::Requisition* req) { - req->width = getGraphMinSize(); - // The real height request should take care of the presence of the vertical - // scroll bar and its width - req->height = sized ? getGraphMinSize() : get_allocation().get_width(); -}*/ - bool MyDiagonalCurve::handleEvents (GdkEvent* event) { @@ -541,8 +542,10 @@ bool MyDiagonalCurve::handleEvents (GdkEvent* event) return false; } - double minDistanceX = double(MIN_DISTANCE) / double(graphW - 1); - double minDistanceY = double(MIN_DISTANCE) / double(graphH - 1); + double s = RTScalable::getScale(); + + double minDistanceX = double(MIN_DISTANCE) / graphW * s; + double minDistanceY = double(MIN_DISTANCE) / graphH * s; switch (event->type) { case GDK_BUTTON_PRESS: @@ -1020,11 +1023,12 @@ void MyDiagonalCurve::pipetteMouseOver (CurveEditor *ce, EditDataProvider *provi /* graphW and graphH are the size of the graph */ calcDimensions(); - if ((graphW < 0) || (graphH < 0)) { + if (graphW < 0. || graphH < 0.) { return; } - double minDistanceX = double(MIN_DISTANCE) / double(graphW - 1); + double s = (double)RTScalable::getScale(); + double minDistanceX = MIN_DISTANCE / graphW * s; if (curve.type == DCT_Linear || curve.type == DCT_Spline || curve.type == DCT_NURBS || curve.type == DCT_CatumullRom) { // get the pointer position @@ -1074,12 +1078,13 @@ bool MyDiagonalCurve::pipetteButton1Pressed(EditDataProvider *provider, int modi /* graphW and graphH are the size of the graph */ calcDimensions(); - double minDistanceX = double(MIN_DISTANCE) / double(graphW - 1); - - if ((graphW < 0) || (graphH < 0)) { + if (graphW < 0. || graphH < 0.) { return false; } + double s = (double)RTScalable::getScale(); + double minDistanceX = double(MIN_DISTANCE) * s / graphW; + snapToElmt = -100; if (curve.type != DCT_Parametric) { @@ -1150,13 +1155,13 @@ void MyDiagonalCurve::pipetteButton1Released(EditDataProvider *provider) /* graphW and graphH are the size of the graph */ calcDimensions(); - double minDistanceX = double(MIN_DISTANCE) / double(graphW - 1); - //double minDistanceY = double(MIN_DISTANCE) / double(graphH-1); - - if ((graphW < 0) || (graphH < 0)) { + if (graphW < 0. || graphH < 0.) { return; } + double s = (double)RTScalable::getScale(); + double minDistanceX = double(MIN_DISTANCE) * s / graphW; + snapToElmt = -100; if (curve.type != DCT_Parametric) { @@ -1284,8 +1289,8 @@ void MyDiagonalCurve::getCursorPositionFromCurve(float x) clampedX = x; clampedY = point.getVal01(x); - cursorX = int(clampedX * float(graphW - 3)) + graphX + 1.5; - cursorY = graphY - int(clampedY * float(graphH - 3)); + cursorX = (int)(clampedX * graphW + graphX); + cursorY = (int)(graphY - clampedY * graphH); } // x = cursor position found in the event @@ -1294,17 +1299,17 @@ void MyDiagonalCurve::getCursorPositionFromCurve(int x) // the graph is refreshed only if a new point is created (snapped to a pixel) cursorX = x - graphX; - clampedX = (float(cursorX) - 1.5) / float(graphW - 3); + clampedX = (double)cursorX / graphW; clampedY = point.getVal01(clampedX); - cursorY = graphY - int(float(1. - clampedY) * float(graphH - 3)); + cursorY = (int)(graphY - (1. - clampedY) * graphH); } void MyDiagonalCurve::getCursorPosition(Gdk::EventType evType, bool isHint, int evX, int evY, Gdk::ModifierType modifierKey) { int tx, ty; int prevCursorX, prevCursorY; - double incrementX = 1. / double(graphW); - double incrementY = 1. / double(graphH); + double incrementX = 1. / graphW; + double incrementY = 1. / graphH; // getting the cursor position switch (evType) { diff --git a/rtgui/myflatcurve.cc b/rtgui/myflatcurve.cc index dd2478da9..995528e2a 100644 --- a/rtgui/myflatcurve.cc +++ b/rtgui/myflatcurve.cc @@ -22,6 +22,7 @@ #include MyFlatCurve::MyFlatCurve () : + MyCurve(), clampedX(0.0), clampedY(0.0), deltaX(0.0), @@ -43,13 +44,8 @@ MyFlatCurve::MyFlatCurve () : locallabRef(0.0) { - graphW = get_allocation().get_width() - RADIUS * 2; - graphH = get_allocation().get_height() - RADIUS * 2; - prevGraphW = graphW; - prevGraphH = graphH; lit_point = -1; closest_point = 0; - buttonPressed = false; editedHandle = FCT_EditedHandle_None; area = FCT_Area_None; tanHandlesDisplayed = false; @@ -62,7 +58,7 @@ MyFlatCurve::MyFlatCurve () : signal_event().connect( sigc::mem_fun(*this, &MyFlatCurve::handleEvents) ); - // By default, we create a curve with 8 control points + // By default, we create a curve with 6 control points curve.type = FCT_MinMaxCPoints; defaultCurve(); @@ -120,8 +116,7 @@ void MyFlatCurve::interpolate () prevGraphW = graphW; prevGraphH = graphH; - int nbPoints = graphW - 2; - point(nbPoints); + point((unsigned int)graphW); get_LUT (point); upoint.reset (); lpoint.reset (); @@ -139,16 +134,18 @@ void MyFlatCurve::draw () return; } - // re-calculate curve if dimensions changed - int currPointSize = point.getUpperBound(); + double s = (double)RTScalable::getScale(); - if (curveIsDirty || /*prevGraphW != graphW || prevGraphH != graphH ||*/ (currPointSize == GRAPH_SIZE && (graphW - 3 > GRAPH_SIZE)) || (currPointSize > GRAPH_SIZE && (graphW - 2 <= GRAPH_SIZE || graphW - 3 != currPointSize))) { + // re-calculate curve if dimensions changed + int currLUTSize = point.getUpperBound(); + + if (curveIsDirty + || (currLUTSize == (GRAPH_SIZE * s) && (graphW > (GRAPH_SIZE * s))) + || (currLUTSize > (GRAPH_SIZE * s) && (graphW <= (GRAPH_SIZE * s) || graphW != currLUTSize)) ) + { interpolate (); } - double innerW = double(graphW - 2); - double innerH = double(graphH - 2); - Gtk::StateFlags state = !is_sensitive() ? Gtk::STATE_FLAG_INSENSITIVE : Gtk::STATE_FLAG_NORMAL; Glib::RefPtr style = get_style_context(); @@ -165,6 +162,7 @@ void MyFlatCurve::draw () Gdk::RGBA c; + cr->set_line_width (1.0 * s); // Draw Locallab reference value in the background if (locallabRef > 0.0) { cr->set_line_width(1.0); @@ -178,59 +176,53 @@ void MyFlatCurve::draw () cr->fill(); cr->stroke(); } - cr->set_line_width (1.0); - - // draw f(x)=0.5 line - c = style->get_border_color(state); - cr->set_source_rgb (c.get_red(), c.get_green(), c.get_blue()); - std::valarray ds (1); - ds[0] = 4; - cr->set_dash (ds, 0); - cr->move_to (double(graphX) + 1.5, double(graphY - graphH / 2) - 0.5); - cr->rel_line_to (double(graphW - 3), 0.); - cr->stroke (); - - cr->unset_dash (); - - cr->set_antialias (Cairo::ANTIALIAS_SUBPIXEL); - - cr->set_line_width (1.0); // draw the left colored bar if (leftBar) { // first the background - int bWidth = CBAR_WIDTH; BackBuffer *bb = this; - leftBar->setDrawRectangle(1, graphY - graphH + 1, bWidth - 2, graphH - 2); + leftBar->setDrawRectangle(1. * s, graphY - graphH - 0.5, CBAR_WIDTH * s, graphH); leftBar->expose(*this, bb); // now the border c = style->get_border_color(state); cr->set_source_rgb (c.get_red(), c.get_green(), c.get_blue()); - cr->rectangle(0.5, graphY - graphH + 0.5, bWidth - 1, graphH - 1); + cr->rectangle(0.5 * s, graphY - graphH - 0.5 - 0.5 * s, (CBAR_WIDTH + 1) * s, (double)graphH + 1. + 1. * s); cr->stroke(); } // draw the bottom colored bar if (bottomBar) { // first the background - int bWidth = CBAR_WIDTH; BackBuffer *bb = this; - bottomBar->setDrawRectangle(graphX + 1, graphY + CBAR_MARGIN + 1, graphW - 2, bWidth - 2); + bottomBar->setDrawRectangle(graphX - 0.5, graphY + (RADIUS + CBAR_MARGIN + 1.) * s, graphW + 1., CBAR_WIDTH * s); bottomBar->expose(*this, bb); // now the border c = style->get_border_color(state); cr->set_source_rgb (c.get_red(), c.get_green(), c.get_blue()); - cr->rectangle(graphX + 0.5, graphY + CBAR_MARGIN + 0.5, graphW - 1, bWidth - 1 ); + cr->rectangle(graphX - 0.5 - 0.5 * s, graphY + (RADIUS + CBAR_MARGIN + 0.5) * s, graphW + 1. + 0.5 * s, (CBAR_WIDTH + 1.) * s); cr->stroke(); } + // draw f(x)=0.5 line + c = style->get_border_color(state); + cr->set_source_rgb (c.get_red(), c.get_green(), c.get_blue()); + std::valarray ds (1); + ds[0] = 4 * s; + cr->set_dash (ds, 0); + cr->move_to (graphX - 1. * s, graphY - graphH / 2.); + cr->rel_line_to (graphW + 2 * s, 0.); + cr->stroke (); + + cr->unset_dash (); + cr->set_antialias (Cairo::ANTIALIAS_SUBPIXEL); + cr->set_line_width (1.0 * s); cr->set_line_cap(Cairo::LINE_CAP_BUTT); // draw the pipette values if (pipetteR > -1.f || pipetteG > -1.f || pipetteB > -1.f) { - cr->set_line_width (0.75); + cr->set_line_width (0.75 * s); cr->set_source_rgb (c.get_red(), c.get_green(), c.get_blue()); int n = 0; @@ -249,34 +241,34 @@ void MyFlatCurve::draw () if (n > 1) { if (pipetteR > -1.f) { cr->set_source_rgba (1., 0., 0., 0.5); // WARNING: assuming that red values are stored in pipetteR, which might not be the case! - cr->move_to (double(graphX) + 1.5 + double(graphW - 3)*pipetteR, double(graphY) - 1.5); - cr->rel_line_to (0, double(-graphH + 3)); + cr->move_to (graphX + graphW*pipetteR, graphY + 1. * s); + cr->rel_line_to (0, -graphH - 1. * s); cr->stroke (); } if (pipetteG > -1.f) { cr->set_source_rgba (0., 1., 0., 0.5); // WARNING: assuming that green values are stored in pipetteG, which might not be the case! - cr->move_to (double(graphX) + 1.5 + double(graphW - 3)*pipetteG, double(graphY) - 1.5); - cr->rel_line_to (0, double(-graphH + 3)); + cr->move_to (graphX + graphW*pipetteG, graphY + 1. * s); + cr->rel_line_to (0, -graphH - 1. * s); cr->stroke (); } if (pipetteB > -1.f) { cr->set_source_rgba (0., 0., 1., 0.5); // WARNING: assuming that blue values are stored in pipetteB, which might not be the case! - cr->move_to (double(graphX) + 1.5 + double(graphW - 3)*pipetteB, double(graphY) - 1.5); - cr->rel_line_to (0, double(-graphH + 3)); + cr->move_to (graphX + graphW*pipetteB, graphY + 1. * s); + cr->rel_line_to (0, -graphH - 1. * s); cr->stroke (); } } if (pipetteVal > -1.f) { - cr->set_line_width (2.); + cr->set_line_width (2. * s); c = style->get_color (state); cr->set_source_rgb (c.get_red(), c.get_green(), c.get_blue()); - cr->move_to (double(graphX) + 1.5 + double(graphW - 3)*pipetteVal, double(graphY) - 1.5); - cr->rel_line_to (0, double(-graphH + 3)); + cr->move_to (graphX + graphW*pipetteVal, graphY + 1. * s); + cr->rel_line_to (0, -graphH - 1. * s); cr->stroke (); - cr->set_line_width (1.); + cr->set_line_width (1. * s); } } @@ -287,7 +279,7 @@ void MyFlatCurve::draw () for (int i = 0; i < (int)curve.x.size(); ++i) { if (curve.x.at(i) != -1.) { - int coloredLineWidth = min( max(75, graphW) / 75, 8 ); + double coloredLineWidth = rtengine::min( rtengine::max(75. * s, graphW) / (75. * s), 8. * s); cr->set_line_width (coloredLineWidth); colorProvider->colorForValue(curve.x.at(i), curve.y.at(i), CCET_VERTICAL_BAR, colorCallerId, this); @@ -297,8 +289,8 @@ void MyFlatCurve::draw () cr->set_line_width (2 * coloredLineWidth); } - cr->move_to (double(graphX) + 1 + innerW * curve.x.at(i), double(graphY - 1)); - cr->rel_line_to (0., -innerH); + cr->move_to (graphX + graphW * curve.x.at(i), graphY + 0.5 + 0.5 * s ); + cr->rel_line_to (0., -graphH - 1. - s); cr->stroke (); cr->set_line_width (coloredLineWidth); @@ -324,39 +316,39 @@ void MyFlatCurve::draw () colorProvider->colorForValue(curve.x.at(i), curve.y.at(i), CCET_HORIZONTAL_BAR, colorCallerId, this); cr->set_source_rgb (ccRed, ccGreen, ccBlue); - cr->move_to (double(graphX + 1) , double(graphY - 1) - innerH * curve.y.at(point)); - cr->rel_line_to (innerW, 0.); + cr->move_to (graphX - 0.5 - 0.5 * s , graphY - graphH * curve.y.at(point)); + cr->rel_line_to (graphW + 1. + s, 0.); cr->stroke (); } } } // endif - cr->set_line_width (1.0); + cr->set_line_width (1.0 * s); } else { cr->set_source_rgb (0.5, 0.0, 0.0); if (edited_point > -1 || ((lit_point > -1) && ((area & (FCT_Area_H | FCT_Area_V | FCT_Area_Point)) || editedHandle == FCT_EditedHandle_CPointUD)) ) { // draw the lit_point's vertical line if (edited_point > -1 || (editedHandle & (FCT_EditedHandle_CPointUD | FCT_EditedHandle_CPoint | FCT_EditedHandle_CPointY))) { - cr->set_line_width (2.0); + cr->set_line_width (2.0 * s); } int point = edited_point > -1 ? edited_point : lit_point; - cr->move_to (double(graphX) + 1 + innerW * curve.x.at(point), double(graphY - 1)); - cr->rel_line_to (0., -innerH); + cr->move_to (graphX + graphW * curve.x.at(point), graphY + 0.5 + 0.5 * s ); + cr->rel_line_to (0., -graphH - 1. - s); cr->stroke (); - cr->set_line_width (1.0); + cr->set_line_width (1.0 * s); // draw the lit_point's horizontal line if (editedHandle & (FCT_EditedHandle_CPointUD | FCT_EditedHandle_CPoint | FCT_EditedHandle_CPointY)) { - cr->set_line_width (2.0); + cr->set_line_width (2.0 * s); } - cr->move_to (double(graphX + 1) , double(graphY - 1) - innerH * curve.y.at(point)); - cr->rel_line_to (innerW, 0.); + cr->move_to (graphX - 0.5 - 0.5 * s , graphY - graphH * curve.y.at(point)); + cr->rel_line_to (graphW + 1. + s, 0.); cr->stroke (); - cr->set_line_width (1.0); + cr->set_line_width (1.0 * s); } } @@ -365,14 +357,14 @@ void MyFlatCurve::draw () // draw the graph's borders: c = style->get_border_color(state); cr->set_source_rgb (c.get_red(), c.get_green(), c.get_blue()); - cr->rectangle(double(graphX) + 0.5, double(graphY) - 0.5, double(graphW - 1), double(-graphH + 1)); + cr->rectangle(graphX - 0.5 - 0.5 * s, graphY + 0.5 + 0.5 * s, graphW + 1. + 1. * s, -(graphH + 1. + 1. * s)); cr->stroke (); - double lineMinLength = 1. / graphW * SQUARE * 0.9; + double lineMinLength = 1. / graphW * (double)(SQUARE) * 0.9 * s; if (tanHandlesDisplayed && lit_point != -1 && getHandles(lit_point) && curve.x.at(lit_point) != -1.) { - double x = double(graphX + 1) + innerW * curve.x.at(lit_point); - double y = double(graphY) - innerH * curve.y.at(lit_point); + double x = graphX + graphW * curve.x.at(lit_point); + double y = graphY - graphH * curve.y.at(lit_point); double x2; double square; bool crossingTheFrame; @@ -391,7 +383,7 @@ void MyFlatCurve::draw () crossingTheFrame = true; } - x2 = double(graphX + 1) + innerW * leftTanX; + x2 = graphX + graphW * leftTanX; if (curve.x.at(lit_point) - leftTanX > lineMinLength || crossingTheFrame) { // The left tangential vector reappear on the right side @@ -399,9 +391,9 @@ void MyFlatCurve::draw () cr->move_to (x, y); if (crossingTheFrame) { - cr->line_to (double(graphX + 1), y); + cr->line_to (graphX - 0.5 - 0.5 * s, y); cr->stroke (); - cr->move_to (double(graphX) + innerW, y); + cr->move_to (graphX + graphW + 0.5 + 0.5 * s, y); } cr->line_to (x2, y); @@ -409,7 +401,7 @@ void MyFlatCurve::draw () } // draw tangential knot - square = area == FCT_Area_LeftTan ? SQUARE * 2. : SQUARE; + square = (area == FCT_Area_LeftTan ? SQUARE * 2. : SQUARE) * s; cr->rectangle(x2 - square, y - square, 2.*square, 2.*square); cr->fill(); @@ -427,7 +419,7 @@ void MyFlatCurve::draw () crossingTheFrame = true; } - x2 = double(graphX + 1) + innerW * rightTanX; + x2 = graphX + graphW * rightTanX; if (rightTanX - curve.x.at(lit_point) > lineMinLength || crossingTheFrame) { // The left tangential vector reappear on the right side @@ -435,9 +427,9 @@ void MyFlatCurve::draw () cr->move_to (x, y); if (crossingTheFrame) { - cr->line_to (double(graphX) + innerW, y); + cr->line_to (graphX + graphW + 0.5 + 0.5 * s, y); cr->stroke (); - cr->move_to (double(graphX + 1), y); + cr->move_to (graphX - 0.5 - 0.5 * s, y); } cr->line_to (x2, y); @@ -445,7 +437,7 @@ void MyFlatCurve::draw () } // draw tangential knot - square = area == FCT_Area_RightTan ? SQUARE * 2. : SQUARE; + square = (area == FCT_Area_RightTan ? SQUARE * 2. : SQUARE) * s; cr->rectangle(x2 - square, y - square, 2.*square, 2.*square); cr->fill(); } @@ -453,19 +445,15 @@ void MyFlatCurve::draw () // draw curve c = style->get_color(state); cr->set_source_rgb (c.get_red(), c.get_green(), c.get_blue()); - float graphH_ = float(graphH - 3); - float graphX_ = float(graphX) + 1.5; - float graphY_ = float(graphY) - 1.5; - cr->move_to (graphX_, getVal(point, 0) * -graphH_ + graphY_); + cr->move_to (graphX, getVal(point, 0) * -graphH + graphY); - for (int i = 1; i < graphW - 2; ++i) { - cr->line_to (float(i) + graphX_, getVal(point, i) * -graphH_ + graphY_); + for (int i = 1; i < graphW; ++i) { + cr->line_to ((double)i + graphX, (double)getVal(point, i) * -graphH + graphY); } cr->stroke (); // draw bullets - //if (curve.type!=FCT_Parametric) for (int i = 0; i < (int)curve.x.size(); ++i) { if (curve.x.at(i) != -1.) { if (i == edited_point) { @@ -485,18 +473,18 @@ void MyFlatCurve::draw () cr->set_source_rgb (c.get_red(), c.get_green(), c.get_blue()); } - double x = double(graphX + 1) + innerW * curve.x.at(i); // project (curve.x.at(i), 0, 1, graphW); - double y = double(graphY - 1) - innerH * curve.y.at(i); // project (curve.y.at(i), 0, 1, graphH); + double x = graphX + graphW * curve.x.at(i); // project (curve.x.at(i), 0, 1, graphW); + double y = graphY - graphH * curve.y.at(i); // project (curve.y.at(i), 0, 1, graphH); - cr->arc (x, y, (double)RADIUS, 0, 2 * rtengine::RT_PI); + cr->arc (x, y, RADIUS * s + 0.5, 0, 2 * rtengine::RT_PI); cr->fill (); if (i == edited_point) { cr->set_source_rgb (1.0, 0.0, 0.0); - cr->set_line_width(2.); - cr->arc (x, y, RADIUS + 3.5, 0, 2 * rtengine::RT_PI); + cr->set_line_width(2. * s); + cr->arc (x, y, (RADIUS + 2.) * s, 0, 2 * rtengine::RT_PI); cr->stroke(); - cr->set_line_width(1.); + cr->set_line_width(1. * s); } } @@ -513,20 +501,20 @@ void MyFlatCurve::draw () // yellow cr->set_source_rgb (1.0, 1.0, 0.0); - cr->rectangle(double(graphX + 1) + innerW * (leftTanHandle.centerX - halfSquareSizeX), - double(graphY - 1) - innerH * (leftTanHandle.centerY + halfSquareSizeY), - innerW * minDistanceX, - innerW * minDistanceY); + cr->rectangle(graphX + graphW * (leftTanHandle.centerX - halfSquareSizeX), + graphY - graphH * (leftTanHandle.centerY + halfSquareSizeY), + graphW * minDistanceX, + graphW * minDistanceY); cr->fill(); // RIGHT handle // blue cr->set_source_rgb (0.0, 0.0, 1.0); - cr->rectangle(double(graphX + 1) + innerW * (rightTanHandle.centerX - halfSquareSizeX), - double(graphY - 1) - innerH * (rightTanHandle.centerY + halfSquareSizeY), - innerW * minDistanceX, - innerW * minDistanceY); + cr->rectangle(graphX + graphW * (rightTanHandle.centerX - halfSquareSizeX), + graphY - graphH * (rightTanHandle.centerY + halfSquareSizeY), + graphW * minDistanceX, + graphW * minDistanceY); cr->fill(); } @@ -540,11 +528,13 @@ bool MyFlatCurve::on_draw(const ::Cairo::RefPtr< Cairo::Context> &cr) allocation.set_x(0); allocation.set_y(0); + int s = RTScalable::getScale(); + // setDrawRectangle will allocate the backbuffer Surface if (setDrawRectangle(Cairo::FORMAT_ARGB32, allocation)) { setDirty(true); - if (prevGraphW > GRAPH_SIZE || graphW > GRAPH_SIZE) { + if (prevGraphW > (GRAPH_SIZE * s) || graphW > (GRAPH_SIZE * s)) { curveIsDirty = true; } } @@ -622,8 +612,10 @@ bool MyFlatCurve::handleEvents (GdkEvent* event) return false; } - minDistanceX = double(MIN_DISTANCE) / double(graphW - 1); - minDistanceY = double(MIN_DISTANCE) / double(graphH - 1); + double s = RTScalable::getScale(); + + minDistanceX = double(MIN_DISTANCE) / graphW * s; + minDistanceY = double(MIN_DISTANCE) / graphH * s; switch (event->type) { @@ -1324,11 +1316,13 @@ bool MyFlatCurve::pipetteButton1Pressed(EditDataProvider *provider, int modifier // hide the tangent handles tanHandlesDisplayed = false; + int s = RTScalable::getScale(); + // Action on BUTTON_PRESS and no edited point switch (area) { case (FCT_Area_Insertion): { - rtengine::FlatCurve rtCurve(getPoints(), GRAPH_SIZE); + rtengine::FlatCurve rtCurve(getPoints(), true, GRAPH_SIZE * s); std::vector::iterator itx, ity, itlt, itrt; int num = (int)curve.x.size(); diff --git a/rtgui/myicon.rc b/rtgui/myicon.rc index 88f5f79fa..fa8fa8c0b 100644 --- a/rtgui/myicon.rc +++ b/rtgui/myicon.rc @@ -1 +1 @@ -1 ICON "../rtdata/images/non-themed/rawtherapee.ico" +1 ICON "../rtdata/images/rawtherapee.ico" diff --git a/rtgui/preferences.cc b/rtgui/preferences.cc index 036388c59..e799983bf 100644 --- a/rtgui/preferences.cc +++ b/rtgui/preferences.cc @@ -22,7 +22,6 @@ #include "splash.h" #include "cachemanager.h" #include "addsetids.h" -#include "../rtengine/icons.h" #include "../rtengine/dfmanager.h" #include "../rtengine/ffmanager.h" #include @@ -901,7 +900,7 @@ Gtk::Widget* Preferences::getGeneralPanel() Gtk::Label* flayoutlab = Gtk::manage(new Gtk::Label(M("PREFERENCES_EDITORLAYOUT") + ":")); setExpandAlignProperties(flayoutlab, false, false, Gtk::ALIGN_START, Gtk::ALIGN_BASELINE); - editorLayout = Gtk::manage(new Gtk::ComboBoxText()); + editorLayout = Gtk::manage (new MyComboBoxText ()); setExpandAlignProperties(editorLayout, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_BASELINE); editorLayout->append(M("PREFERENCES_SINGLETAB")); editorLayout->append(M("PREFERENCES_SINGLETABVERTAB")); @@ -2119,7 +2118,6 @@ void Preferences::cancelPressed() { // set the initial theme back if (themeFNames.at (themeCBT->get_active_row_number ()).longFName != options.theme) { - rtengine::setPaths(); RTImage::updateImages(); switchThemeTo(options.theme); } @@ -2177,7 +2175,6 @@ void Preferences::themeChanged() { moptions.theme = themeFNames.at (themeCBT->get_active_row_number ()).longFName; - rtengine::setPaths(); RTImage::updateImages(); switchThemeTo(moptions.theme); } @@ -2353,11 +2350,11 @@ void Preferences::switchFontTo(const Glib::ustring &newFontFamily, const int new try { //GTK318 -#if GTK_MAJOR_VERSION == 3 && GTK_MINOR_VERSION < 20 - fontcss->load_from_data(Glib::ustring::compose("* { font-family: %1; font-size: %2px }", newFontFamily, newFontSize)); -#else - fontcss->load_from_data(Glib::ustring::compose("* { font-family: %1; font-size: %2pt }", newFontFamily, newFontSize)); -#endif +//#if GTK_MAJOR_VERSION == 3 && GTK_MINOR_VERSION < 20 +// fontcss->load_from_data (Glib::ustring::compose ("* { font-family: %1; font-size: %2px }", newFontFamily, newFontSize * RTScalable::getScale())); +//#else + fontcss->load_from_data (Glib::ustring::compose ("* { font-family: %1; font-size: %2pt }", newFontFamily, newFontSize * RTScalable::getScale())); +//#endif //GTK318 } catch (Glib::Error &err) { printf("Error: \"%s\"\n", err.what().c_str()); diff --git a/rtgui/previewwindow.cc b/rtgui/previewwindow.cc index c999ff663..7688c0470 100644 --- a/rtgui/previewwindow.cc +++ b/rtgui/previewwindow.cc @@ -154,6 +154,7 @@ bool PreviewWindow::on_draw(const ::Cairo::RefPtr< Cairo::Context> &cr) int x, y, w, h; getObservedFrameArea (x, y, w, h); if (x>imgX || y>imgY || w < imgW || h < imgH) { + double s = RTScalable::getScale(); double rectX = x + 0.5; double rectY = y + 0.5; double rectW = std::min(w, (int)(imgW - (x - imgX) - 1)); @@ -161,9 +162,9 @@ bool PreviewWindow::on_draw(const ::Cairo::RefPtr< Cairo::Context> &cr) // draw a black "shadow" line cr->set_source_rgba (0.0, 0.0, 0.0, 0.65); - cr->set_line_width (1.); + cr->set_line_width (1. * s); cr->set_line_join(Cairo::LINE_JOIN_MITER); - cr->rectangle (rectX + 1., rectY + 1, rectW, rectH); + cr->rectangle (rectX + 1. * s, rectY + 1. * s, rectW - 2. * s, rectH - 2. * s); cr->stroke (); // draw a "frame" line. Color of frame line can be set in preferences @@ -304,14 +305,14 @@ Gtk::SizeRequestMode PreviewWindow::get_request_mode_vfunc () const void PreviewWindow::get_preferred_height_vfunc (int &minimum_height, int &natural_height) const { - minimum_height= 50; - natural_height = 100; + minimum_height= 50 * RTScalable::getScale(); + natural_height = 100 * RTScalable::getScale(); } void PreviewWindow::get_preferred_width_vfunc (int &minimum_width, int &natural_width) const { - minimum_width = 80; - natural_width = 120; + minimum_width = 80 * RTScalable::getScale(); + natural_width = 120 * RTScalable::getScale(); } void PreviewWindow::get_preferred_height_for_width_vfunc (int width, int &minimum_height, int &natural_height) const diff --git a/rtgui/rtimage.cc b/rtgui/rtimage.cc index b24158b00..cc734456e 100644 --- a/rtgui/rtimage.cc +++ b/rtgui/rtimage.cc @@ -2,7 +2,7 @@ * This file is part of RawTherapee. * * Copyright (c) 2004-2010 Gabor Horvath - * Copyright (c) 2011 Jean-Christophe FRISCH + * Copyright (c) 2018 Jean-Christophe FRISCH * * RawTherapee is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -23,20 +23,78 @@ #include #include "options.h" -#include "../rtengine/icons.h" namespace { -std::map> pixbufCache; +std::map > pixbufCache; +std::map > surfaceCache; } +double RTImage::dpiBack = 0.; +int RTImage::scaleBack = 0; + +RTImage::RTImage () {} + +RTImage::RTImage (RTImage &other) +{ + dpiBack = other.dpiBack; + scaleBack = other.scaleBack; + pixbuf = other.pixbuf; + surface = other.surface; + if (pixbuf) { + set(pixbuf); + } else if (surface) { + set(surface); + } +} + RTImage::RTImage (const Glib::ustring& fileName, const Glib::ustring& rtlFileName) : Gtk::Image() +{ + setImage (fileName, rtlFileName); +} + +RTImage::RTImage (Glib::RefPtr &pbuf) +{ + if (surface) { + surface.clear(); + } + if (pbuf) { + set(pbuf); + this->pixbuf = pbuf; + } +} + +RTImage::RTImage (Cairo::RefPtr &surf) +{ + if (pixbuf) { + pixbuf.clear(); + } + if (surf) { + set(surf); + surface = surf; + } +} + +RTImage::RTImage (Glib::RefPtr &other) +{ + if (other) { + if (other->get_surface()) { + surface = other->get_surface(); + set(surface); + } else { + pixbuf = other->get_pixbuf(); + set(pixbuf); + } + } +} + +void RTImage::setImage (const Glib::ustring& fileName, const Glib::ustring& rtlFileName) { Glib::ustring imageName; - if (!rtlFileName.empty () && get_direction () == Gtk::TEXT_DIR_RTL) { + if (!rtlFileName.empty() && getDirection() == Gtk::TEXT_DIR_RTL) { imageName = rtlFileName; } else { imageName = fileName; @@ -45,73 +103,111 @@ RTImage::RTImage (const Glib::ustring& fileName, const Glib::ustring& rtlFileNam changeImage (imageName); } +/* + * On windows, if scale = 2, the dpi is non significant, i.e. should be considered = 192 + */ +void RTImage::setDPInScale (const double newDPI, const int newScale) +{ + if (scaleBack != newScale || (scaleBack == 1 && dpiBack != newDPI)) { + RTScalable::setDPInScale(newDPI, newScale); + dpiBack = getDPI(); + scaleBack = getScale(); + updateImages(); + } +} + void RTImage::changeImage (const Glib::ustring& imageName) { clear (); - auto iterator = pixbufCache.find (imageName); - - if (iterator == pixbufCache.end ()) { - const auto imagePath = rtengine::findIconAbsolutePath (imageName); - const auto pixbuf = Gdk::Pixbuf::create_from_file (imagePath); - - iterator = pixbufCache.emplace (imageName, pixbuf).first; + if (pixbuf) { + auto iterator = pixbufCache.find (imageName); + assert(iterator != pixbufCache.end ()); + pixbuf = iterator->second; + set(iterator->second); + } else { // if no Pixbuf is set, we update or create a Cairo::ImageSurface + auto iterator = surfaceCache.find (imageName); + if (iterator == surfaceCache.end ()) { + auto surf = createImgSurfFromFile(imageName); + iterator = surfaceCache.emplace (imageName, surf).first; + } + surface = iterator->second; + set(iterator->second); } +} - set(iterator->second); +Cairo::RefPtr RTImage::get_surface() +{ + return surface; +} + +int RTImage::get_width() +{ + if (surface) { + return surface->get_width(); + } + if (pixbuf) { + return pixbuf->get_width(); + } + return -1; +} + +int RTImage::get_height() +{ + if (surface) { + return surface->get_height(); + } + if (pixbuf) { + return pixbuf->get_height(); + } + return -1; +} + +void RTImage::init() +{ + dpiBack = RTScalable::getDPI(); + scaleBack = RTScalable::getScale(); } void RTImage::updateImages() { for (auto& entry : pixbufCache) { - const auto imagePath = rtengine::findIconAbsolutePath (entry.first); - entry.second = Gdk::Pixbuf::create_from_file (imagePath); + entry.second = createPixbufFromFile(entry.first); + } + for (auto& entry : surfaceCache) { + entry.second = createImgSurfFromFile(entry.first); } } -Glib::RefPtr RTImage::createFromFile (const Glib::ustring& fileName) +Glib::RefPtr RTImage::createPixbufFromFile (const Glib::ustring& fileName) { - Glib::RefPtr pixbuf; - - try { - - const auto filePath = rtengine::findIconAbsolutePath (fileName); - - if (!filePath.empty ()) { - pixbuf = Gdk::Pixbuf::create_from_file (filePath); - } - - } catch (const Glib::Exception& exception) { - - if (options.rtSettings.verbose) { - std::cerr << "Failed to load image \"" << fileName << "\": " << exception.what() << std::endl; - } - - } - + Cairo::RefPtr imgSurf = createImgSurfFromFile(fileName); + Glib::RefPtr pixbuf = Gdk::Pixbuf::create(imgSurf, 0, 0, imgSurf->get_width(), imgSurf->get_height()); return pixbuf; } -Cairo::RefPtr RTImage::createFromPng (const Glib::ustring& fileName) +Cairo::RefPtr RTImage::createImgSurfFromFile (const Glib::ustring& fileName) { - Cairo::RefPtr surface; + Cairo::RefPtr surf; try { + surf = loadImage(fileName, getTweakedDPI()); - const auto filePath = rtengine::findIconAbsolutePath (fileName); - - if (!filePath.empty()) { - surface = Cairo::ImageSurface::create_from_png (Glib::locale_from_utf8 (filePath)); + // HOMBRE: As of now, GDK_SCALE is forced to 1, so setting the Cairo::ImageSurface scale is not required + /* + double x=0., y=0.; + cairo_surface_get_device_scale(surf->cobj(), &x, &y); + if (getScale() == 2) { + cairo_surface_set_device_scale(surf->cobj(), 0.5, 0.5); + cairo_surface_get_device_scale(surf->cobj(), &x, &y); + surf->flush(); } - + */ } catch (const Glib::Exception& exception) { - if (options.rtSettings.verbose) { - std::cerr << "Failed to load PNG \"" << fileName << "\": " << exception.what() << std::endl; + std::cerr << "Failed to load image \"" << fileName << "\": " << exception.what() << std::endl; } } - return surface; + return surf; } - - diff --git a/rtgui/rtimage.h b/rtgui/rtimage.h index 0286d990b..481772ad6 100644 --- a/rtgui/rtimage.h +++ b/rtgui/rtimage.h @@ -2,6 +2,7 @@ * This file is part of RawTherapee. * * Copyright (c) 2004-2010 Gabor Horvath + * Copyright (c) 2018 Jean-Christophe FRISCH * * RawTherapee is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -16,26 +17,46 @@ * You should have received a copy of the GNU General Public License * along with RawTherapee. If not, see . */ -#ifndef _RTIMAGE_ -#define _RTIMAGE_ +#pragma once #include - -class Options; +#include "rtscalable.h" /** * @brief A derived class of Gtk::Image in order to handle theme-related icon sets. */ -class RTImage : public Gtk::Image +class RTImage : public Gtk::Image, public RTScalable { + static double dpiBack; // used to keep track of master dpi change + static int scaleBack; // used to keep track of master scale change + //bool on_configure_event(GdkEventConfigure* configure_event); + +protected: + Cairo::RefPtr surface; + Glib::RefPtr pixbuf; + public: + RTImage (); + RTImage (RTImage &other); + RTImage (Glib::RefPtr &pixbuf); + RTImage (Cairo::RefPtr &surf); + RTImage(Cairo::RefPtr other); + RTImage (Glib::RefPtr &other); RTImage (const Glib::ustring& fileName, const Glib::ustring& rtlFileName = Glib::ustring()); + void setImage (const Glib::ustring& fileName, const Glib::ustring& rtlFileName = Glib::ustring()); void changeImage (const Glib::ustring& imageName); + Cairo::RefPtr get_surface(); + int get_width(); + int get_height(); + + + static void init(); static void updateImages (); + static void setDPInScale (const double newDPI, const int newScale); + static void setScale (const int newScale); + + static Glib::RefPtr createPixbufFromFile (const Glib::ustring& fileName); + static Cairo::RefPtr createImgSurfFromFile (const Glib::ustring& fileName); - static Glib::RefPtr createFromFile (const Glib::ustring& fileName); - static Cairo::RefPtr createFromPng (const Glib::ustring& fileName); }; - -#endif diff --git a/rtgui/rtscalable.cc b/rtgui/rtscalable.cc new file mode 100644 index 000000000..7aa3c82c8 --- /dev/null +++ b/rtgui/rtscalable.cc @@ -0,0 +1,246 @@ +/* + * This file is part of RawTherapee. + * + * Copyright (c) 2018 Jean-Christophe FRISCH + * + * RawTherapee 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. + * + * RawTherapee 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 RawTherapee. If not, see . + */ + +#include "rtscalable.h" +#include +#include +#include +#include +#include +#include "options.h" + +double RTScalable::dpi = 0.; +int RTScalable::scale = 0; + +extern Glib::ustring argv0; +extern Options options; +extern unsigned char initialGdkScale; +extern float fontScale; +Gtk::TextDirection RTScalable::direction = Gtk::TextDirection::TEXT_DIR_NONE; + +void RTScalable::setDPInScale (const double newDPI, const int newScale) +{ + if (scale != newScale || (scale == 1 && dpi != newDPI)) { + // reload all images + scale = newScale; + // HOMBRE: On windows, if scale = 2, the dpi is non significant, i.e. should be considered = 192 ; don't know for linux/macos + dpi = newDPI; + if (scale == 1) { + if (dpi >= baseHiDPI) { + scale = 2; + } + } + else if (scale == 2) { + if (dpi < baseHiDPI) { + dpi *= 2.; + } + } + } +} + +double RTScalable::getDPI () +{ + return dpi; +} + +double RTScalable::getTweakedDPI () +{ + return dpi * fontScale; +} + +int RTScalable::getScale () +{ + return scale; +} + +Gtk::TextDirection RTScalable::getDirection() +{ + return direction; +} + +void RTScalable::init(Gtk::Window *window) +{ + dpi = 0.; + scale = 0; + + setDPInScale(window->get_screen()->get_resolution(), rtengine::max((int)initialGdkScale, window->get_scale_factor())); + direction = window->get_direction(); +} + +void RTScalable::deleteDir(const Glib::ustring& path) +{ + int error = 0; + try { + + Glib::Dir dir (path); + + // Removing the directory content + for (auto entry = dir.begin(); entry != dir.end(); ++entry) { + error |= g_remove (Glib::build_filename (path, *entry).c_str()); + } + + if (error != 0 && options.rtSettings.verbose) { + std::cerr << "Failed to delete all entries in '" << path << "': " << g_strerror(errno) << std::endl; + } + + } catch (Glib::Error&) { + error = 1; + } + + // Removing the directory itself + if (!error) { + try { + + error = g_remove (path.c_str()); + + } catch (Glib::Error&) {} + } +} + +void RTScalable::cleanup() +{ + Glib::ustring imagesCacheFolder = Glib::build_filename (options.cacheBaseDir, "svg2png"); + Glib::ustring sDPI = Glib::ustring::compose("%1", (int)getTweakedDPI()); + + try { + Glib::Dir dir(imagesCacheFolder); + + for (Glib::DirIterator entry = dir.begin(); entry != dir.end(); ++entry) { + const Glib::ustring fileName = *entry; + const Glib::ustring filePath = Glib::build_filename(imagesCacheFolder, fileName); + if (fileName == "." || fileName == ".." || !Glib::file_test(filePath, Glib::FILE_TEST_IS_DIR)) { + continue; + } + + if (fileName != sDPI) { + deleteDir(filePath); + } + } + } catch (Glib::Exception&) { + } + +} + +/* + * This function try to find the svg file converted to png in a cache and return + * the Cairo::ImageSurface. If it can't find it, it will generate it. + * + * If the provided filename doesn't end with ".svg" (and then we're assuming it's a png file), + * it will try to load that file directly from the source images folder. Scaling is disabled + * for anything else than svg files. + * + * This function will always return a usable value, but it might be a garbage image + * if something went wrong. + */ +Cairo::RefPtr RTScalable::loadImage(const Glib::ustring &fname, double dpi) +{ + // Magic color : #2a7fff + // Dark theme color : #CCCCCC + // Light theme color : #252525 -- not used + + Glib::ustring imagesFolder = Glib::build_filename (argv0, "images"); + Glib::ustring imagesCacheFolder = Glib::build_filename (options.cacheBaseDir, "svg2png"); + + // -------------------- Looking for the cached PNG file first -------------------- + + Glib::ustring imagesCacheFolderDPI = Glib::build_filename (imagesCacheFolder, Glib::ustring::compose("%1", (int)dpi)); + auto path = Glib::build_filename(imagesCacheFolderDPI, fname); + + if (Glib::file_test(path.c_str(), Glib::FILE_TEST_EXISTS)) { + return Cairo::ImageSurface::create_from_png(path); + } else { + + // -------------------- Looking for the PNG file in install directory -------------------- + + path = Glib::build_filename(imagesFolder, fname); + if (Glib::file_test(path.c_str(), Glib::FILE_TEST_EXISTS)) { + return Cairo::ImageSurface::create_from_png(path); + } + } + + // Last chance: looking for the svg file and creating the cached image file + + // -------------------- Creating the cache folder for PNGs -------------------- + + if (!Glib::file_test(imagesCacheFolderDPI.c_str(), Glib::FILE_TEST_EXISTS)) { + auto error = g_mkdir_with_parents (imagesCacheFolderDPI.c_str(), 0777); + if (error != 0) { + std::cerr << "ERROR: Can't create \"" << imagesCacheFolderDPI << "\" cache folder: " << g_strerror(error) << std::endl; + Cairo::RefPtr surf = Cairo::ImageSurface::create(Cairo::FORMAT_RGB24, 10, 10); + return surf; + } + } + + // -------------------- Loading the SVG file -------------------- + + std::string svgFile; + Glib::ustring iconNameSVG; + if (fname.find(".png") != Glib::ustring::npos) { + iconNameSVG = fname.substr(0, fname.length() - 3) + Glib::ustring("svg"); + } + try { + path = Glib::build_filename (imagesFolder, iconNameSVG); + //printf("Trying to get content of %s\n", path.c_str()); + svgFile = Glib::file_get_contents(Glib::build_filename (imagesFolder, iconNameSVG)); + } + catch (Glib::FileError &err) { + std::cerr << "ERROR: " << err.what() << std::endl; + Cairo::RefPtr surf = Cairo::ImageSurface::create(Cairo::FORMAT_RGB24, 10, 10); + return surf; + } + + // -------------------- Updating the the magic color -------------------- + + std::string updatedSVG = std::regex_replace(svgFile, std::regex("#2a7fff"), "#CCCCCC"); + + // -------------------- Creating the rsvg handle -------------------- + + GError **error = nullptr; + RsvgHandle *handle = rsvg_handle_new_from_data((unsigned const char*)updatedSVG.c_str(), updatedSVG.length(), error); + + if (handle == nullptr) { + std::cerr << "ERROR: Can't use the provided data for \"" << fname << "\" to create a RsvgHandle:" << std::endl + << Glib::ustring((*error)->message) << std::endl; + Cairo::RefPtr surf = Cairo::ImageSurface::create(Cairo::FORMAT_RGB24, 10, 10); + return surf; + } + + // -------------------- Drawing the image to a Cairo::ImageSurface -------------------- + + RsvgDimensionData dim; + rsvg_handle_get_dimensions(handle, &dim); + double r = dpi / 96.; + Cairo::RefPtr surf = Cairo::ImageSurface::create(Cairo::FORMAT_ARGB32, (int)(dim.width * r + 0.499), (int)(dim.height * r + 0.499)); + Cairo::RefPtr c = Cairo::Context::create(surf); + c->set_source_rgba (0., 0., 0., 0.); + c->set_operator (Cairo::OPERATOR_CLEAR); + c->paint (); + c->set_operator (Cairo::OPERATOR_OVER); + c->scale(r, r); + rsvg_handle_render_cairo(handle, c->cobj()); + rsvg_handle_free(handle); + + // -------------------- Saving the image in cache -------------------- + + surf->write_to_png(Glib::build_filename(imagesCacheFolderDPI, fname)); + + // -------------------- Finished! Pfeeew ! -------------------- + + return surf; +} diff --git a/rtgui/rtscalable.h b/rtgui/rtscalable.h new file mode 100644 index 000000000..c3ff19e60 --- /dev/null +++ b/rtgui/rtscalable.h @@ -0,0 +1,55 @@ +/* + * This file is part of RawTherapee. + * + * Copyright (c) 2018 Jean-Christophe FRISCH + * + * RawTherapee 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. + * + * RawTherapee 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 RawTherapee. If not, see . + */ + +#pragma once + +#include + +/** + * @brief A master class for derived class of Gtk::Image in order to handle theme-related icon sets. + */ +class RTScalable +{ + static double dpi; + static int scale; + static Gtk::TextDirection direction; // cached value for text-direction + static void deleteDir(const Glib::ustring& path); + +protected: + static void setDPInScale (const double newDPI, const int newScale); + static Cairo::RefPtr loadImage(const Glib::ustring &fname, double dpi); + static Gtk::TextDirection getDirection(); + + +public: + +#ifdef __APPLE__ + static constexpr double baseDPI = 72; + static constexpr double baseHiDPI = 144; +#else + static constexpr double baseDPI = 96; + static constexpr double baseHiDPI = 192; +#endif + + static void init(Gtk::Window *window); + static void cleanup(); + static double getDPI (); + static double getTweakedDPI (); // The returned value is tweaked DPI to adapt to main the font size. Maybe not an ideal solution. + static int getScale (); +}; diff --git a/rtgui/rtsurface.cc b/rtgui/rtsurface.cc new file mode 100644 index 000000000..faf1a750d --- /dev/null +++ b/rtgui/rtsurface.cc @@ -0,0 +1,134 @@ +/* + * This file is part of RawTherapee. + * + * Copyright (c) 2018 Jean-Christophe FRISCH + * + * RawTherapee 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. + * + * RawTherapee 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 RawTherapee. If not, see . + */ + +#include + +#include "options.h" +#include "rtsurface.h" + +namespace +{ + +std::map> surfaceCache; + +} + +double RTSurface::dpiBack = 0.; +int RTSurface::scaleBack = 0; + +RTSurface::RTSurface () : RTScalable() +{ + Cairo::RefPtr imgSurf(new Cairo::ImageSurface(nullptr, false)); + surface = imgSurf; +} + +RTSurface::RTSurface(const RTSurface& other) : RTScalable() +{ + surface = other.surface; +} + +RTSurface::RTSurface (Glib::ustring fileName, Glib::ustring rtlFileName) : RTScalable() +{ + Cairo::RefPtr imgSurf(new Cairo::ImageSurface(nullptr, false)); + surface = imgSurf; + setImage (fileName, rtlFileName); +} + +void RTSurface::setImage (Glib::ustring fileName, Glib::ustring rtlFileName) +{ + Glib::ustring imageName; + + if (!rtlFileName.empty() && getDirection() == Gtk::TEXT_DIR_RTL) { + imageName = rtlFileName; + } else { + imageName = fileName; + } + + changeImage (imageName); +} + +void RTSurface::setDPInScale (const double newDPI, const int newScale) +{ + if (getScale() != newScale || (getScale() == 1 && getDPI() != newDPI)) { + RTScalable::setDPInScale(newDPI, newScale); + dpiBack = getDPI(); + scaleBack = getScale(); + //printf("RTSurface::setDPInScale : New scale = %d & new DPI = %.3f (%.3f asked) -> Reloading all RTSurface\n", scaleBack, dpiBack, newDPI); + updateImages(); + } +} + +void RTSurface::changeImage (Glib::ustring imageName) +{ + auto iterator = surfaceCache.find (imageName); + + if (iterator == surfaceCache.end ()) { + surface = loadImage(imageName, getTweakedDPI()); + + // HOMBRE: As of now, GDK_SCALE is forced to 1, so setting the Cairo::ImageSurface scale is not required + // Anyway, this might be of use one day + /* + double x=0., y=0.; + cairo_surface_get_device_scale(surface->cobj(), &x, &y); + if (getScale() == 2) { + cairo_surface_set_device_scale(surface->cobj(), 0.5, 0.5); // Not sure if it should be 0.5 or 2.0 here ! + surface->flush(); + } + */ + + iterator = surfaceCache.emplace (imageName, surface).first; + } + + surface = iterator->second; +} + +int RTSurface::getWidth() const +{ + return surface ? surface->get_width() : -1; +} + +int RTSurface::getHeight() const +{ + return surface ? surface->get_height() : -1; +} + +void RTSurface::init() +{ + dpiBack = RTScalable::getDPI(); + scaleBack = RTScalable::getScale(); +} + +void RTSurface::updateImages() +{ + double res = getTweakedDPI(); + for (auto entry : surfaceCache) { + entry.second = loadImage(entry.first, res); + //printf("RTSurface::updateImages : %s\n", entry.first.c_str()); + } +} + +void RTSurface::from(Glib::RefPtr other) +{ + surface = other->surface; +} + +bool RTSurface::hasSurface() const +{ + return surface ? true : false; +} diff --git a/rtgui/rtsurface.h b/rtgui/rtsurface.h new file mode 100644 index 000000000..58093d323 --- /dev/null +++ b/rtgui/rtsurface.h @@ -0,0 +1,51 @@ +/* + * This file is part of RawTherapee. + * + * Copyright (c) 2018 Jean-Christophe FRISCH + * + * RawTherapee 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. + * + * RawTherapee 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 RawTherapee. If not, see . + */ +#pragma once + +#include +#include "rtscalable.h" + +/** + * @brief A derived class of Gtk::Image in order to handle theme-related icon sets. + */ +class RTSurface : public RTScalable +{ + static double dpiBack; // used to keep track of master dpi change + static int scaleBack; // used to keep track of master scale change + void changeImage (Glib::ustring imageName); + +public: + Cairo::RefPtr surface; + + RTSurface (); + RTSurface (const RTSurface& other); + RTSurface (Glib::ustring fileName, Glib::ustring rtlFileName = Glib::ustring()); + + void setImage (Glib::ustring fileName, Glib::ustring rtlFileName = Glib::ustring()); + int getWidth() const; + int getHeight() const; + bool hasSurface() const; + + static void init(); + static void updateImages (); + static void setDPInScale (const double newDPI, const int newScale); + static void setScale (const int newScale); + + void from(Glib::RefPtr other); +}; diff --git a/rtgui/rtwindow.cc b/rtgui/rtwindow.cc index 8ecd31cc1..6030c4556 100644 --- a/rtgui/rtwindow.cc +++ b/rtgui/rtwindow.cc @@ -25,7 +25,12 @@ #include "cursormanager.h" #include "rtimage.h" #include "whitebalance.h" -#include "../rtengine/icons.h" + +float fontScale = 1.f; +Glib::RefPtr cssForced; +Glib::RefPtr cssRT; + +extern unsigned char initialGdkScale; #if defined(__APPLE__) static gboolean @@ -91,16 +96,157 @@ RTWindow::RTWindow () { cacheMgr->init (); - WhiteBalance::init(); ProfilePanel::init (this); + // ------- loading theme files + + Glib::RefPtr screen = Gdk::Screen::get_default(); + + if (screen) { + Gtk::Settings::get_for_screen (screen)->property_gtk_theme_name() = "Adwaita"; + Gtk::Settings::get_for_screen (screen)->property_gtk_application_prefer_dark_theme() = true; + +#if defined(__APPLE__) + // This will force screen resolution regarding font, but I don't think it's compliant with Gtk guidelines... + // Do not confuse with screen scaling, where everything is scaled up ! + screen->set_resolution (96.); +#endif + + Glib::RefPtr regex = Glib::Regex::create (THEMEREGEXSTR, Glib::RegexCompileFlags::REGEX_CASELESS); + Glib::ustring filename; + Glib::MatchInfo mInfo; + bool match = regex->match(options.theme + ".css", mInfo); + if (match) { + // save old theme (name + version) + Glib::ustring initialTheme(options.theme); + + // update version + auto pos = options.theme.find("-GTK3-"); + Glib::ustring themeRootName(options.theme.substr(0, pos)); + if (GTK_MINOR_VERSION < 20) { + options.theme = themeRootName + "-GTK3-_19"; + } else { + options.theme = themeRootName + "-GTK3-20_"; + } + // check if this version exist + if (!Glib::file_test(Glib::build_filename(argv0, "themes", options.theme + ".css"), Glib::FILE_TEST_EXISTS)) { + // set back old theme version if the actual one doesn't exist yet + options.theme = initialTheme; + } + } + filename = Glib::build_filename(argv0, "themes", options.theme + ".css"); + + if (!match || !Glib::file_test(filename, Glib::FILE_TEST_EXISTS)) { + options.theme = "RawTherapee-GTK"; + + // We're not testing GTK_MAJOR_VERSION == 3 here, since this branch requires Gtk3 only + if (GTK_MINOR_VERSION < 20) { + options.theme = options.theme + "3-_19"; + } else { + options.theme = options.theme + "3-20_"; + } + + filename = Glib::build_filename (argv0, "themes", options.theme + ".css"); + } + + cssRT = Gtk::CssProvider::create(); + + try { + cssRT->load_from_path (filename); + Gtk::StyleContext::add_provider_for_screen (screen, cssRT, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); + } catch (Glib::Error &err) { + printf ("Error: Can't load css file \"%s\"\nMessage: %s\n", filename.c_str(), err.what().c_str()); + } catch (...) { + printf ("Error: Can't load css file \"%s\"\n", filename.c_str()); + } + + // Set the font face and size + Glib::ustring css; + if (options.fontFamily != "default") { + //GTK318 + #if GTK_MAJOR_VERSION == 3 && GTK_MINOR_VERSION < 20 + css = Glib::ustring::compose ("* { font-family: %1; font-size: %2px}", options.fontFamily, options.fontSize * (int)initialGdkScale); + #else + css = Glib::ustring::compose ("* { font-family: %1; font-size: %2pt}", options.fontFamily, options.fontSize * (int)initialGdkScale); + #endif + //GTK318 + fontScale = options.fontSize / 9.f; + if (options.rtSettings.verbose) { + printf("\"Non-Default\" font size(%d) * scale(%d) / fontScale(%.3f)\n", options.fontSize, (int)initialGdkScale, fontScale); + } + } else { + Glib::RefPtr style = Gtk::StyleContext::create(); + Pango::FontDescription pfd = style->get_font(Gtk::STATE_FLAG_NORMAL); + int pt; + if (pfd.get_set_fields() & Pango::FONT_MASK_SIZE) { + int fontSize = pfd.get_size(); + bool isPix = pfd.get_size_is_absolute(); + int resolution = (int)style->get_screen()->get_resolution(); + if (isPix) { + // HOMBRE: guessing here... + // if resolution is lower than 192ppi, we're supposing that it's already expressed in a scale==1 scenario + if (resolution >= int(RTScalable::baseHiDPI)) { + // converting the resolution to a scale==1 scenario + resolution /= 2; + } + // 1pt = 1/72in @ 96 ppi + // HOMBRE: If the font unit is px, is it alredy scaled up to match the resolution ? + // px >inch >pt >"scaled pt" + pt = (int)(double(fontSize) / RTScalable::baseDPI * 72. * (RTScalable::baseHiDPI / resolution) + 0.49); + } else { + pt = fontSize / Pango::SCALE; + } + fontScale = (float)pt / 9.f; + if ((int)initialGdkScale > 1 || pt != 9) { + css = Glib::ustring::compose ("* { font-size: %1pt}", pt * (int)initialGdkScale); + if (options.rtSettings.verbose) { + printf("\"Default\" font size(%d) * scale(%d) / fontScale(%.3f)\n", pt, (int)initialGdkScale, fontScale); + } + } + } else { + fontScale = 1.f; + } + } + if (!css.empty()) { + if (options.rtSettings.verbose) { + printf("CSS:\n%s\n\n", css.c_str()); + } + try { + cssForced = Gtk::CssProvider::create(); + cssForced->load_from_data (css); + + Gtk::StyleContext::add_provider_for_screen (screen, cssForced, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); + + } catch (Glib::Error &err) { + printf ("Error: \"%s\"\n", err.what().c_str()); + } catch (...) { + printf ("Error: Can't find the font named \"%s\"\n", options.fontFamily.c_str()); + } + } + } + +#ifndef NDEBUG + else if (!screen) { + printf ("ERROR: Can't get default screen!\n"); + } + +#endif + + // ------- end loading theme files + + RTScalable::init(this); + RTSurface::init(); + RTImage::init(); + WhiteBalance::init(); + MyExpander::init(); + #ifndef WIN32 const std::vector> appIcons = { - RTImage::createFromFile("rawtherapee-logo-16.png"), - RTImage::createFromFile("rawtherapee-logo-24.png"), - RTImage::createFromFile("rawtherapee-logo-48.png"), - RTImage::createFromFile("rawtherapee-logo-128.png"), - RTImage::createFromFile("rawtherapee-logo-256.png") + RTImage::createPixbufFromFile("rawtherapee-logo-16.png"), + RTImage::createPixbufFromFile("rawtherapee-logo-24.png"), + RTImage::createPixbufFromFile("rawtherapee-logo-48.png"), + RTImage::createPixbufFromFile("rawtherapee-logo-128.png"), + RTImage::createPixbufFromFile("rawtherapee-logo-256.png") }; try { set_default_icon_list(appIcons); @@ -192,10 +338,12 @@ RTWindow::RTWindow () if (options.mainNBVertical) { mainNB->set_tab_pos (Gtk::POS_LEFT); fpl->set_angle (90); - fpanelLabelGrid->attach_next_to (*Gtk::manage (new RTImage ("folder-closed.png")), Gtk::POS_TOP, 1, 1); + RTImage* folderIcon = Gtk::manage (new RTImage ("folder-closed.png")); + fpanelLabelGrid->attach_next_to (*folderIcon, Gtk::POS_TOP, 1, 1); fpanelLabelGrid->attach_next_to (*fpl, Gtk::POS_TOP, 1, 1); } else { - fpanelLabelGrid->attach_next_to (*Gtk::manage (new RTImage ("folder-closed.png")), Gtk::POS_RIGHT, 1, 1); + RTImage* folderIcon = Gtk::manage (new RTImage ("folder-closed.png")); + fpanelLabelGrid->attach_next_to (*folderIcon, Gtk::POS_RIGHT, 1, 1); fpanelLabelGrid->attach_next_to (*fpl, Gtk::POS_RIGHT, 1, 1); } @@ -314,6 +462,8 @@ RTWindow::~RTWindow() if (fpanel) { delete fpanel; } + + RTScalable::cleanup(); } void RTWindow::on_realize () @@ -396,6 +546,9 @@ bool RTWindow::on_configure_event (GdkEventConfigure* event) get_position (options.windowX, options.windowY); } + RTImage::setDPInScale(RTScalable::getDPI(), RTScalable::getScale()); // will update the RTImage on scale/resolution change + RTSurface::setDPInScale(RTScalable::getDPI(), RTScalable::getScale()); // will update the RTSurface on scale/resolution change + return Gtk::Widget::on_configure_event (event); } @@ -461,7 +614,9 @@ void RTWindow::addEditorPanel (EditorPanel* ep, const std::string &name) closeb->set_focus_on_click (false); closeb->signal_clicked().connect ( sigc::bind (sigc::mem_fun (*this, &RTWindow::remEditorPanel), ep)); - titleGrid->attach_next_to (*Gtk::manage (new RTImage ("aperture.png")), Gtk::POS_RIGHT, 1, 1); + if (!EditWindow::isMultiDisplayEnabled()) { + titleGrid->attach_next_to (*Gtk::manage (new RTImage ("aperture.png")), Gtk::POS_RIGHT, 1, 1); + } titleGrid->attach_next_to (*Gtk::manage (new Gtk::Label (Glib::path_get_basename (name))), Gtk::POS_RIGHT, 1, 1); titleGrid->attach_next_to (*closeb, Gtk::POS_RIGHT, 1, 1); titleGrid->show_all (); @@ -708,6 +863,16 @@ bool RTWindow::on_delete_event (GdkEventAny* event) cacheMgr->closeCache (); // also makes cleanup if too large WhiteBalance::cleanup(); ProfilePanel::cleanup(); + ClutComboBox::cleanup(); + MyExpander::cleanup(); + mainWindowCursorManager.cleanup(); + editWindowCursorManager.cleanup(); + BatchQueueEntry::savedAsIcon.reset(); + FileBrowserEntry::editedIcon.reset(); + FileBrowserEntry::recentlySavedIcon.reset(); + FileBrowserEntry::enqueuedIcon.reset(); + FileBrowserEntry::hdr.reset(); + FileBrowserEntry::ps.reset(); if (!options.windowMaximized) { get_size (options.windowWidth, options.windowHeight); @@ -999,7 +1164,7 @@ void RTWindow::createSetmEditor() el->set_angle (90); } - editorLabelGrid->attach_next_to (*Gtk::manage (new RTImage ("rawtherapee-logo-24.png")), pos, 1, 1); + editorLabelGrid->attach_next_to (*Gtk::manage (new RTImage ("aperture.png")), pos, 1, 1); editorLabelGrid->attach_next_to (*el, pos, 1, 1); editorLabelGrid->set_tooltip_markup (M ("MAIN_FRAME_EDITOR_TOOLTIP")); diff --git a/rtgui/shcselector.cc b/rtgui/shcselector.cc index e8e7f46fa..d55ce30fd 100644 --- a/rtgui/shcselector.cc +++ b/rtgui/shcselector.cc @@ -24,11 +24,13 @@ SHCSelector::SHCSelector() : movingPosition(-1), tmpX(0.0), tmpPos(0.0), wslider(0.0), cl(nullptr), coloredBar(RTO_Left2Right) { + int s = RTScalable::getScale(); + positions[0] = defaults[0] = 0.25; positions[1] = defaults[1] = 0.5; positions[2] = defaults[2] = 0.75; - leftMargin = RADIUS; - rightMargin = RADIUS; + leftMargin = (RADIUS - 1.5) * s; + rightMargin = (RADIUS - 1.5) * s; Glib::RefPtr style = get_style_context(); style->add_class("drawingarea"); @@ -57,13 +59,14 @@ void SHCSelector::get_preferred_height_vfunc (int &minimum_height, int &natural_ void SHCSelector::get_preferred_width_vfunc (int &minimum_width, int &natural_width) const { - minimum_width = 100; - natural_width = 150; + int s = RTScalable::getScale(); + minimum_width = 100 * s; + natural_width = 150 * s; } void SHCSelector::get_preferred_height_for_width_vfunc (int width, int &minimum_height, int &natural_height) const { - natural_height = minimum_height = 14; + natural_height = minimum_height = 14 * RTScalable::getScale(); } void SHCSelector::get_preferred_width_for_height_vfunc (int height, int &minimum_width, int &natural_width) const @@ -135,8 +138,10 @@ void SHCSelector::updateBackBuffer() int w = get_width () - leftMargin - rightMargin; int h = get_height (); - wslider = std::max(int(h / 5), 10); - double hwslider = double(wslider) / 2.; + double s = RTScalable::getScale(); + + wslider = (double)std::max(h / 5, 10) * s; + double hwslider = wslider / 2.; // clear bg cr->set_source_rgba (0., 0., 0., 0.); @@ -146,22 +151,23 @@ void SHCSelector::updateBackBuffer() // set the box's colors - cr->set_line_width (1.0); + cr->set_line_width (1.0 * s); cr->set_antialias(Cairo::ANTIALIAS_SUBPIXEL); cr->set_line_cap(Cairo::LINE_CAP_BUTT); + int coloredBarHeight = (int)((double)h * 5.5 / 7. + 0.5); if (is_sensitive() && coloredBar.canGetColors()) { // gradient background // this will eventually create/update the off-screen BackBuffer - coloredBar.setDrawRectangle(leftMargin + 1, 1, w - 2, int(float(h) * 5.5f / 7.f + 0.5f)); + coloredBar.setDrawRectangle(leftMargin + 1 * (int)s, 1 * (int)s, w - 2 * (int)s, coloredBarHeight - 2 * (int)s); // that we're displaying here coloredBar.expose(*this, cr); } else { - style->render_background(cr, leftMargin + 1, 1, w - 2, int(float(h) * 5.5f / 7.f + 0.5f)); + style->render_background(cr, leftMargin + 1 * (int)s, 1 * (int)s, w - 2 * (int)s, coloredBarHeight - 2 * (int)s); } // draw the box's borders - style->render_frame(cr, leftMargin + 1, 1, w - 2, int(float(h) * 5.5f / 7.f + 0.5f)); + style->render_frame(cr, leftMargin, 0, w, coloredBarHeight); // draw sliders @@ -169,82 +175,43 @@ void SHCSelector::updateBackBuffer() if (i == movingPosition) { style->set_state(Gtk::STATE_FLAG_ACTIVE); } - /* - else if (i==litCursor) - style->set_state(Gtk::STATE_FLAG_PRELIGHT); - */ else if (!is_sensitive()) { style->set_state(Gtk::STATE_FLAG_INSENSITIVE); } else { style->set_state(Gtk::STATE_FLAG_NORMAL); } - style->render_slider(cr, leftMargin + 0.5 + (w - 1)*positions[i] - hwslider, vb, wslider, h - vb, Gtk::ORIENTATION_VERTICAL); + style->render_slider(cr, (double)leftMargin + 1. * s + ((double)w - 2. * s) * positions[i] - (double)hwslider, (double)vb * s, wslider, (double)h - (double)vb * s, Gtk::ORIENTATION_VERTICAL); style->set_state(Gtk::STATE_FLAG_NORMAL); } - /* - for (int i=0; i<3; i++) { - double posX = leftMargin+0.5+(w-1)*positions[i]; - double arrowY = h-(h*3.5/7.-0.5)-vb; - double baseY = h-0.5-vb; - double centerY = (arrowY+baseY)/2.; - cr->move_to (posX, arrowY); - cr->line_to (posX+hwslider, centerY); - cr->line_to (posX+hwslider, baseY); - cr->line_to (posX-hwslider, baseY); - cr->line_to (posX-hwslider, centerY); - cr->close_path(); - if (i==movingPosition) { - // moved (selected) - Gdk::RGBA c = style->get_background_color(Gtk::STATE_FLAG_SELECTED); - cr->set_source_rgb (c.get_red(), c.get_green(), c.get_blue()); - cr->fill_preserve (); - c = style->get_border_color (Gtk::STATE_FLAG_SELECTED); - cr->set_source_rgb (c.get_red(), c.get_green(), c.get_blue()); - cr->stroke (); - } - / * - else if (i==litCursor) { - // prelight - Gdk::RGBA c = style->get_background_color(Gtk::STATE_FLAG_PRELIGHT); - cr->set_source_rgb (c.get_red(), c.get_green(), c.get_blue()); - cr->fill_preserve (); - c = style->get_border_color (Gtk::STATE_FLAG_PRELIGHT); - cr->set_source_rgb (c.get_red(), c.get_green(), c.get_blue()); - cr->stroke (); - } - * / - else { - // normal - Gdk::RGBA c = style->get_background_color(is_sensitive() ? Gtk::STATE_FLAG_ACTIVE : Gtk::STATE_FLAG_INSENSITIVE); - cr->set_source_rgb (c.get_red(), c.get_green(), c.get_blue()); - cr->fill_preserve (); - c = style->get_border_color (is_sensitive() ? Gtk::STATE_FLAG_ACTIVE : Gtk::STATE_FLAG_INSENSITIVE); - cr->set_source_rgb (c.get_red(), c.get_green(), c.get_blue()); - cr->stroke (); - } - } - */ - // draw text for the slider that is being moved if (movingPosition >= 0) { int i = movingPosition; int offset; - int layout_width, layout_height; + int layout_width = 0, layout_height = 0; + + Glib::RefPtr context = get_pango_context () ; + Pango::FontDescription fontd(get_style_context()->get_font()); + + // update font + fontd.set_weight (Pango::WEIGHT_NORMAL); + fontd.set_absolute_size((double)h * 0.8 * (double)Pango::SCALE); + context->set_font_description (fontd); + Glib::RefPtr layout = create_pango_layout(Glib::ustring::format(std::setprecision(2), positions[i])); layout->get_pixel_size(layout_width, layout_height); - offset = positions[i] > 0.5 ? -layout_width - 1 - hwslider : 1 + hwslider; + offset = positions[i] > 0.5 ? -layout_width - 1 * (int)s - hwslider : 1 * (int)s + hwslider; cr->set_source_rgb (0., 0., 0.); - cr->set_line_width(3.); + cr->set_line_width(3. * s); cr->set_line_join(Cairo::LINE_JOIN_ROUND); cr->set_line_cap(Cairo::LINE_CAP_ROUND); - cr->move_to (leftMargin + w * positions[i] + offset, 0.); + cr->move_to ((double)leftMargin + (double)w * positions[i] + (double)offset, 0.); layout->add_to_cairo_context (cr); cr->stroke_preserve(); - cr->set_line_width(0.5); + cr->set_line_width(0.5 * s); cr->set_source_rgb (1., 1., 1.); cr->fill (); } @@ -274,13 +241,18 @@ bool SHCSelector::on_button_press_event (GdkEventButton* event) double w = double(get_width () - leftMargin - rightMargin); movingPosition = -1; - for (int i = 0; i < 3; i++) - if (event->x > double(leftMargin) + w * positions[i] - wslider / 2. && event->x < double(leftMargin) + w * positions[i] + wslider / 2) { + double s = RTScalable::getScale(); + + for (int i = 0; i < 3; i++) { + double currPos = double(leftMargin) + 1. * s + (w - 2. * s) * positions[i]; + double hwslider = wslider / 2.; + if (event->x >= currPos - hwslider && event->x <= currPos + hwslider) { movingPosition = i; tmpX = event->x; tmpPos = positions[i]; break; } + } queue_draw (); return true; @@ -315,23 +287,24 @@ bool SHCSelector::on_motion_notify_event (GdkEventMotion* event) { if (movingPosition >= 0) { - int w = get_width (); - positions[movingPosition] = tmpPos + (event->x - tmpX) / w; + double s = RTScalable::getScale(); + double innerw = double(get_width () - leftMargin - rightMargin) - 2. * s; + positions[movingPosition] = tmpPos + (event->x - tmpX) / innerw; if (positions[movingPosition] < 0) { positions[movingPosition] = 0.0; } - if (movingPosition > 0 && positions[movingPosition] < positions[movingPosition - 1] + wslider / w) { - positions[movingPosition] = positions[movingPosition - 1] + wslider / w; + if (movingPosition > 0 && positions[movingPosition] < positions[movingPosition - 1] + wslider / innerw) { + positions[movingPosition] = positions[movingPosition - 1] + wslider / innerw; } if (positions[movingPosition] > 1.0) { positions[movingPosition] = 1.0; } - if (movingPosition < 2 && positions[movingPosition] > positions[movingPosition + 1] - wslider / w) { - positions[movingPosition] = positions[movingPosition + 1] - wslider / w; + if (movingPosition < 2 && positions[movingPosition] > positions[movingPosition + 1] - wslider / innerw) { + positions[movingPosition] = positions[movingPosition + 1] - wslider / innerw; } if (cl) { diff --git a/rtgui/splash.cc b/rtgui/splash.cc index b95071d0b..d608ccd97 100644 --- a/rtgui/splash.cc +++ b/rtgui/splash.cc @@ -29,15 +29,15 @@ extern Glib::ustring versionString; SplashImage::SplashImage () { - pixbuf = RTImage::createFromFile ("splash.png"); + surface = RTImage::createImgSurfFromFile ("splash.png"); } bool SplashImage::on_draw(const ::Cairo::RefPtr< Cairo::Context> &cr) { Glib::RefPtr window = get_window(); - Gdk::Cairo::set_source_pixbuf(cr, pixbuf); - cr->rectangle(0, 0, pixbuf->get_width(), pixbuf->get_height()); + cr->set_source(surface, 0., 0.); + cr->rectangle(0, 0, surface->get_width(), surface->get_height()); cr->fill(); Cairo::FontOptions cfo; @@ -58,7 +58,7 @@ bool SplashImage::on_draw(const ::Cairo::RefPtr< Cairo::Context> &cr) cr->set_source_rgb (0., 0., 0.); cr->set_line_width(3.); cr->set_line_join(Cairo::LINE_JOIN_ROUND); - cr->move_to (pixbuf->get_width() - w - 32, pixbuf->get_height() - h - 20); + cr->move_to (surface->get_width() - w - 32, surface->get_height() - h - 20); version->add_to_cairo_context (cr); cr->stroke_preserve(); cr->set_source_rgb (1., 1., 1.); @@ -76,12 +76,12 @@ Gtk::SizeRequestMode SplashImage::get_request_mode_vfunc () const void SplashImage::get_preferred_height_vfunc (int &minimum_height, int &natural_height) const { - minimum_height = natural_height = pixbuf ? pixbuf->get_height() : 100; + minimum_height = natural_height = surface ? surface->get_height() : 100 * RTScalable::getScale(); } void SplashImage::get_preferred_width_vfunc (int &minimum_width, int &natural_width) const { - minimum_width = natural_width = pixbuf ? pixbuf->get_width() : 100; + minimum_width = natural_width = surface ? surface->get_width() : 100 * RTScalable::getScale(); } void SplashImage::get_preferred_height_for_width_vfunc (int width, int &minimum_height, int &natural_height) const diff --git a/rtgui/splash.h b/rtgui/splash.h index b35021c65..00e9f556e 100644 --- a/rtgui/splash.h +++ b/rtgui/splash.h @@ -25,7 +25,7 @@ class SplashImage : public Gtk::DrawingArea { private: - Glib::RefPtr pixbuf; + Cairo::RefPtr surface; Glib::RefPtr version; public: diff --git a/rtgui/thresholdselector.cc b/rtgui/thresholdselector.cc index 2d94d43de..e1e6fc36f 100644 --- a/rtgui/thresholdselector.cc +++ b/rtgui/thresholdselector.cc @@ -174,13 +174,21 @@ void ThresholdSelector::get_preferred_height_vfunc (int &minimum_height, int &na void ThresholdSelector::get_preferred_width_vfunc (int &minimum_width, int &natural_width) const { - minimum_width = 60; - natural_width = 150; + int s = RTScalable::getScale(); + Glib::RefPtr style = get_style_context(); + Gtk::Border padding = getPadding(style); // already scaled + int margins = padding.get_left() + padding.get_right(); + minimum_width = 60 * s + margins; + natural_width = 150 * s + margins; } void ThresholdSelector::get_preferred_height_for_width_vfunc (int width, int &minimum_height, int &natural_height) const { - natural_height = minimum_height = 23; + int s = RTScalable::getScale(); + Glib::RefPtr style = get_style_context(); + Gtk::Border padding = getPadding(style); // already scaled + int margins = padding.get_left() + padding.get_right(); + natural_height = minimum_height = 26 * s + margins; } void ThresholdSelector::get_preferred_width_for_height_vfunc (int height, int &minimum_width, int &natural_width) const @@ -254,8 +262,12 @@ void ThresholdSelector::on_realize() void ThresholdSelector::updateBackBuffer() { + if (!get_realized() || !isDirty() || !get_allocated_width() || !get_allocated_height()) { + return; + } + // This will create or update the size of the BackBuffer::surface - setDrawRectangle(Cairo::FORMAT_ARGB32, 0, 0, get_width(), get_height(), true); + setDrawRectangle(Cairo::FORMAT_ARGB32, 0, 0, get_allocated_width(), get_allocated_height(), true); if (!surface) { return; @@ -263,52 +275,55 @@ void ThresholdSelector::updateBackBuffer() Cairo::RefPtr cr = Cairo::Context::create(surface); Glib::RefPtr style = get_style_context(); + Gtk::Border padding = getPadding(style); // already scaled cr->set_source_rgba (0., 0., 0., 0.); cr->set_operator (Cairo::OPERATOR_CLEAR); cr->paint (); cr->set_operator (Cairo::OPERATOR_OVER); - double positions01[4]; - int w = get_width (); - int h = get_height (); + double s = (double)RTScalable::getScale(); - int wslider = 10; - int hwslider = wslider / 2; - int iw = w - wslider - 2 * hb; // inner width (excluding padding for sliders) + double positions01[4]; + int w = get_allocated_width (); + int h = get_allocated_height (); + + + double wslider = sliderWidth * s; // constant must be an odd value + double hwslider = wslider / 2.; + double verticalSliderPadding = std::floor(((double)h - (double)padding.get_top() - (double)padding.get_bottom()) * verticalSliderPaddingFactor + 0.5); positions01[TS_BOTTOMLEFT] = to01(TS_BOTTOMLEFT); positions01[TS_TOPLEFT] = to01(TS_TOPLEFT); positions01[TS_BOTTOMRIGHT] = to01(TS_BOTTOMRIGHT); positions01[TS_TOPRIGHT] = to01(TS_TOPRIGHT); - // set the box's colors - cr->set_line_width (1.0); - cr->set_line_cap(Cairo::LINE_CAP_BUTT); - + double innerBarX = (double)padding.get_left() + hwslider - 0.5 * s; + double innerBarY = verticalSliderPadding + 1. * s + (double)padding.get_top(); + double innerBarW = (double)w - innerBarX - (double)padding.get_right() - hwslider - 0.5 * s; + double innerBarH = (double)h - innerBarY - verticalSliderPadding - 1. * s - (double)padding.get_bottom(); if (is_sensitive() && coloredBar.canGetColors()) { if (updatePolicy == RTUP_DYNAMIC) { coloredBar.setDirty(true); } // this will eventually create/update the off-screen Surface for the gradient area only ! - coloredBar.setDrawRectangle(hb + hwslider, int(float(h) * 1.5f / 7.f + 0.5f), iw + 1, int(float(h) * 4.f / 7.f + 0.5f)); + coloredBar.setDrawRectangle(innerBarX, innerBarY, innerBarW, innerBarH); // that we're displaying here coloredBar.expose(*this, cr); } else { - style->render_background(cr, hb + hwslider, int(float(h) * 1.5f / 7.f + 0.5f), iw + 1, int(float(h) * 4.f / 7.f + 0.5f)); + style->render_background(cr, innerBarX, innerBarY, innerBarW, innerBarH); } - // draw the box's borders - style->render_frame(cr, hb + hwslider - 0.5, double(int(float(h) * 1.5f / 7.f)) + 0.5, iw + 1, double(int(float(h) * 4.f / 7.f))); - - cr->set_line_width (1.); - cr->set_antialias(Cairo::ANTIALIAS_NONE); - // draw curve + double yStart = innerBarY + innerBarH - 1. * s; + double yEnd = innerBarY + 1. * s; + double xStart = innerBarX; + double xEnd = innerBarX + innerBarW; + double iw = xEnd - xStart; + double ih = yEnd - yStart; + if (bgCurveProvider) { - double yStart = double(int(float(h) * 5.5f / 7.f)) - 0.5; - double yEnd = double(int(float(h) * 1.5f / 7.f)) + 1.5; std::vector pts = bgCurveProvider->getCurvePoints(this); // the values sent by the provider are not checked (assumed to be correct) @@ -318,29 +333,30 @@ void ThresholdSelector::updateBackBuffer() ++i; double y = *i; ++i; - cr->move_to (hb + hwslider + iw * x + 0.5, (yEnd - yStart)*y + yStart); + cr->move_to (xStart, ih*y + yStart); for (; i < pts.end(); ) { x = *i; ++i; y = *i; ++i; - cr->line_to (hb + hwslider + iw * x + 0.5, (yEnd - yStart)*y + yStart); + cr->line_to (xStart + iw * x, ih*y + yStart); } } else { // Draw a straight line because not enough points has been sent - double yStart = double(int(float(h) * 5.5f / 7.f)) - 0.5; - cr->move_to (hb + hwslider + 0.5, yStart); - cr->line_to (hb + hwslider + iw + 0.5, yStart); + cr->move_to (xStart, yEnd); + cr->rel_line_to (iw, 0.); } } else { if (!separatedSliders) { - double yStart = initalEq1 ? double(int(float(h) * 1.5f / 7.f)) + 1.5 : double(int(float(h) * 5.5f / 7.f)) - 0.5; - double yEnd = initalEq1 ? double(int(float(h) * 5.5f / 7.f)) - 0.5 : double(int(float(h) * 1.5f / 7.f)) + 1.5; ThreshCursorId p[4]; + double yStart_ = yStart; + double yEnd_ = yEnd; if (initalEq1) { + std::swap(yStart_, yEnd_); + p[0] = TS_TOPLEFT; p[1] = TS_BOTTOMLEFT; p[2] = TS_BOTTOMRIGHT; @@ -353,54 +369,60 @@ void ThresholdSelector::updateBackBuffer() } if (positions[p[1]] > minValTop) { // we use minValTop since if this block is executed, it means that we are in a simple Threshold where both bottom and top range are the same - cr->move_to (hb + hwslider, yStart); + cr->move_to (innerBarX, yStart_); } else { - cr->move_to (hb + hwslider, yEnd); + cr->move_to (innerBarX, yEnd_); } if (positions[p[0]] > minValTop) { - cr->line_to (hb + hwslider + iw * positions01[p[0]] + 0.5, yStart); + cr->line_to (xStart + iw * positions01[p[0]], yStart_); } if (positions[p[1]] > minValTop) { - cr->line_to (hb + hwslider + iw * positions01[p[1]] + 0.5, yEnd); + cr->line_to (xStart + iw * positions01[p[1]], yEnd_); } - cr->line_to (hb + hwslider + iw * positions01[p[2]] + 0.5, yEnd); + cr->line_to (xStart + iw * positions01[p[2]], yEnd_); if (doubleThresh && positions[p[2]] < maxValTop) { - cr->line_to (hb + hwslider + iw * positions01[p[3]] + 0.5, yStart); + cr->line_to (xStart + iw * positions01[p[3]], yStart_); if (positions[p[3]] < maxValTop) { - cr->line_to (hb + hwslider + iw + 0.5, yStart); + cr->line_to (xEnd, yStart_); } } } } cr->set_antialias(Cairo::ANTIALIAS_SUBPIXEL); + cr->set_line_cap(Cairo::LINE_CAP_BUTT); + cr->set_line_join(Cairo::LINE_JOIN_BEVEL); - if (is_sensitive() && coloredBar.canGetColors()) { - // draw surrounding curve + if (is_sensitive()) { + // draw surrounding curve (black) cr->set_source_rgb (0., 0., 0.); - cr->set_line_width (5.0); + cr->set_line_width (4. * s); cr->stroke_preserve(); } - // draw curve + // draw inner curve (white) if (is_sensitive()) { cr->set_source_rgb (1., 1., 1.); } else { cr->set_source_rgba (0., 0., 0., 0.5); } - - cr->set_line_width (1.5); + cr->set_line_width (2. * s); cr->stroke (); + // draw the box's borders + style->render_frame(cr, innerBarX - 1. * s, innerBarY - 1. * s, innerBarW + 2. * s, innerBarH + 2. * s); + // draw sliders - //if (!(litCursor == TS_UNDEFINED && movedCursor == TS_UNDEFINED)) { Gtk::StateFlags currState = style->get_state(); + cr->set_antialias(Cairo::ANTIALIAS_SUBPIXEL); + cr->set_line_cap(Cairo::LINE_CAP_ROUND); + for (int i = 0; i < (doubleThresh ? 4 : 2); ++i) { if (!is_sensitive()) { style->set_state(Gtk::STATE_FLAG_INSENSITIVE); @@ -412,68 +434,21 @@ void ThresholdSelector::updateBackBuffer() style->set_state(Gtk::STATE_FLAG_NORMAL); } - double posX = hb + iw * positions01[i] + 0.5; - double arrowY = i == 0 || i == 2 ? h - (h * 3. / 7. - 0.5) - vb : h * 3. / 7. - 0.5 + vb; - double baseY = i == 0 || i == 2 ? h - 0.5 - vb : 0.5 + vb; + double posX = xStart + iw * positions01[i]; + double arrowY = i == 0 || i == 2 ? yStart - 3. * s : yEnd + 3. * s; + double baseY = i == 0 || i == 2 ? (double)h - (double)padding.get_bottom() - 0.5 * s : (double)padding.get_top() + 0.5 * s; - style->render_slider(cr, posX, i == 0 || i == 2 ? arrowY : baseY, wslider, i == 0 || i == 2 ? baseY - arrowY : arrowY - baseY, Gtk::ORIENTATION_HORIZONTAL); + style->render_slider(cr, posX - hwslider, i == 0 || i == 2 ? arrowY : baseY, wslider, i == 0 || i == 2 ? baseY - arrowY : arrowY - baseY, Gtk::ORIENTATION_HORIZONTAL); } style->set_state(currState); - - /* - * - Gtk::StateFlags state = !is_sensitive() ? Gtk::STATE_FLAG_INSENSITIVE : Gtk::STATE_FLAG_NORMAL; - - cr->set_line_width (1.); - for (int i=0; i<(doubleThresh?4:2); i++) { - double posX = hb+hwslider+iw*positions01[i]+0.5; - double arrowY = i==0 || i==2 ? h-(h*2.5/7.-0.5)-vb : h*2.5/7.-0.5+vb; - double baseY = i==0 || i==2 ? h-0.5-vb : 0.5+vb; - double centerY = (arrowY+baseY)/2.; - cr->move_to (posX, arrowY); - cr->line_to (posX+hwslider, centerY); - cr->line_to (posX+hwslider, baseY); - cr->line_to (posX-hwslider, baseY); - cr->line_to (posX-hwslider, centerY); - cr->close_path(); - if (i==movedCursor) { - // moved (selected) - c = style->get_background_color(Gtk::STATE_FLAG_SELECTED); - cr->set_source_rgb (c.get_red(), c.get_green(), c.get_blue()); - cr->fill_preserve (); - c = style->get_border_color (Gtk::STATE_FLAG_SELECTED); - cr->set_source_rgb (c.get_red(), c.get_green(), c.get_blue()); - cr->stroke (); - } - else if (i==secondaryMovedCursor || (movedCursor==TS_UNDEFINED && i==litCursor)) { - // prelight - c = style->get_background_color(Gtk::STATE_FLAG_PRELIGHT); - cr->set_source_rgb (c.get_red(), c.get_green(), c.get_blue()); - cr->fill_preserve (); - c = style->get_border_color (Gtk::STATE_FLAG_PRELIGHT); - cr->set_source_rgb (c.get_red(), c.get_green(), c.get_blue()); - cr->stroke (); - } - else { - // normal - c = style->get_background_color(is_sensitive() ? Gtk::STATE_FLAG_ACTIVE : Gtk::STATE_FLAG_INSENSITIVE); - cr->set_source_rgb (c.get_red(), c.get_green(), c.get_blue()); - cr->fill_preserve (); - c = style->get_border_color (is_sensitive() ? Gtk::STATE_FLAG_ACTIVE : Gtk::STATE_FLAG_INSENSITIVE); - cr->set_source_rgb (c.get_red(), c.get_green(), c.get_blue()); - cr->stroke (); - } - } - */ - //} } bool ThresholdSelector::on_draw(const ::Cairo::RefPtr< Cairo::Context> &cr) { // on_realize & updateBackBuffer have to be called before - if (get_realized() && get_width() && get_height()) { + if (get_realized() && get_allocated_width() && get_allocated_height()) { if (isDirty()) { updateBackBuffer(); } @@ -528,7 +503,20 @@ bool ThresholdSelector::on_leave_notify_event (GdkEventCrossing* event) bool ThresholdSelector::on_motion_notify_event (GdkEventMotion* event) { - int w = get_width (); + int w = get_allocated_width (); + Glib::RefPtr style = get_style_context(); + Gtk::Border padding = getPadding(style); // already scaled + + double s = (double)RTScalable::getScale(); + double wslider = sliderWidth * s; // constant must be an odd value + double hwslider = wslider / 2.; + + double innerBarX = (double)padding.get_left() + hwslider - 0.5 * s; + double innerBarW = (double)w - innerBarX - (double)padding.get_right() - hwslider - 0.5 * s; + + double xStart = innerBarX + 0.5 * s; + double xEnd = innerBarX + innerBarW - 0.5 * s; + double iw = xEnd - xStart; findLitCursor(event->x, event->y); @@ -547,7 +535,7 @@ bool ThresholdSelector::on_motion_notify_event (GdkEventMotion* event) dRange = maxValTop - minValTop; } - double dX = ( (event->x - tmpX) * dRange ) / ( w - 2 * hb ); + double dX = ( (event->x - tmpX) * dRange ) / iw; // slow motion if CTRL is pressed if (event->state & Gdk::CONTROL_MASK) { @@ -584,9 +572,9 @@ bool ThresholdSelector::on_motion_notify_event (GdkEventMotion* event) // update the tooltip updateTooltip(); - sig_val_changed.emit(); - queue_draw (); + + sig_val_changed.emit(); } else { if (litCursor != oldLitCursor) { queue_draw (); @@ -601,18 +589,27 @@ bool ThresholdSelector::on_motion_notify_event (GdkEventMotion* event) void ThresholdSelector::findLitCursor(int posX, int posY) { - int w = get_width (); - int h = get_height (); + int w = get_allocated_width (); + int h = get_allocated_height (); + Glib::RefPtr style = get_style_context(); + Gtk::Border padding = getPadding(style); // already scaled + + double s = (double)RTScalable::getScale(); + double wslider = sliderWidth * s; // constant must be an odd value + double hwslider = wslider / 2.; + + double innerBarX = (double)padding.get_left() + hwslider - 0.5 * s; + double innerBarW = (double)w - innerBarX - (double)padding.get_right() - hwslider - 0.5 * s; litCursor = TS_UNDEFINED; if (posY >= 0 && posY <= h / 2) { - if (posX > 0 && posX < w) { + if (posX >= (int)(innerBarX - hwslider) && posX <= (int)(innerBarX + innerBarW + hwslider)) { litCursor = TS_TOPLEFT; if (doubleThresh) { // we use minValTop since if this block is executed, it means that we are in a simple Threshold where both bottom and top range are the same - double cursorX = (posX - hb) * (maxValTop - minValTop) / (w - 2 * hb) + minValTop; + double cursorX = ((double)posX - innerBarX) * (maxValTop - minValTop) / innerBarW + minValTop; if (cursorX > positions[TS_TOPRIGHT] || std::fabs(cursorX - positions[TS_TOPRIGHT]) < std::fabs(cursorX - positions[TS_TOPLEFT])) { litCursor = TS_TOPRIGHT; @@ -620,12 +617,12 @@ void ThresholdSelector::findLitCursor(int posX, int posY) } } } else if (posY > h / 2 && posY < h) { - if (posX > 0 && posX < w) { + if (posX >= (int)(innerBarX - hwslider) && posX <= (int)(innerBarX + innerBarW + hwslider)) { litCursor = TS_BOTTOMLEFT; if (doubleThresh) { // we use minValTop since if this block is executed, it means that we are in a simple Threshold where both bottom and top range are the same - double cursorX = (posX - hb) * (maxValTop - minValTop) / (w - 2 * hb) + minValTop; + double cursorX = ((double)posX - innerBarX) * (maxValTop - minValTop) / innerBarW + minValTop; if (cursorX > positions[TS_BOTTOMRIGHT] || std::fabs(cursorX - positions[TS_BOTTOMRIGHT]) < std::fabs(cursorX - positions[TS_BOTTOMLEFT])) { litCursor = TS_BOTTOMRIGHT; diff --git a/rtgui/thresholdselector.h b/rtgui/thresholdselector.h index 0b0f46d5f..fff707959 100644 --- a/rtgui/thresholdselector.h +++ b/rtgui/thresholdselector.h @@ -100,8 +100,8 @@ protected: double positions[4]; eUpdatePolicy updatePolicy; - const static int hb = 3; // horizontal border - const static int vb = 0; // vertical border + constexpr static double sliderWidth = 11.; // constant must be an odd value + constexpr static double verticalSliderPaddingFactor = 1.5 / 7.; void initValues (); void findLitCursor(int posX, int posY); diff --git a/rtgui/thumbbrowserbase.cc b/rtgui/thumbbrowserbase.cc index 6c15411a1..334f00e51 100644 --- a/rtgui/thumbbrowserbase.cc +++ b/rtgui/thumbbrowserbase.cc @@ -698,6 +698,11 @@ void ThumbBrowserBase::enableInspector() } } +bool ThumbBrowserBase::Internal::on_configure_event(GdkEventConfigure *configure_event) +{ + return true; +} + void ThumbBrowserBase::Internal::on_style_updated() { style = get_style_context (); @@ -900,14 +905,14 @@ Gtk::SizeRequestMode ThumbBrowserBase::Internal::get_request_mode_vfunc () const void ThumbBrowserBase::Internal::get_preferred_height_vfunc (int &minimum_height, int &natural_height) const { - minimum_height = 20; - natural_height = 80; + minimum_height = 20 * RTScalable::getScale(); + natural_height = 80 * RTScalable::getScale(); } void ThumbBrowserBase::Internal::get_preferred_width_vfunc (int &minimum_width, int &natural_width) const { - minimum_width = 200; - natural_width = 1000; + minimum_width = 200 * RTScalable::getScale(); + natural_width = 1000 * RTScalable::getScale(); } void ThumbBrowserBase::Internal::get_preferred_height_for_width_vfunc (int width, int &minimum_height, int &natural_height) const diff --git a/rtgui/thumbbrowserbase.h b/rtgui/thumbbrowserbase.h index dbc9374a0..dcda30f92 100644 --- a/rtgui/thumbbrowserbase.h +++ b/rtgui/thumbbrowserbase.h @@ -51,6 +51,7 @@ class ThumbBrowserBase : public Gtk::Grid void setParent (ThumbBrowserBase* p); void on_realize() override; void on_style_updated() override; + bool on_configure_event(GdkEventConfigure *configure_event) override; bool on_draw(const ::Cairo::RefPtr< Cairo::Context> &cr) override; Gtk::SizeRequestMode get_request_mode_vfunc () const override; diff --git a/rtgui/whitebalance.cc b/rtgui/whitebalance.cc index 02fb8d793..3c3382bc3 100644 --- a/rtgui/whitebalance.cc +++ b/rtgui/whitebalance.cc @@ -35,27 +35,22 @@ using namespace rtengine; using namespace rtengine::procparams; Glib::RefPtr WhiteBalance::wbPixbufs[toUnderlying(WBEntry::Type::CUSTOM) + 1]; -/* -Glib::RefPtr WhiteBalance::wbCameraPB, WhiteBalance::wbAutoPB, WhiteBalance::wbSunPB, WhiteBalance::wbTungstenPB, - WhiteBalance::wbCloudyPB, WhiteBalance::wbShadePB, WhiteBalance::wbFluorescentPB, WhiteBalance::wbLampPB, - WhiteBalance::wbFlashPB, WhiteBalance::wbLedPB, WhiteBalance::wbCustomPB; -*/ void WhiteBalance::init () { - wbPixbufs[toUnderlying(WBEntry::Type::CAMERA)] = RTImage::createFromFile ("wb-camera-small.png"); - wbPixbufs[toUnderlying(WBEntry::Type::AUTO)] = RTImage::createFromFile ("wb-auto-small.png"); - wbPixbufs[toUnderlying(WBEntry::Type::DAYLIGHT)] = RTImage::createFromFile ("wb-sun-small.png"); - wbPixbufs[toUnderlying(WBEntry::Type::CLOUDY)] = RTImage::createFromFile ("wb-cloudy-small.png"); - wbPixbufs[toUnderlying(WBEntry::Type::SHADE)] = RTImage::createFromFile ("wb-shade-small.png"); - wbPixbufs[toUnderlying(WBEntry::Type::WATER)] = RTImage::createFromFile ("wb-water-small.png"); - //wbPixbufs[WBEntry::Type::WATER2] = RTImage::createFromFile ("wb-water-small.png"); - wbPixbufs[toUnderlying(WBEntry::Type::TUNGSTEN)] = RTImage::createFromFile ("wb-tungsten-small.png"); - wbPixbufs[toUnderlying(WBEntry::Type::FLUORESCENT)] = RTImage::createFromFile ("wb-fluorescent-small.png"); - wbPixbufs[toUnderlying(WBEntry::Type::LAMP)] = RTImage::createFromFile ("wb-lamp-small.png"); - wbPixbufs[toUnderlying(WBEntry::Type::FLASH)] = RTImage::createFromFile ("wb-flash-small.png"); - wbPixbufs[toUnderlying(WBEntry::Type::LED)] = RTImage::createFromFile ("wb-led-small.png"); - wbPixbufs[toUnderlying(WBEntry::Type::CUSTOM)] = RTImage::createFromFile ("wb-custom-small.png"); + wbPixbufs[toUnderlying(WBEntry::Type::CAMERA)] = RTImage::createPixbufFromFile ("wb-camera-small.png"); + wbPixbufs[toUnderlying(WBEntry::Type::AUTO)] = RTImage::createPixbufFromFile ("wb-auto-small.png"); + wbPixbufs[toUnderlying(WBEntry::Type::DAYLIGHT)] = RTImage::createPixbufFromFile ("wb-sun-small.png"); + wbPixbufs[toUnderlying(WBEntry::Type::CLOUDY)] = RTImage::createPixbufFromFile ("wb-cloudy-small.png"); + wbPixbufs[toUnderlying(WBEntry::Type::SHADE)] = RTImage::createPixbufFromFile ("wb-shade-small.png"); + wbPixbufs[toUnderlying(WBEntry::Type::WATER)] = RTImage::createPixbufFromFile ("wb-water-small.png"); + //wbPixbufs[toUnderlying(WBEntry::Type::WATER2)] = RTImage::createPixbufFromFile ("wb-water-small.png"); + wbPixbufs[toUnderlying(WBEntry::Type::TUNGSTEN)] = RTImage::createPixbufFromFile ("wb-tungsten-small.png"); + wbPixbufs[toUnderlying(WBEntry::Type::FLUORESCENT)] = RTImage::createPixbufFromFile ("wb-fluorescent-small.png"); + wbPixbufs[toUnderlying(WBEntry::Type::LAMP)] = RTImage::createPixbufFromFile ("wb-lamp-small.png"); + wbPixbufs[toUnderlying(WBEntry::Type::FLASH)] = RTImage::createPixbufFromFile ("wb-flash-small.png"); + wbPixbufs[toUnderlying(WBEntry::Type::LED)] = RTImage::createPixbufFromFile ("wb-led-small.png"); + wbPixbufs[toUnderlying(WBEntry::Type::CUSTOM)] = RTImage::createPixbufFromFile ("wb-custom-small.png"); } void WhiteBalance::cleanup () diff --git a/tools/win/InnoSetup/WindowsInnoSetup.iss.in b/tools/win/InnoSetup/WindowsInnoSetup.iss.in index b9b3aa8ec..e4ae43536 100644 --- a/tools/win/InnoSetup/WindowsInnoSetup.iss.in +++ b/tools/win/InnoSetup/WindowsInnoSetup.iss.in @@ -50,7 +50,7 @@ AllowNoIcons=yes LicenseFile={#MyBuildBasePath}\LICENSE.txt OutputDir={#MyBuildBasePath}\..\ OutputBaseFilename={#MyAppName}_{#MyAppVersion}_{#MySystemName}_{#MyBitDepth} -SetupIconFile={#MySourceBasePath}\rtdata\images\non-themed\rawtherapee.ico +SetupIconFile={#MySourceBasePath}\rtdata\images\rawtherapee.ico WizardImageFile={#MySourceBasePath}\tools\win\InnoSetup\installerStrip.bmp WizardImageBackColor=$2A2A2A Compression=lzma