@ -15,14 +15,45 @@ import org.kde.plasma.extras 2.0 as PlasmaExtras
ColumnLayout {
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 == "" ) {
return ;
}
if ( event . text !== "" && ! filter . activeFocus ) {
clipboardMenu . view . currentIndex = - 1
if ( event . matches ( StandardKey . Paste ) ) {
filter . paste ( ) ;
} else {
filter . text = "" ;
filter . text += event . text ;
}
filter . forceActiveFocus ( ) ;
event . accepted = true ;
}
}
switch ( event . key ) {
case Qt.Key_Up: {
clipboardMenu . view . decrementCurrentIndex ( ) ;
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 ;
}
@ -47,26 +78,29 @@ ColumnLayout {
}
break ;
}
default: { / / f o r w a r d k e y t o f i l t e r
/ / 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 == "" ) {
return ;
}
if ( event . text !== "" && ! filter . activeFocus ) {
clipboardMenu . view . currentIndex = - 1
if ( event . matches ( StandardKey . Paste ) ) {
filter . paste ( ) ;
} else {
filter . text = "" ;
filter . text += event . text ;
}
case Qt.Key_F: {
if ( event . modifiers & Qt . ControlModifier ) {
filter . forceActiveFocus ( ) ;
filter . selectAll ( ) ;
event . accepted = true ;
} else {
forwardToFilter ( ) ;
}
break ;
}
case Qt.Key_Tab:
case Qt.Key_Backtab: {
/ / p r e v e n t s e a r c h f i l t e r f r o m g e t t i n g T a b k e y e v e n t s
break ;
}
default: {
forwardToFilter ( ) ;
}
}
}
Keys.forwardTo: [ stack . currentPage ]
property var header: PlasmaExtras . PlasmoidHeading {
RowLayout {
anchors.fill: parent