From 710f9a2ff24508a082256bea65882d1456b5da84 Mon Sep 17 00:00:00 2001 From: Bagwan Shahabaz <> Date: Thu, 29 Jun 2023 13:21:21 +0200 Subject: [PATCH 1/6] move .ui files to src/ for auto compilation to work --- ImagePlay/{ui => src}/AboutWindow.ui | 0 ImagePlay/{ui => src}/ImageViewerWindow.ui | 0 ImagePlay/{ui => src}/MainWindow.ui | 0 ImagePlay/{ui => src}/PluginGenerator.ui | 0 ImagePlay/{ui => src}/SettingsWindow.ui | 0 ImagePlay/{ui => src}/TutorialDialog.ui | 0 6 files changed, 0 insertions(+), 0 deletions(-) rename ImagePlay/{ui => src}/AboutWindow.ui (100%) rename ImagePlay/{ui => src}/ImageViewerWindow.ui (100%) rename ImagePlay/{ui => src}/MainWindow.ui (100%) rename ImagePlay/{ui => src}/PluginGenerator.ui (100%) rename ImagePlay/{ui => src}/SettingsWindow.ui (100%) rename ImagePlay/{ui => src}/TutorialDialog.ui (100%) diff --git a/ImagePlay/ui/AboutWindow.ui b/ImagePlay/src/AboutWindow.ui similarity index 100% rename from ImagePlay/ui/AboutWindow.ui rename to ImagePlay/src/AboutWindow.ui diff --git a/ImagePlay/ui/ImageViewerWindow.ui b/ImagePlay/src/ImageViewerWindow.ui similarity index 100% rename from ImagePlay/ui/ImageViewerWindow.ui rename to ImagePlay/src/ImageViewerWindow.ui diff --git a/ImagePlay/ui/MainWindow.ui b/ImagePlay/src/MainWindow.ui similarity index 100% rename from ImagePlay/ui/MainWindow.ui rename to ImagePlay/src/MainWindow.ui diff --git a/ImagePlay/ui/PluginGenerator.ui b/ImagePlay/src/PluginGenerator.ui similarity index 100% rename from ImagePlay/ui/PluginGenerator.ui rename to ImagePlay/src/PluginGenerator.ui diff --git a/ImagePlay/ui/SettingsWindow.ui b/ImagePlay/src/SettingsWindow.ui similarity index 100% rename from ImagePlay/ui/SettingsWindow.ui rename to ImagePlay/src/SettingsWindow.ui diff --git a/ImagePlay/ui/TutorialDialog.ui b/ImagePlay/src/TutorialDialog.ui similarity index 100% rename from ImagePlay/ui/TutorialDialog.ui rename to ImagePlay/src/TutorialDialog.ui From e1372b3c185241b974e1cc895fc5b8d719eb079d Mon Sep 17 00:00:00 2001 From: Bagwan Shahabaz <> Date: Thu, 29 Jun 2023 13:21:56 +0200 Subject: [PATCH 2/6] Add CMakeLists.txt for project folder --- .gitignore | 3 +++ CMakeLists.txt | 13 +++++++++++++ 2 files changed, 16 insertions(+) create mode 100644 CMakeLists.txt diff --git a/.gitignore b/.gitignore index 36920cd..2970a65 100644 --- a/.gitignore +++ b/.gitignore @@ -55,3 +55,6 @@ ImagePlay.VC.db IPL/release/ IPL/debug/ IPL/lib/ + +# cmake build dir +[bB]uild/ diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..ffc6f4d --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,13 @@ +cmake_minimum_required(VERSION 3.16) +project( + ImagePlayMain + VERSION 1.0 + LANGUAGES C CXX) + +include(GNUInstallDirs) + +set(EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/build/bin) +set(LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/build/lib) + +add_subdirectory(IPL) +add_subdirectory(ImagePlay) From 1e3948766afe52a49aaac1f73b0b74e794646f35 Mon Sep 17 00:00:00 2001 From: Bagwan Shahabaz <> Date: Thu, 29 Jun 2023 13:22:20 +0200 Subject: [PATCH 3/6] Add cmakelists for IPL folder --- IPL/CMakeLists.txt | 53 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 IPL/CMakeLists.txt diff --git a/IPL/CMakeLists.txt b/IPL/CMakeLists.txt new file mode 100644 index 0000000..b1f2d3a --- /dev/null +++ b/IPL/CMakeLists.txt @@ -0,0 +1,53 @@ +cmake_minimum_required(VERSION 3.1) + +# Define project name +project(IPL) + +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC") +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC") +set(CMAKE_POSITION_INDEPENDENT_CODE ON) + +set(${${TargetName}_COMPILE_OPTIONS} -g -O0) + +set(CXX_STANDARD 11) +set(CXX_STANDARD_REQUIRED TRUE) +set(CXX_EXTENSIONS FALSE) + +file(GLOB_RECURSE SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp") + +add_library(${PROJECT_NAME} SHARED ${SOURCES}) + +find_package(OpenCV 4 REQUIRED) +message(STATUS " OpenCV library status: ") +message(STATUS " config: ${OpenCV_DIR} ") +message(STATUS " version: ${OpenCV_VERSION} ") +message(STATUS " libraries: ${OpenCV_LIBS} ") +message(STATUS " include path: ${OpenCV_INCLUDE_DIRS} ") + +target_include_directories( + ${PROJECT_NAME} + PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/include" ${OpenCV_INCLUDE_DIRS} + "${CMAKE_CURRENT_SOURCE_DIR}/include/processes") + +target_compile_definitions(${PROJECT_NAME} PUBLIC ${PROJECT_NAME}_LIBRARY) + +target_link_libraries(${PROJECT_NAME} PUBLIC ${OpenCV_LIBS} freeimage) + +set_target_properties(${PROJECT_NAME} PROPERTIES INSTALL_RPATH_USE_LINK_PATH + TRUE) + +if(CLANG) + target_compile_options(${PROJECT_NAME} -openmp) +endif() + +if(GCC AND NOT CLANG) + target_link_libraries(${PROJECT_NAME} PUBLIC gomp) + + target_compile_options(${PROJECT_NAME} -fopenmp) +endif() + +install( + TARGETS ${PROJECT_NAME} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + FRAMEWORK DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) From afacc5bf217a257869c8ff8d41f9a956fb73142e Mon Sep 17 00:00:00 2001 From: Bagwan Shahabaz <> Date: Thu, 29 Jun 2023 13:22:37 +0200 Subject: [PATCH 4/6] Add cmakelists for ImagePlay folder --- ImagePlay/CMakeLists.txt | 97 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 ImagePlay/CMakeLists.txt diff --git a/ImagePlay/CMakeLists.txt b/ImagePlay/CMakeLists.txt new file mode 100644 index 0000000..e47f732 --- /dev/null +++ b/ImagePlay/CMakeLists.txt @@ -0,0 +1,97 @@ +cmake_minimum_required(VERSION 3.1) + +# Define project name +project(ImagePlay) + +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC") +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC") +set(CMAKE_POSITION_INDEPENDENT_CODE ON) + +set(${${TargetName}_COMPILE_OPTIONS} -g -O0) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +if(CMAKE_VERSION VERSION_LESS "3.7.0") + set(CMAKE_INCLUDE_CURRENT_DIR ON) +endif() + +set(CXX_STANDARD 11) +set(CXX_STANDARD_REQUIRED ON) +set(CXX_EXTENSIONS OFF) + +file(GLOB_RECURSE SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp") +file(GLOB_RECURSE HEADERS "${CMAKE_CURRENT_SOURCE_DIR}/include/*.h") +file(GLOB_RECURSE QRC_FILES "${CMAKE_CURRENT_SOURCE_DIR}/res/*.qrc") + +set(PLUGIN_DIR ${CMAKE_CURRENT_SOURCE_DIR}/media/plugin_development) + +add_executable(${PROJECT_NAME} ${SOURCES} ${HEADERS} ${PLUGIN_SRC} + ${PLUGIN_HEADERS} ${QRC_FILES}) +set_target_properties(${PROJECT_NAME} PROPERTIES INSTALL_RPATH_USE_LINK_PATH + TRUE) + +target_include_directories( + ${PROJECT_NAME} + PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/include/" + "${CMAKE_CURRENT_SOURCE_DIR}/../IPL/include/" + "${CMAKE_CURRENT_SOURCE_DIR}/../IPL/include/processes/" + ${OpenCV_INCLUDE_DIRS}) + +target_compile_definitions( + ${PROJECT_NAME} + PRIVATE IMAGEPLAY_APPCAST_URL="http://cpvrlab.github.io/ImagePlay/Appcast.xml" + IMAGEPLAY_URL="http://cpvrlab.github.io/ImagePlay") + +find_package( + Qt5 + COMPONENTS Core Widgets Gui + REQUIRED) + +target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Core Qt5::Gui Qt5::Widgets) + +if(TEMPLATE___equals___app) + target_compile_definitions( + ${PROJECT_NAME} + PRIVATE APP_COMPANY="BFH" + APP_COPYRIGHT=" " + APP_DESCRIPTION=" " + APP_NAME="ImagePlay" + APP_PRODUCT="ImagePlay" + APP_VERSION="6.1.0" + LINUX_PATH_PREFIX="/usr/share/imageplay/") +endif() + +if(NOT TEMPLATE___equals___app) + target_compile_definitions( + ${PROJECT_NAME} + PRIVATE APP_COMPANY="BFH" + APP_COPYRIGHT=" " + APP_DESCRIPTION=" " + APP_NAME="ImagePlay" + APP_PRODUCT="${PROJECT_NAME}" + APP_VERSION="6.1.0" + LINUX_PATH_PREFIX="/usr/share/${PROJECT_NAME}/") +endif() + +if(LINUX) + target_link_libraries(${PROJECT_NAME} PRIVATE IPL dl) +endif() + +if(GCC AND NOT CLANG) + target_link_libraries(${PROJECT_NAME} PRIVATE gomp) +endif() + +if(_ss_USE_FERVOR_UPDATER) + target_compile_definitions(${PROJECT_NAME} PRIVATE USE_FERVOR_UPDATER) +endif() + +install( + TARGETS ${PROJECT_NAME} + BUNDLE DESTINATION . + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) + +# Consider using qt_generate_deploy_app_script() for app deployment if the +# project can use Qt 6.3. In that case rerun qmake2cmake with +# --min-qt-version=6.3. From 360cca40db3799155df5fbf201eacce9bc68195d Mon Sep 17 00:00:00 2001 From: Bagwan Shahabaz <> Date: Tue, 4 Jul 2023 14:54:15 +0200 Subject: [PATCH 5/6] compile process_icons with binary --- ImagePlay/CMakeLists.txt | 33 +++------ .../process_icons/IPLAddNoise.png | Bin .../process_icons/IPLAgglomerate.png | Bin .../process_icons/IPLArithmeticOperations.png | Bin .../IPLArithmeticOperationsConstant.png | Bin .../process_icons/IPLBinarize.png | Bin .../process_icons/IPLBinarizeEntropy.png | Bin .../process_icons/IPLBinarizeKMeans.png | Bin .../process_icons/IPLBinarizeOtsu.png | Bin .../process_icons/IPLBinarizeSavola.png | Bin .../process_icons/IPLBinarizeUnimodal.png | Bin .../process_icons/IPLBlendImages.png | Bin .../process_icons/IPLCamera.png | Bin .../{media => res}/process_icons/IPLCanny.png | Bin .../process_icons/IPLCanvasSize.png | Bin .../process_icons/IPLCompassMask.png | Bin .../process_icons/IPLConvertToColor.png | Bin .../process_icons/IPLConvertToGray.png | Bin .../process_icons/IPLConvolutionFilter.png | Bin .../process_icons/IPLEnhanceMode.png | Bin .../process_icons/IPLEqualizeHistogram.png | Bin .../process_icons/IPLExtractLines.png | Bin .../process_icons/IPLExtrema.png | Bin .../{media => res}/process_icons/IPLFFT.png | Bin .../process_icons/IPLFalseColor.png | Bin .../process_icons/IPLFillConcavities.png | Bin .../process_icons/IPLFlipImage.png | Bin .../process_icons/IPLFrequencyFilter.png | Bin .../{media => res}/process_icons/IPLGabor.png | Bin .../process_icons/IPLGammaCorrection.png | Bin .../process_icons/IPLGaussianLowPass.png | Bin .../process_icons/IPLGradientOperator.png | Bin .../process_icons/IPLHysteresisThreshold.png | Bin .../{media => res}/process_icons/IPLIFFT.png | Bin .../IPLInverseContrastRatioMapping.png | Bin .../process_icons/IPLLabelBlobs.png | Bin .../process_icons/IPLLaplaceOfGaussian.png | Bin .../process_icons/IPLLoadImage.png | Bin .../process_icons/IPLLoadImageSequence.png | Bin .../process_icons/IPLLocalThreshold.png | Bin .../process_icons/IPLMarkImage.png | Bin .../{media => res}/process_icons/IPLMax.png | Bin .../process_icons/IPLMaxMinMedian.png | Bin .../process_icons/IPLMedian.png | Bin .../process_icons/IPLMergePlanes.png | Bin .../{media => res}/process_icons/IPLMin.png | Bin .../process_icons/IPLMorphologicalEdge.png | Bin .../process_icons/IPLMorphologyBinary.png | Bin .../process_icons/IPLMorphologyGrayscale.png | Bin .../process_icons/IPLMorphologyHitMiss.png | Bin .../process_icons/IPLMultiplyConstant.png | Bin .../process_icons/IPLNegate.png | Bin .../IPLNormalizeIllumination.png | Bin .../process_icons/IPLOnePixelEdge.png | Bin .../process_icons/IPLRankTransform.png | Bin .../process_icons/IPLResize.png | Bin .../process_icons/IPLRotate.png | Bin .../process_icons/IPLSaveImage.png | Bin .../process_icons/IPLSplitPlanes.png | Bin .../process_icons/IPLStretchContrast.png | Bin .../process_icons/IPLSubstractImages.png | Bin .../process_icons/IPLSynthesize.png | Bin .../process_icons/IPLTriangleSegmentation.png | Bin .../process_icons/IPLUnsharpMasking.png | Bin .../{media => res}/process_icons/Plugin.png | Bin ImagePlay/res/ressources.qrc | 64 ++++++++++++++++++ ImagePlay/src/IPProcessList.cpp | 25 +++---- ImagePlay/src/IPProcessListTabWidget.cpp | 7 +- 68 files changed, 83 insertions(+), 46 deletions(-) rename ImagePlay/{media => res}/process_icons/IPLAddNoise.png (100%) rename ImagePlay/{media => res}/process_icons/IPLAgglomerate.png (100%) rename ImagePlay/{media => res}/process_icons/IPLArithmeticOperations.png (100%) rename ImagePlay/{media => res}/process_icons/IPLArithmeticOperationsConstant.png (100%) rename ImagePlay/{media => res}/process_icons/IPLBinarize.png (100%) rename ImagePlay/{media => res}/process_icons/IPLBinarizeEntropy.png (100%) rename ImagePlay/{media => res}/process_icons/IPLBinarizeKMeans.png (100%) rename ImagePlay/{media => res}/process_icons/IPLBinarizeOtsu.png (100%) rename ImagePlay/{media => res}/process_icons/IPLBinarizeSavola.png (100%) rename ImagePlay/{media => res}/process_icons/IPLBinarizeUnimodal.png (100%) rename ImagePlay/{media => res}/process_icons/IPLBlendImages.png (100%) rename ImagePlay/{media => res}/process_icons/IPLCamera.png (100%) rename ImagePlay/{media => res}/process_icons/IPLCanny.png (100%) rename ImagePlay/{media => res}/process_icons/IPLCanvasSize.png (100%) rename ImagePlay/{media => res}/process_icons/IPLCompassMask.png (100%) rename ImagePlay/{media => res}/process_icons/IPLConvertToColor.png (100%) rename ImagePlay/{media => res}/process_icons/IPLConvertToGray.png (100%) rename ImagePlay/{media => res}/process_icons/IPLConvolutionFilter.png (100%) rename ImagePlay/{media => res}/process_icons/IPLEnhanceMode.png (100%) rename ImagePlay/{media => res}/process_icons/IPLEqualizeHistogram.png (100%) rename ImagePlay/{media => res}/process_icons/IPLExtractLines.png (100%) rename ImagePlay/{media => res}/process_icons/IPLExtrema.png (100%) rename ImagePlay/{media => res}/process_icons/IPLFFT.png (100%) rename ImagePlay/{media => res}/process_icons/IPLFalseColor.png (100%) rename ImagePlay/{media => res}/process_icons/IPLFillConcavities.png (100%) rename ImagePlay/{media => res}/process_icons/IPLFlipImage.png (100%) rename ImagePlay/{media => res}/process_icons/IPLFrequencyFilter.png (100%) rename ImagePlay/{media => res}/process_icons/IPLGabor.png (100%) rename ImagePlay/{media => res}/process_icons/IPLGammaCorrection.png (100%) rename ImagePlay/{media => res}/process_icons/IPLGaussianLowPass.png (100%) rename ImagePlay/{media => res}/process_icons/IPLGradientOperator.png (100%) rename ImagePlay/{media => res}/process_icons/IPLHysteresisThreshold.png (100%) rename ImagePlay/{media => res}/process_icons/IPLIFFT.png (100%) rename ImagePlay/{media => res}/process_icons/IPLInverseContrastRatioMapping.png (100%) rename ImagePlay/{media => res}/process_icons/IPLLabelBlobs.png (100%) rename ImagePlay/{media => res}/process_icons/IPLLaplaceOfGaussian.png (100%) rename ImagePlay/{media => res}/process_icons/IPLLoadImage.png (100%) rename ImagePlay/{media => res}/process_icons/IPLLoadImageSequence.png (100%) rename ImagePlay/{media => res}/process_icons/IPLLocalThreshold.png (100%) rename ImagePlay/{media => res}/process_icons/IPLMarkImage.png (100%) rename ImagePlay/{media => res}/process_icons/IPLMax.png (100%) rename ImagePlay/{media => res}/process_icons/IPLMaxMinMedian.png (100%) rename ImagePlay/{media => res}/process_icons/IPLMedian.png (100%) rename ImagePlay/{media => res}/process_icons/IPLMergePlanes.png (100%) rename ImagePlay/{media => res}/process_icons/IPLMin.png (100%) rename ImagePlay/{media => res}/process_icons/IPLMorphologicalEdge.png (100%) rename ImagePlay/{media => res}/process_icons/IPLMorphologyBinary.png (100%) rename ImagePlay/{media => res}/process_icons/IPLMorphologyGrayscale.png (100%) rename ImagePlay/{media => res}/process_icons/IPLMorphologyHitMiss.png (100%) rename ImagePlay/{media => res}/process_icons/IPLMultiplyConstant.png (100%) rename ImagePlay/{media => res}/process_icons/IPLNegate.png (100%) rename ImagePlay/{media => res}/process_icons/IPLNormalizeIllumination.png (100%) rename ImagePlay/{media => res}/process_icons/IPLOnePixelEdge.png (100%) rename ImagePlay/{media => res}/process_icons/IPLRankTransform.png (100%) rename ImagePlay/{media => res}/process_icons/IPLResize.png (100%) rename ImagePlay/{media => res}/process_icons/IPLRotate.png (100%) rename ImagePlay/{media => res}/process_icons/IPLSaveImage.png (100%) rename ImagePlay/{media => res}/process_icons/IPLSplitPlanes.png (100%) rename ImagePlay/{media => res}/process_icons/IPLStretchContrast.png (100%) rename ImagePlay/{media => res}/process_icons/IPLSubstractImages.png (100%) rename ImagePlay/{media => res}/process_icons/IPLSynthesize.png (100%) rename ImagePlay/{media => res}/process_icons/IPLTriangleSegmentation.png (100%) rename ImagePlay/{media => res}/process_icons/IPLUnsharpMasking.png (100%) rename ImagePlay/{media => res}/process_icons/Plugin.png (100%) diff --git a/ImagePlay/CMakeLists.txt b/ImagePlay/CMakeLists.txt index e47f732..9c096d2 100644 --- a/ImagePlay/CMakeLists.txt +++ b/ImagePlay/CMakeLists.txt @@ -29,6 +29,7 @@ set(PLUGIN_DIR ${CMAKE_CURRENT_SOURCE_DIR}/media/plugin_development) add_executable(${PROJECT_NAME} ${SOURCES} ${HEADERS} ${PLUGIN_SRC} ${PLUGIN_HEADERS} ${QRC_FILES}) + set_target_properties(${PROJECT_NAME} PROPERTIES INSTALL_RPATH_USE_LINK_PATH TRUE) @@ -51,29 +52,15 @@ find_package( target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Core Qt5::Gui Qt5::Widgets) -if(TEMPLATE___equals___app) - target_compile_definitions( - ${PROJECT_NAME} - PRIVATE APP_COMPANY="BFH" - APP_COPYRIGHT=" " - APP_DESCRIPTION=" " - APP_NAME="ImagePlay" - APP_PRODUCT="ImagePlay" - APP_VERSION="6.1.0" - LINUX_PATH_PREFIX="/usr/share/imageplay/") -endif() - -if(NOT TEMPLATE___equals___app) - target_compile_definitions( - ${PROJECT_NAME} - PRIVATE APP_COMPANY="BFH" - APP_COPYRIGHT=" " - APP_DESCRIPTION=" " - APP_NAME="ImagePlay" - APP_PRODUCT="${PROJECT_NAME}" - APP_VERSION="6.1.0" - LINUX_PATH_PREFIX="/usr/share/${PROJECT_NAME}/") -endif() +target_compile_definitions( + ${PROJECT_NAME} + PRIVATE APP_COMPANY="BFH" + APP_COPYRIGHT=" " + APP_DESCRIPTION=" " + APP_NAME="${PROJECT_NAME}" + APP_PRODUCT="${PROJECT_NAME}" + APP_VERSION="6.1.0" + LINUX_PATH_PREFIX="/usr/share/${PROJECT_NAME}/") if(LINUX) target_link_libraries(${PROJECT_NAME} PRIVATE IPL dl) diff --git a/ImagePlay/media/process_icons/IPLAddNoise.png b/ImagePlay/res/process_icons/IPLAddNoise.png similarity index 100% rename from ImagePlay/media/process_icons/IPLAddNoise.png rename to ImagePlay/res/process_icons/IPLAddNoise.png diff --git a/ImagePlay/media/process_icons/IPLAgglomerate.png b/ImagePlay/res/process_icons/IPLAgglomerate.png similarity index 100% rename from ImagePlay/media/process_icons/IPLAgglomerate.png rename to ImagePlay/res/process_icons/IPLAgglomerate.png diff --git a/ImagePlay/media/process_icons/IPLArithmeticOperations.png b/ImagePlay/res/process_icons/IPLArithmeticOperations.png similarity index 100% rename from ImagePlay/media/process_icons/IPLArithmeticOperations.png rename to ImagePlay/res/process_icons/IPLArithmeticOperations.png diff --git a/ImagePlay/media/process_icons/IPLArithmeticOperationsConstant.png b/ImagePlay/res/process_icons/IPLArithmeticOperationsConstant.png similarity index 100% rename from ImagePlay/media/process_icons/IPLArithmeticOperationsConstant.png rename to ImagePlay/res/process_icons/IPLArithmeticOperationsConstant.png diff --git a/ImagePlay/media/process_icons/IPLBinarize.png b/ImagePlay/res/process_icons/IPLBinarize.png similarity index 100% rename from ImagePlay/media/process_icons/IPLBinarize.png rename to ImagePlay/res/process_icons/IPLBinarize.png diff --git a/ImagePlay/media/process_icons/IPLBinarizeEntropy.png b/ImagePlay/res/process_icons/IPLBinarizeEntropy.png similarity index 100% rename from ImagePlay/media/process_icons/IPLBinarizeEntropy.png rename to ImagePlay/res/process_icons/IPLBinarizeEntropy.png diff --git a/ImagePlay/media/process_icons/IPLBinarizeKMeans.png b/ImagePlay/res/process_icons/IPLBinarizeKMeans.png similarity index 100% rename from ImagePlay/media/process_icons/IPLBinarizeKMeans.png rename to ImagePlay/res/process_icons/IPLBinarizeKMeans.png diff --git a/ImagePlay/media/process_icons/IPLBinarizeOtsu.png b/ImagePlay/res/process_icons/IPLBinarizeOtsu.png similarity index 100% rename from ImagePlay/media/process_icons/IPLBinarizeOtsu.png rename to ImagePlay/res/process_icons/IPLBinarizeOtsu.png diff --git a/ImagePlay/media/process_icons/IPLBinarizeSavola.png b/ImagePlay/res/process_icons/IPLBinarizeSavola.png similarity index 100% rename from ImagePlay/media/process_icons/IPLBinarizeSavola.png rename to ImagePlay/res/process_icons/IPLBinarizeSavola.png diff --git a/ImagePlay/media/process_icons/IPLBinarizeUnimodal.png b/ImagePlay/res/process_icons/IPLBinarizeUnimodal.png similarity index 100% rename from ImagePlay/media/process_icons/IPLBinarizeUnimodal.png rename to ImagePlay/res/process_icons/IPLBinarizeUnimodal.png diff --git a/ImagePlay/media/process_icons/IPLBlendImages.png b/ImagePlay/res/process_icons/IPLBlendImages.png similarity index 100% rename from ImagePlay/media/process_icons/IPLBlendImages.png rename to ImagePlay/res/process_icons/IPLBlendImages.png diff --git a/ImagePlay/media/process_icons/IPLCamera.png b/ImagePlay/res/process_icons/IPLCamera.png similarity index 100% rename from ImagePlay/media/process_icons/IPLCamera.png rename to ImagePlay/res/process_icons/IPLCamera.png diff --git a/ImagePlay/media/process_icons/IPLCanny.png b/ImagePlay/res/process_icons/IPLCanny.png similarity index 100% rename from ImagePlay/media/process_icons/IPLCanny.png rename to ImagePlay/res/process_icons/IPLCanny.png diff --git a/ImagePlay/media/process_icons/IPLCanvasSize.png b/ImagePlay/res/process_icons/IPLCanvasSize.png similarity index 100% rename from ImagePlay/media/process_icons/IPLCanvasSize.png rename to ImagePlay/res/process_icons/IPLCanvasSize.png diff --git a/ImagePlay/media/process_icons/IPLCompassMask.png b/ImagePlay/res/process_icons/IPLCompassMask.png similarity index 100% rename from ImagePlay/media/process_icons/IPLCompassMask.png rename to ImagePlay/res/process_icons/IPLCompassMask.png diff --git a/ImagePlay/media/process_icons/IPLConvertToColor.png b/ImagePlay/res/process_icons/IPLConvertToColor.png similarity index 100% rename from ImagePlay/media/process_icons/IPLConvertToColor.png rename to ImagePlay/res/process_icons/IPLConvertToColor.png diff --git a/ImagePlay/media/process_icons/IPLConvertToGray.png b/ImagePlay/res/process_icons/IPLConvertToGray.png similarity index 100% rename from ImagePlay/media/process_icons/IPLConvertToGray.png rename to ImagePlay/res/process_icons/IPLConvertToGray.png diff --git a/ImagePlay/media/process_icons/IPLConvolutionFilter.png b/ImagePlay/res/process_icons/IPLConvolutionFilter.png similarity index 100% rename from ImagePlay/media/process_icons/IPLConvolutionFilter.png rename to ImagePlay/res/process_icons/IPLConvolutionFilter.png diff --git a/ImagePlay/media/process_icons/IPLEnhanceMode.png b/ImagePlay/res/process_icons/IPLEnhanceMode.png similarity index 100% rename from ImagePlay/media/process_icons/IPLEnhanceMode.png rename to ImagePlay/res/process_icons/IPLEnhanceMode.png diff --git a/ImagePlay/media/process_icons/IPLEqualizeHistogram.png b/ImagePlay/res/process_icons/IPLEqualizeHistogram.png similarity index 100% rename from ImagePlay/media/process_icons/IPLEqualizeHistogram.png rename to ImagePlay/res/process_icons/IPLEqualizeHistogram.png diff --git a/ImagePlay/media/process_icons/IPLExtractLines.png b/ImagePlay/res/process_icons/IPLExtractLines.png similarity index 100% rename from ImagePlay/media/process_icons/IPLExtractLines.png rename to ImagePlay/res/process_icons/IPLExtractLines.png diff --git a/ImagePlay/media/process_icons/IPLExtrema.png b/ImagePlay/res/process_icons/IPLExtrema.png similarity index 100% rename from ImagePlay/media/process_icons/IPLExtrema.png rename to ImagePlay/res/process_icons/IPLExtrema.png diff --git a/ImagePlay/media/process_icons/IPLFFT.png b/ImagePlay/res/process_icons/IPLFFT.png similarity index 100% rename from ImagePlay/media/process_icons/IPLFFT.png rename to ImagePlay/res/process_icons/IPLFFT.png diff --git a/ImagePlay/media/process_icons/IPLFalseColor.png b/ImagePlay/res/process_icons/IPLFalseColor.png similarity index 100% rename from ImagePlay/media/process_icons/IPLFalseColor.png rename to ImagePlay/res/process_icons/IPLFalseColor.png diff --git a/ImagePlay/media/process_icons/IPLFillConcavities.png b/ImagePlay/res/process_icons/IPLFillConcavities.png similarity index 100% rename from ImagePlay/media/process_icons/IPLFillConcavities.png rename to ImagePlay/res/process_icons/IPLFillConcavities.png diff --git a/ImagePlay/media/process_icons/IPLFlipImage.png b/ImagePlay/res/process_icons/IPLFlipImage.png similarity index 100% rename from ImagePlay/media/process_icons/IPLFlipImage.png rename to ImagePlay/res/process_icons/IPLFlipImage.png diff --git a/ImagePlay/media/process_icons/IPLFrequencyFilter.png b/ImagePlay/res/process_icons/IPLFrequencyFilter.png similarity index 100% rename from ImagePlay/media/process_icons/IPLFrequencyFilter.png rename to ImagePlay/res/process_icons/IPLFrequencyFilter.png diff --git a/ImagePlay/media/process_icons/IPLGabor.png b/ImagePlay/res/process_icons/IPLGabor.png similarity index 100% rename from ImagePlay/media/process_icons/IPLGabor.png rename to ImagePlay/res/process_icons/IPLGabor.png diff --git a/ImagePlay/media/process_icons/IPLGammaCorrection.png b/ImagePlay/res/process_icons/IPLGammaCorrection.png similarity index 100% rename from ImagePlay/media/process_icons/IPLGammaCorrection.png rename to ImagePlay/res/process_icons/IPLGammaCorrection.png diff --git a/ImagePlay/media/process_icons/IPLGaussianLowPass.png b/ImagePlay/res/process_icons/IPLGaussianLowPass.png similarity index 100% rename from ImagePlay/media/process_icons/IPLGaussianLowPass.png rename to ImagePlay/res/process_icons/IPLGaussianLowPass.png diff --git a/ImagePlay/media/process_icons/IPLGradientOperator.png b/ImagePlay/res/process_icons/IPLGradientOperator.png similarity index 100% rename from ImagePlay/media/process_icons/IPLGradientOperator.png rename to ImagePlay/res/process_icons/IPLGradientOperator.png diff --git a/ImagePlay/media/process_icons/IPLHysteresisThreshold.png b/ImagePlay/res/process_icons/IPLHysteresisThreshold.png similarity index 100% rename from ImagePlay/media/process_icons/IPLHysteresisThreshold.png rename to ImagePlay/res/process_icons/IPLHysteresisThreshold.png diff --git a/ImagePlay/media/process_icons/IPLIFFT.png b/ImagePlay/res/process_icons/IPLIFFT.png similarity index 100% rename from ImagePlay/media/process_icons/IPLIFFT.png rename to ImagePlay/res/process_icons/IPLIFFT.png diff --git a/ImagePlay/media/process_icons/IPLInverseContrastRatioMapping.png b/ImagePlay/res/process_icons/IPLInverseContrastRatioMapping.png similarity index 100% rename from ImagePlay/media/process_icons/IPLInverseContrastRatioMapping.png rename to ImagePlay/res/process_icons/IPLInverseContrastRatioMapping.png diff --git a/ImagePlay/media/process_icons/IPLLabelBlobs.png b/ImagePlay/res/process_icons/IPLLabelBlobs.png similarity index 100% rename from ImagePlay/media/process_icons/IPLLabelBlobs.png rename to ImagePlay/res/process_icons/IPLLabelBlobs.png diff --git a/ImagePlay/media/process_icons/IPLLaplaceOfGaussian.png b/ImagePlay/res/process_icons/IPLLaplaceOfGaussian.png similarity index 100% rename from ImagePlay/media/process_icons/IPLLaplaceOfGaussian.png rename to ImagePlay/res/process_icons/IPLLaplaceOfGaussian.png diff --git a/ImagePlay/media/process_icons/IPLLoadImage.png b/ImagePlay/res/process_icons/IPLLoadImage.png similarity index 100% rename from ImagePlay/media/process_icons/IPLLoadImage.png rename to ImagePlay/res/process_icons/IPLLoadImage.png diff --git a/ImagePlay/media/process_icons/IPLLoadImageSequence.png b/ImagePlay/res/process_icons/IPLLoadImageSequence.png similarity index 100% rename from ImagePlay/media/process_icons/IPLLoadImageSequence.png rename to ImagePlay/res/process_icons/IPLLoadImageSequence.png diff --git a/ImagePlay/media/process_icons/IPLLocalThreshold.png b/ImagePlay/res/process_icons/IPLLocalThreshold.png similarity index 100% rename from ImagePlay/media/process_icons/IPLLocalThreshold.png rename to ImagePlay/res/process_icons/IPLLocalThreshold.png diff --git a/ImagePlay/media/process_icons/IPLMarkImage.png b/ImagePlay/res/process_icons/IPLMarkImage.png similarity index 100% rename from ImagePlay/media/process_icons/IPLMarkImage.png rename to ImagePlay/res/process_icons/IPLMarkImage.png diff --git a/ImagePlay/media/process_icons/IPLMax.png b/ImagePlay/res/process_icons/IPLMax.png similarity index 100% rename from ImagePlay/media/process_icons/IPLMax.png rename to ImagePlay/res/process_icons/IPLMax.png diff --git a/ImagePlay/media/process_icons/IPLMaxMinMedian.png b/ImagePlay/res/process_icons/IPLMaxMinMedian.png similarity index 100% rename from ImagePlay/media/process_icons/IPLMaxMinMedian.png rename to ImagePlay/res/process_icons/IPLMaxMinMedian.png diff --git a/ImagePlay/media/process_icons/IPLMedian.png b/ImagePlay/res/process_icons/IPLMedian.png similarity index 100% rename from ImagePlay/media/process_icons/IPLMedian.png rename to ImagePlay/res/process_icons/IPLMedian.png diff --git a/ImagePlay/media/process_icons/IPLMergePlanes.png b/ImagePlay/res/process_icons/IPLMergePlanes.png similarity index 100% rename from ImagePlay/media/process_icons/IPLMergePlanes.png rename to ImagePlay/res/process_icons/IPLMergePlanes.png diff --git a/ImagePlay/media/process_icons/IPLMin.png b/ImagePlay/res/process_icons/IPLMin.png similarity index 100% rename from ImagePlay/media/process_icons/IPLMin.png rename to ImagePlay/res/process_icons/IPLMin.png diff --git a/ImagePlay/media/process_icons/IPLMorphologicalEdge.png b/ImagePlay/res/process_icons/IPLMorphologicalEdge.png similarity index 100% rename from ImagePlay/media/process_icons/IPLMorphologicalEdge.png rename to ImagePlay/res/process_icons/IPLMorphologicalEdge.png diff --git a/ImagePlay/media/process_icons/IPLMorphologyBinary.png b/ImagePlay/res/process_icons/IPLMorphologyBinary.png similarity index 100% rename from ImagePlay/media/process_icons/IPLMorphologyBinary.png rename to ImagePlay/res/process_icons/IPLMorphologyBinary.png diff --git a/ImagePlay/media/process_icons/IPLMorphologyGrayscale.png b/ImagePlay/res/process_icons/IPLMorphologyGrayscale.png similarity index 100% rename from ImagePlay/media/process_icons/IPLMorphologyGrayscale.png rename to ImagePlay/res/process_icons/IPLMorphologyGrayscale.png diff --git a/ImagePlay/media/process_icons/IPLMorphologyHitMiss.png b/ImagePlay/res/process_icons/IPLMorphologyHitMiss.png similarity index 100% rename from ImagePlay/media/process_icons/IPLMorphologyHitMiss.png rename to ImagePlay/res/process_icons/IPLMorphologyHitMiss.png diff --git a/ImagePlay/media/process_icons/IPLMultiplyConstant.png b/ImagePlay/res/process_icons/IPLMultiplyConstant.png similarity index 100% rename from ImagePlay/media/process_icons/IPLMultiplyConstant.png rename to ImagePlay/res/process_icons/IPLMultiplyConstant.png diff --git a/ImagePlay/media/process_icons/IPLNegate.png b/ImagePlay/res/process_icons/IPLNegate.png similarity index 100% rename from ImagePlay/media/process_icons/IPLNegate.png rename to ImagePlay/res/process_icons/IPLNegate.png diff --git a/ImagePlay/media/process_icons/IPLNormalizeIllumination.png b/ImagePlay/res/process_icons/IPLNormalizeIllumination.png similarity index 100% rename from ImagePlay/media/process_icons/IPLNormalizeIllumination.png rename to ImagePlay/res/process_icons/IPLNormalizeIllumination.png diff --git a/ImagePlay/media/process_icons/IPLOnePixelEdge.png b/ImagePlay/res/process_icons/IPLOnePixelEdge.png similarity index 100% rename from ImagePlay/media/process_icons/IPLOnePixelEdge.png rename to ImagePlay/res/process_icons/IPLOnePixelEdge.png diff --git a/ImagePlay/media/process_icons/IPLRankTransform.png b/ImagePlay/res/process_icons/IPLRankTransform.png similarity index 100% rename from ImagePlay/media/process_icons/IPLRankTransform.png rename to ImagePlay/res/process_icons/IPLRankTransform.png diff --git a/ImagePlay/media/process_icons/IPLResize.png b/ImagePlay/res/process_icons/IPLResize.png similarity index 100% rename from ImagePlay/media/process_icons/IPLResize.png rename to ImagePlay/res/process_icons/IPLResize.png diff --git a/ImagePlay/media/process_icons/IPLRotate.png b/ImagePlay/res/process_icons/IPLRotate.png similarity index 100% rename from ImagePlay/media/process_icons/IPLRotate.png rename to ImagePlay/res/process_icons/IPLRotate.png diff --git a/ImagePlay/media/process_icons/IPLSaveImage.png b/ImagePlay/res/process_icons/IPLSaveImage.png similarity index 100% rename from ImagePlay/media/process_icons/IPLSaveImage.png rename to ImagePlay/res/process_icons/IPLSaveImage.png diff --git a/ImagePlay/media/process_icons/IPLSplitPlanes.png b/ImagePlay/res/process_icons/IPLSplitPlanes.png similarity index 100% rename from ImagePlay/media/process_icons/IPLSplitPlanes.png rename to ImagePlay/res/process_icons/IPLSplitPlanes.png diff --git a/ImagePlay/media/process_icons/IPLStretchContrast.png b/ImagePlay/res/process_icons/IPLStretchContrast.png similarity index 100% rename from ImagePlay/media/process_icons/IPLStretchContrast.png rename to ImagePlay/res/process_icons/IPLStretchContrast.png diff --git a/ImagePlay/media/process_icons/IPLSubstractImages.png b/ImagePlay/res/process_icons/IPLSubstractImages.png similarity index 100% rename from ImagePlay/media/process_icons/IPLSubstractImages.png rename to ImagePlay/res/process_icons/IPLSubstractImages.png diff --git a/ImagePlay/media/process_icons/IPLSynthesize.png b/ImagePlay/res/process_icons/IPLSynthesize.png similarity index 100% rename from ImagePlay/media/process_icons/IPLSynthesize.png rename to ImagePlay/res/process_icons/IPLSynthesize.png diff --git a/ImagePlay/media/process_icons/IPLTriangleSegmentation.png b/ImagePlay/res/process_icons/IPLTriangleSegmentation.png similarity index 100% rename from ImagePlay/media/process_icons/IPLTriangleSegmentation.png rename to ImagePlay/res/process_icons/IPLTriangleSegmentation.png diff --git a/ImagePlay/media/process_icons/IPLUnsharpMasking.png b/ImagePlay/res/process_icons/IPLUnsharpMasking.png similarity index 100% rename from ImagePlay/media/process_icons/IPLUnsharpMasking.png rename to ImagePlay/res/process_icons/IPLUnsharpMasking.png diff --git a/ImagePlay/media/process_icons/Plugin.png b/ImagePlay/res/process_icons/Plugin.png similarity index 100% rename from ImagePlay/media/process_icons/Plugin.png rename to ImagePlay/res/process_icons/Plugin.png diff --git a/ImagePlay/res/ressources.qrc b/ImagePlay/res/ressources.qrc index a9753a5..e2e4168 100644 --- a/ImagePlay/res/ressources.qrc +++ b/ImagePlay/res/ressources.qrc @@ -18,6 +18,70 @@ plugins.png thumbnails_on.png thumbnails_off.png + process_icons/IPLAddNoise.png + process_icons/IPLAgglomerate.png + process_icons/IPLArithmeticOperations.png + process_icons/IPLArithmeticOperationsConstant.png + process_icons/IPLBinarize.png + process_icons/IPLBinarizeEntropy.png + process_icons/IPLBinarizeKMeans.png + process_icons/IPLBinarizeOtsu.png + process_icons/IPLBinarizeSavola.png + process_icons/IPLBinarizeUnimodal.png + process_icons/IPLBlendImages.png + process_icons/IPLCamera.png + process_icons/IPLCanny.png + process_icons/IPLCanvasSize.png + process_icons/IPLCompassMask.png + process_icons/IPLConvertToColor.png + process_icons/IPLConvertToGray.png + process_icons/IPLConvolutionFilter.png + process_icons/IPLEnhanceMode.png + process_icons/IPLEqualizeHistogram.png + process_icons/IPLExtractLines.png + process_icons/IPLExtrema.png + process_icons/IPLFalseColor.png + process_icons/IPLFFT.png + process_icons/IPLFillConcavities.png + process_icons/IPLFlipImage.png + process_icons/IPLFrequencyFilter.png + process_icons/IPLGabor.png + process_icons/IPLGammaCorrection.png + process_icons/IPLGaussianLowPass.png + process_icons/IPLGradientOperator.png + process_icons/IPLHysteresisThreshold.png + process_icons/IPLIFFT.png + process_icons/IPLInverseContrastRatioMapping.png + process_icons/IPLLabelBlobs.png + process_icons/IPLLaplaceOfGaussian.png + process_icons/IPLLoadImage.png + process_icons/IPLLoadImageSequence.png + process_icons/IPLLocalThreshold.png + process_icons/IPLMarkImage.png + process_icons/IPLMax.png + process_icons/IPLMaxMinMedian.png + process_icons/IPLMedian.png + process_icons/IPLMergePlanes.png + process_icons/IPLMin.png + process_icons/IPLMorphologicalEdge.png + process_icons/IPLMorphologyBinary.png + process_icons/IPLMorphologyGrayscale.png + process_icons/IPLMorphologyHitMiss.png + process_icons/IPLMultiplyConstant.png + process_icons/IPLNegate.png + process_icons/IPLNormalizeIllumination.png + process_icons/IPLOnePixelEdge.png + process_icons/IPLRankTransform.png + process_icons/IPLResize.png + process_icons/IPLRotate.png + process_icons/IPLSaveImage.png + process_icons/IPLSplitPlanes.png + process_icons/IPLStretchContrast.png + process_icons/IPLSubstractImages.png + process_icons/IPLSynthesize.png + process_icons/IPLTriangleSegmentation.png + process_icons/IPLUnsharpMasking.png + process_icons/Plugin.png icons/24hours-phone.png icons/abs.png icons/add.png diff --git a/ImagePlay/src/IPProcessList.cpp b/ImagePlay/src/IPProcessList.cpp index 844b2cd..9826eff 100644 --- a/ImagePlay/src/IPProcessList.cpp +++ b/ImagePlay/src/IPProcessList.cpp @@ -65,29 +65,20 @@ void IPProcessList::addProcessItem(QString processID, QString text, QString keyw { // load icon from png file and add background color based on the process category - QFileInfo iconFile(_mainWindow->processIconPath(processID)); + QPixmap iconFile(":/process_icons/" + processID + QString(".png")); - if(!iconFile.exists()) - { - iconFile = QFileInfo(_mainWindow->processIconPath("Plugin")); + if (iconFile.isNull()) { + iconFile = QPixmap(":/process_icons/Plugin.png"); } - QPixmap finalIcon(25,25); - - if(iconFile.exists()) - { - QPixmap transparentIcon(iconFile.absoluteFilePath()); + QPixmap finalIcon(25, 25); - QPainter painter(&finalIcon); - painter.fillRect(0,0,25,25,_categoryColors.at(category)); - painter.drawPixmap(0,0,25,25,transparentIcon); + if (!iconFile.isNull()) { + QPainter painter(&finalIcon); + painter.fillRect(0, 0, 25, 25, _categoryColors.at(category)); + painter.drawPixmap(0, 0, 25, 25, iconFile); } - QListWidgetItem* newItem = new QListWidgetItem(finalIcon, text); - newItem->setToolTip(processID); - newItem->setStatusTip(keywords); - newItem->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsDragEnabled); - addItem(newItem); } diff --git a/ImagePlay/src/IPProcessListTabWidget.cpp b/ImagePlay/src/IPProcessListTabWidget.cpp index 2501b03..022b44f 100644 --- a/ImagePlay/src/IPProcessListTabWidget.cpp +++ b/ImagePlay/src/IPProcessListTabWidget.cpp @@ -134,12 +134,7 @@ void IPProcessListTabWidget::init(MainWindow *mainWindow) // use icon of first process for the category tab if(categoryIcon.width() == 0) { - QFileInfo iconFile(_mainWindow->processIconPath(processID)); - - if(iconFile.exists()) - { - categoryIcon = QPixmap(iconFile.absoluteFilePath()); - } + categoryIcon = QPixmap (":/process_icons/" + processID + QString(".png")); } } From 2ec09dd32747616769da1ccb9b606fd853c470a4 Mon Sep 17 00:00:00 2001 From: Bagwan Shahabaz <> Date: Tue, 4 Jul 2023 15:01:11 +0200 Subject: [PATCH 6/6] small fix --- ImagePlay/src/IPProcessList.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ImagePlay/src/IPProcessList.cpp b/ImagePlay/src/IPProcessList.cpp index 9826eff..8681e1a 100644 --- a/ImagePlay/src/IPProcessList.cpp +++ b/ImagePlay/src/IPProcessList.cpp @@ -79,6 +79,11 @@ void IPProcessList::addProcessItem(QString processID, QString text, QString keyw painter.drawPixmap(0, 0, 25, 25, iconFile); } + QListWidgetItem* newItem = new QListWidgetItem(finalIcon, text); + newItem->setToolTip(processID); + newItem->setStatusTip(keywords); + newItem->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsDragEnabled); + addItem(newItem); }