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)
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})
diff --git a/ImagePlay/CMakeLists.txt b/ImagePlay/CMakeLists.txt
new file mode 100644
index 0000000..9c096d2
--- /dev/null
+++ b/ImagePlay/CMakeLists.txt
@@ -0,0 +1,84 @@
+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)
+
+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)
+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.
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/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/src/IPProcessList.cpp b/ImagePlay/src/IPProcessList.cpp
index 844b2cd..8681e1a 100644
--- a/ImagePlay/src/IPProcessList.cpp
+++ b/ImagePlay/src/IPProcessList.cpp
@@ -65,22 +65,18 @@ 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);
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"));
}
}
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