Handle Tab/Backtab to switch between grips in normal mode
This commit is contained in:
parent
f84f889d8e
commit
fb0a039217
1 changed files with 33 additions and 23 deletions
|
@ -39,32 +39,42 @@ namespace Ms {
|
||||||
|
|
||||||
bool ScoreView::event(QEvent* event)
|
bool ScoreView::event(QEvent* event)
|
||||||
{
|
{
|
||||||
if (event->type() == QEvent::KeyPress && editMode()) {
|
switch (event->type()) {
|
||||||
QKeyEvent* ke = static_cast<QKeyEvent*>(event);
|
case QEvent::KeyPress: {
|
||||||
if (ke->key() == Qt::Key_Tab || ke->key() == Qt::Key_Backtab) {
|
QKeyEvent* ke = static_cast<QKeyEvent*>(event);
|
||||||
if (textEditMode())
|
const int key = ke->key();
|
||||||
|
if (key != Qt::Key_Tab && key != Qt::Key_Backtab)
|
||||||
|
break;
|
||||||
|
|
||||||
|
if (textEditMode()) {
|
||||||
|
// block Tab/Backtab in text editing mode
|
||||||
return true;
|
return true;
|
||||||
if (ke->key() == Qt::Key_Tab)
|
}
|
||||||
editData.element->nextGrip(editData);
|
|
||||||
else
|
if (editMode() || editData.grips) {
|
||||||
editData.element->prevGrip(editData);
|
if (ke->key() == Qt::Key_Tab)
|
||||||
updateGrips();
|
editData.element->nextGrip(editData);
|
||||||
_score->update();
|
else
|
||||||
return true;
|
editData.element->prevGrip(editData);
|
||||||
|
updateGrips();
|
||||||
|
_score->update();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
|
case QEvent::Gesture:
|
||||||
|
return gestureEvent(static_cast<QGestureEvent*>(event));
|
||||||
|
case QEvent::MouseButtonPress:
|
||||||
|
if (qApp->focusWidget() != this) {
|
||||||
|
QMouseEvent* me = static_cast<QMouseEvent*>(event);
|
||||||
|
if (me->button() == Qt::LeftButton)
|
||||||
|
this->setFocus();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
// else if (event->type() == CloneDrag) {
|
|
||||||
//TODO:drag Element* e = static_cast<CloneEvent*>(event)->element();
|
|
||||||
// cloneElement(e);
|
|
||||||
// }
|
|
||||||
else if (event->type() == QEvent::Gesture) {
|
|
||||||
return gestureEvent(static_cast<QGestureEvent*>(event));
|
|
||||||
}
|
|
||||||
else if (event->type() == QEvent::MouseButtonPress && qApp->focusWidget() != this) {
|
|
||||||
QMouseEvent* me = static_cast<QMouseEvent*>(event);
|
|
||||||
if (me->button() == Qt::LeftButton)
|
|
||||||
this->setFocus();
|
|
||||||
}
|
|
||||||
return QWidget::event(event);
|
return QWidget::event(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue