@ -39,6 +39,7 @@
# include "core/UBApplication.h"
# include "UBDocumentNavigator.h"
# include "board/UBBoardController.h"
# include "board/UBBoardView.h"
# include "adaptors/UBThumbnailAdaptor.h"
# include "adaptors/UBSvgSubsetAdaptor.h"
# include "document/UBDocumentController.h"
@ -354,6 +355,120 @@ void UBDocumentNavigator::mouseReleaseEvent(QMouseEvent *event)
mLongPressTimer . stop ( ) ;
}
void UBDocumentNavigator : : keyPressEvent ( QKeyEvent * event )
{
return ;
UBBoardController * controller = UBApplication : : boardController ;
// send to the scene anyway
QApplication : : sendEvent ( scene ( ) , event ) ;
if ( ! event - > isAccepted ( ) )
{
switch ( event - > key ( ) )
{
case Qt : : Key_Up :
case Qt : : Key_PageUp :
case Qt : : Key_Left :
{
controller - > previousScene ( ) ;
break ;
}
case Qt : : Key_Down :
case Qt : : Key_PageDown :
case Qt : : Key_Right :
case Qt : : Key_Space :
{
controller - > nextScene ( ) ;
break ;
}
case Qt : : Key_Home :
{
controller - > firstScene ( ) ;
break ;
}
case Qt : : Key_End :
{
controller - > lastScene ( ) ;
break ;
}
case Qt : : Key_Insert :
{
controller - > addScene ( ) ;
break ;
}
case Qt : : Key_Control :
case Qt : : Key_Shift :
{
controller - > controlView ( ) - > setMultiselection ( true ) ;
} break ;
}
if ( event - > modifiers ( ) & Qt : : ControlModifier ) // keep only ctrl/cmd keys
{
switch ( event - > key ( ) )
{
case Qt : : Key_Plus :
case Qt : : Key_I :
{
controller - > zoomIn ( ) ;
event - > accept ( ) ;
break ;
}
case Qt : : Key_Minus :
case Qt : : Key_O :
{
controller - > zoomOut ( ) ;
event - > accept ( ) ;
break ;
}
case Qt : : Key_0 :
{
controller - > zoomRestore ( ) ;
event - > accept ( ) ;
break ;
}
case Qt : : Key_Left :
{
controller - > handScroll ( - 100 , 0 ) ;
event - > accept ( ) ;
break ;
}
case Qt : : Key_Right :
{
controller - > handScroll ( 100 , 0 ) ;
event - > accept ( ) ;
break ;
}
case Qt : : Key_Up :
{
controller - > handScroll ( 0 , - 100 ) ;
event - > accept ( ) ;
break ;
}
case Qt : : Key_Down :
{
controller - > handScroll ( 0 , 100 ) ;
event - > accept ( ) ;
break ;
}
default :
{
// NOOP
}
}
}
}
// if ctrl of shift was pressed combined with other keys - we need to disable multiple selection.
if ( event - > isAccepted ( ) )
controller - > controlView ( ) - > setMultiselection ( false ) ;
}
void UBDocumentNavigator : : longPressTimeout ( )
{
if ( QApplication : : mouseButtons ( ) ! = Qt : : NoButton )