diff --git a/CMakeLists.txt b/CMakeLists.txt index 4d2058e..26d7992 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -39,11 +39,12 @@ FILE( GLOB RESOURCES_FILES ${RSC_DIR}/*.qrc ) ###################################################################################### # Variables ###################################################################################### -ADD_OPTION(CMAKE_BUILD_TYPE "Build type" Debug ) +ADD_OPTION(CMAKE_BUILD_TYPE "Build type" "Release" ) ADD_OPTION(USE_QT4 "Build with QT4" OFF ) ADD_OPTION(USE_OPENCV "Add OpenCV support" OFF ) ADD_OPTION(USE_FFMPEG "Add FFMPEG support" OFF ) +SET(CMAKE_BUILD_TYPE Release) ###################################################################################### # Dependencies diff --git a/source/ModulesHandle.cpp b/source/ModulesHandle.cpp index 9b6b1a1..c743fae 100644 --- a/source/ModulesHandle.cpp +++ b/source/ModulesHandle.cpp @@ -73,7 +73,8 @@ QMenu* ModulesHandle::createMenus( QMenuBar *MainAppMenuBar ) { PlaYUVerModuleIf* currModuleIf; QAction* currAction; - Bool bCategoryExists = false; + QMenu* currSubMenu; + Bool bCategoryExists; Int iNumberCategories = 0; m_pcActionMapper = new QSignalMapper( this ); @@ -83,10 +84,30 @@ QMenu* ModulesHandle::createMenus( QMenuBar *MainAppMenuBar ) //m_arrayModulesActions.resize( m_uiModulesCount ); + + for( Int i = 0; i < m_pcPlaYUVerModules.size(); i++ ) { currModuleIf = m_pcPlaYUVerModules.at( i ); + currSubMenu = NULL; + if( currModuleIf->m_cModuleDef.m_pchModuleCategory ) + { + for( Int j = 0; j < m_pcModulesSubMenuList.size(); j++ ) + { + if( m_pcModulesSubMenuList.at( j )->title() == QString( currModuleIf->m_cModuleDef.m_pchModuleCategory ) ) + { + currSubMenu = m_pcModulesSubMenuList.at( j ); + break; + } + } + if( !currSubMenu ) + { + currSubMenu = m_pcModulesMenu->addMenu( currModuleIf->m_cModuleDef.m_pchModuleCategory ); + m_pcModulesSubMenuList.append( currSubMenu ); + } + } + currAction = new QAction( tr( currModuleIf->m_cModuleDef.m_pchModuleName ), parent() ); currAction->setStatusTip( tr( currModuleIf->m_cModuleDef.m_pchModuleTooltip ) ); currAction->setCheckable( true ); @@ -94,7 +115,10 @@ QMenu* ModulesHandle::createMenus( QMenuBar *MainAppMenuBar ) m_pcActionMapper->setMapping( currAction, i ); m_arrayModulesActions.append( currAction ); - m_pcModulesMenu->addAction( currAction ); + if( currSubMenu ) + currSubMenu->addAction( currAction ); + else + m_pcModulesMenu->addAction( currAction ); currModuleIf->m_pcAction = currAction; } diff --git a/source/ModulesHandle.h b/source/ModulesHandle.h index 7f11044..4b32fb7 100644 --- a/source/ModulesHandle.h +++ b/source/ModulesHandle.h @@ -66,6 +66,7 @@ private: UInt m_uiModulesCount; Int m_uiModuleSelected; QMenu* m_pcModulesMenu; + QList m_pcModulesSubMenuList; QList m_pcPlaYUVerModules; QSignalMapper* m_pcActionMapper; QVector m_arrayModulesActions; diff --git a/source/modules/FilterFrame.cpp b/source/modules/FilterFrame.cpp index e3842d0..7476a6d 100644 --- a/source/modules/FilterFrame.cpp +++ b/source/modules/FilterFrame.cpp @@ -31,7 +31,7 @@ namespace plaYUVer PlaYUVerModuleDefinition FilterFrameDef = { FRAME_LEVEL_MODULE, - "Filters" + "Filters", "Y_Filter", "Filter Y matrix of YUV frame", };