diff --git a/app/GridManager.cpp b/app/GridManager.cpp index 2f67fbf..eba552c 100644 --- a/app/GridManager.cpp +++ b/app/GridManager.cpp @@ -44,6 +44,11 @@ GridManager::GridManager() m_cGridColor = QColor( Qt::white ); } +void GridManager::setGridSize( int newsize ) +{ + m_uiHSpace = m_uiVSpace = newsize; +} + //////////////////////////////////////////////////////////////////////////////// // Grid Drawer //////////////////////////////////////////////////////////////////////////////// diff --git a/app/GridManager.h b/app/GridManager.h index e967fea..2541db7 100644 --- a/app/GridManager.h +++ b/app/GridManager.h @@ -52,6 +52,8 @@ public: GridManager(); + void setGridSize( int newsize ); + void drawGrid( QPixmap& image, const QRect& area, QPainter* painter ); /** diff --git a/app/VideoHandle.cpp b/app/VideoHandle.cpp index 04dbe05..25a9b4e 100644 --- a/app/VideoHandle.cpp +++ b/app/VideoHandle.cpp @@ -120,9 +120,9 @@ void VideoHandle::createActions() m_pcFrameSlider->setTracking( false ); connect( m_pcFrameSlider, SIGNAL( valueChanged( int ) ), this, SLOT( seekSliderEvent( int ) ) ); - // ------------ Tools ------------ - actionGroupTools = new QActionGroup( this ); - actionGroupTools->setExclusive( true ); + // ------------ Image ------------ + m_actionGroupTools = new QActionGroup( this ); + m_actionGroupTools->setExclusive( true ); m_mapperTools = new QSignalMapper( this ); connect( m_mapperTools, SIGNAL( mapped( int ) ), this, SLOT( setTool( int ) ) ); @@ -133,7 +133,7 @@ void VideoHandle::createActions() m_arrayActions[NAVIGATION_TOOL_ACT]->setCheckable( true ); m_arrayActions[NAVIGATION_TOOL_ACT]->setChecked( true ); m_arrayActions[NAVIGATION_TOOL_ACT]->setShortcut( Qt::CTRL + Qt::Key_1 ); - actionGroupTools->addAction( m_arrayActions[NAVIGATION_TOOL_ACT] ); + m_actionGroupTools->addAction( m_arrayActions[NAVIGATION_TOOL_ACT] ); connect( m_arrayActions[NAVIGATION_TOOL_ACT], SIGNAL( triggered() ), m_mapperTools, SLOT( map() ) ); m_mapperTools->setMapping( m_arrayActions[NAVIGATION_TOOL_ACT], ViewArea::NavigationView ); @@ -141,7 +141,7 @@ void VideoHandle::createActions() m_arrayActions[SELECTION_TOOL_ACT]->setCheckable( true ); m_arrayActions[SELECTION_TOOL_ACT]->setChecked( false ); m_arrayActions[SELECTION_TOOL_ACT]->setShortcut( Qt::CTRL + Qt::Key_2 ); - actionGroupTools->addAction( m_arrayActions[SELECTION_TOOL_ACT] ); + m_actionGroupTools->addAction( m_arrayActions[SELECTION_TOOL_ACT] ); connect( m_arrayActions[SELECTION_TOOL_ACT], SIGNAL( triggered() ), m_mapperTools, SLOT( map() ) ); m_mapperTools->setMapping( m_arrayActions[SELECTION_TOOL_ACT], ViewArea::NormalSelectionView ); @@ -149,10 +149,25 @@ void VideoHandle::createActions() m_arrayActions[BLOCK_SELECTION_TOOL_ACT]->setCheckable( true ); m_arrayActions[BLOCK_SELECTION_TOOL_ACT]->setChecked( false ); m_arrayActions[BLOCK_SELECTION_TOOL_ACT]->setShortcut( Qt::CTRL + Qt::Key_3 ); - actionGroupTools->addAction( m_arrayActions[BLOCK_SELECTION_TOOL_ACT] ); + m_actionGroupTools->addAction( m_arrayActions[BLOCK_SELECTION_TOOL_ACT] ); connect( m_arrayActions[BLOCK_SELECTION_TOOL_ACT], SIGNAL( triggered() ), m_mapperTools, SLOT( map() ) ); m_mapperTools->setMapping( m_arrayActions[BLOCK_SELECTION_TOOL_ACT], ViewArea::BlockSelectionView ); + m_mapperGrid = new QSignalMapper( this ); + m_actionGroupGrid = new QActionGroup( this ); + m_actionGroupGrid->setExclusive( true ); + m_mapperGrid->setMapping( m_actionGroupGrid->addAction( "8x8" ), 8 ); + m_mapperGrid->setMapping( m_actionGroupGrid->addAction( "16x16" ), 16 ); + m_mapperGrid->setMapping( m_actionGroupGrid->addAction( "64x64" ), 64 ); + + for( int i = 0; i < m_actionGroupGrid->actions().size(); i++ ) + { + m_actionGroupGrid->actions().at( i )->setCheckable( true ); + connect( m_actionGroupGrid->actions().at( i ), SIGNAL( triggered() ), m_mapperGrid, SLOT( map() ) ); + } + m_actionGroupGrid->actions().at( 2 )->setChecked( true ); + connect( m_mapperGrid, SIGNAL( mapped( int ) ), this, SLOT( setGridSize( int ) ) ); + m_arrayActions[SHOW_GRID_ACT] = new QAction( "Show grid", this ); m_arrayActions[SHOW_GRID_ACT]->setCheckable( true ); m_arrayActions[SHOW_GRID_ACT]->setChecked( false ); @@ -182,6 +197,8 @@ QMenu* VideoHandle::createImageMenu() m_pcMenuImage->addAction( m_arrayActions[BLOCK_SELECTION_TOOL_ACT] ); m_pcMenuImage->addSeparator(); m_pcMenuImage->addAction( m_arrayActions[SHOW_GRID_ACT] ); + QMenu* gridSizeMenu = m_pcMenuImage->addMenu( "Grid size" ); + gridSizeMenu->addActions( m_actionGroupGrid->actions() ); return m_pcMenuImage; } @@ -282,6 +299,8 @@ void VideoHandle::readSettings() m_uiViewTool = appSettings.value( "VideoHandle/SelectedTool", ViewArea::NavigationView ).toUInt(); setTool( m_uiViewTool ); + + m_arrayActions[SHOW_GRID_ACT]->setChecked( appSettings.value( "VideoHandle/ShowGrid", false ).toBool() ); } void VideoHandle::writeSettings() @@ -291,6 +310,7 @@ void VideoHandle::writeSettings() appSettings.setValue( "VideoHandle/VideoZoomLock", m_arrayActions[VIDEO_ZOOM_LOCK_ACT]->isChecked() ); appSettings.setValue( "VideoHandle/FrameProperties", m_pcFramePropertiesSideBar->isVisible() ); appSettings.setValue( "VideoHandle/SelectedTool", m_uiViewTool ); + appSettings.setValue( "VideoHandle/ShowGrid", m_arrayActions[SHOW_GRID_ACT]->isChecked() ); } void VideoHandle::update() @@ -809,7 +829,7 @@ void VideoHandle::videoSelectionButtonEvent() void VideoHandle::setTool( int tool ) { m_uiViewTool = tool; - actionGroupTools->actions().at( m_uiViewTool )->setChecked( true ); + m_actionGroupTools->actions().at( m_uiViewTool )->setChecked( true ); QList subWindowList = m_pcMainWindowManager->findSubWindow( SubWindowAbstract::VIDEO_SUBWINDOW ); for( int i = 0; i < subWindowList.size(); i++ ) { @@ -825,3 +845,12 @@ void VideoHandle::toggleGrid( bool checked ) qobject_cast( subWindowList.at( i ) )->getViewArea()->setGridVisible( checked ); } } + +void VideoHandle::setGridSize( int size ) +{ + QList subWindowList = m_pcMainWindowManager->findSubWindow( SubWindowAbstract::VIDEO_SUBWINDOW ); + for( int i = 0; i < subWindowList.size(); i++ ) + { + qobject_cast( subWindowList.at( i ) )->getViewArea()->setGridSize( size ); + } +} diff --git a/app/VideoHandle.h b/app/VideoHandle.h index bb607e2..73cd2d0 100644 --- a/app/VideoHandle.h +++ b/app/VideoHandle.h @@ -97,11 +97,15 @@ private: QSlider* m_pcFrameSlider; FrameNumberWidget* m_pcFrameNumInfo; - // Tools Actions; - QActionGroup* actionGroupTools; + // Tools Actions + QActionGroup* m_actionGroupTools; QSignalMapper* m_mapperTools; unsigned int m_uiViewTool; + // Grid Actions + QSignalMapper* m_mapperGrid; + QActionGroup* m_actionGroupGrid; + QMenu* m_pcMenuVideo; QMenu* m_pcMenuImage; QToolBar* m_toolbarVideo; @@ -145,6 +149,7 @@ private Q_SLOTS: void videoSelectionButtonEvent(); void setTool( int tool ); void toggleGrid( bool checked ); + void setGridSize( int size ); }; #endif // __VIDEOHANDLE_H__ diff --git a/app/ViewArea.cpp b/app/ViewArea.cpp index 450fe21..a89e5e4 100644 --- a/app/ViewArea.cpp +++ b/app/ViewArea.cpp @@ -137,6 +137,12 @@ void ViewArea::setGridVisible( bool enable ) update(); } +void ViewArea::setGridSize( int size ) +{ + m_grid.setGridSize( size ); + update(); +} + void ViewArea::clearMask() { m_mask.clear(); @@ -579,9 +585,9 @@ void ViewArea::paintEvent( QPaintEvent* event ) //painter.fillRect( cImgWinRect, QBrush( QColor( 128, 128, 128, 128 ) ) ); painter.setPen( QColor( 50, 50, 50, 128 ) ); //painter.drawRect( cImgWinRect ); - painter.setOpacity(0.7); + painter.setOpacity( 0.7 ); painter.drawPixmap( cImgWinRect, m_pixmap ); - painter.setOpacity(1); + painter.setOpacity( 1 ); cVisibleWinRect.moveTopLeft( cImgWinRect.topLeft() + cVisibleWinRect.topLeft() ); diff --git a/app/ViewArea.h b/app/ViewArea.h index 405a1d9..5987e3e 100644 --- a/app/ViewArea.h +++ b/app/ViewArea.h @@ -72,7 +72,11 @@ public: */ void setTool( unsigned int view ); + /** + * Grid options + */ void setGridVisible( bool enable ); + void setGridSize( int size ); /** * Clears any mask content.