@ -16,12 +16,6 @@ import org.kde.plasma.extras 2.0 as PlasmaExtras
Menu {
id: clipboardMenu
Keys.onPressed: {
function goToCurrent ( ) {
clipboardMenu . view . positionViewAtIndex ( clipboardMenu . view . currentIndex , ListView . Contain ) ;
if ( clipboardMenu . view . currentIndex != - 1 ) {
clipboardMenu . view . currentItem . forceActiveFocus ( ) ;
}
}
function forwardToFilter ( ) {
/ / f i l t e r . t e x t + = e v e n t . t e x t w i l b r e a k i f t h e k e y i s b a c k s p a c e
if ( event . key === Qt . Key_Backspace && filter . text == "" ) {
@ -44,24 +38,6 @@ Menu {
return ;
}
switch ( event . key ) {
case Qt.Key_Up: {
if ( clipboardMenu . view . currentIndex == 0 ) {
clipboardMenu . view . currentIndex = - 1 ;
filter . forceActiveFocus ( ) ;
filter . selectAll ( ) ;
} else {
clipboardMenu . view . decrementCurrentIndex ( ) ;
goToCurrent ( ) ;
}
event . accepted = true ;
break ;
}
case Qt.Key_Down: {
clipboardMenu . view . incrementCurrentIndex ( ) ;
goToCurrent ( ) ;
event . accepted = true ;
break ;
}
case Qt.Key_Enter:
case Qt.Key_Return: {
if ( clipboardMenu . view . currentIndex >= 0 ) {
@ -118,6 +94,8 @@ Menu {
inputMethodHints: Qt . ImhNoPredictiveText
Keys.onUpPressed: clipboardMenu . arrowKeyPressed ( event )
Keys.onDownPressed: clipboardMenu . arrowKeyPressed ( event )
Connections {
target: main
@ -177,4 +155,42 @@ Menu {
clipboardSource . service ( uuid , "action" )
clipboardMenu . view . currentIndex = 0
}
Component.onCompleted: {
/ / I n t e r c e p t u p / d o w n k e y t o p r e v e n t L i s t V i e w f r o m a c c e p t i n g t h e k e y e v e n t .
clipboardMenu . view . Keys . upPressed . connect ( clipboardMenu . arrowKeyPressed ) ;
clipboardMenu . view . Keys . downPressed . connect ( clipboardMenu . arrowKeyPressed ) ;
}
function goToCurrent ( ) {
clipboardMenu . view . positionViewAtIndex ( clipboardMenu . view . currentIndex , ListView . Contain ) ;
if ( clipboardMenu . view . currentIndex !== - 1 ) {
clipboardMenu . view . currentItem . forceActiveFocus ( ) ;
}
}
function arrowKeyPressed ( event ) {
switch ( event . key ) {
case Qt.Key_Up: {
if ( clipboardMenu . view . currentIndex === 0 ) {
clipboardMenu . view . currentIndex = - 1 ;
filter . forceActiveFocus ( ) ;
filter . selectAll ( ) ;
} else {
clipboardMenu . view . decrementCurrentIndex ( ) ;
goToCurrent ( ) ;
}
event . accepted = true ;
break ;
}
case Qt.Key_Down: {
clipboardMenu . view . incrementCurrentIndex ( ) ;
goToCurrent ( ) ;
event . accepted = true ;
break ;
}
default:
break ;
}
}
}