From 63e3348ace58bb8cc990d418269df61f640fc234 Mon Sep 17 00:00:00 2001 From: John Fultz Date: Sun, 3 Jul 2016 01:00:05 -0500 Subject: Support Shift+Enter to commit from move input field. Also resets the focus back to the input field when you press Shift+Enter. --- quacker/boarddisplay.cpp | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) (limited to 'quacker/boarddisplay.cpp') diff --git a/quacker/boarddisplay.cpp b/quacker/boarddisplay.cpp index 9dd49da..2f570c6 100644 --- a/quacker/boarddisplay.cpp +++ b/quacker/boarddisplay.cpp @@ -32,8 +32,9 @@ BoardWithQuickEntry::BoardWithQuickEntry(QWidget *parent) m_vlayout = new QVBoxLayout(this); Geometry::setupInnerLayout(m_vlayout); - m_lineEdit = new QLineEdit; + m_lineEdit = new QLineEditWithShiftReturn; connect(m_lineEdit, SIGNAL(returnPressed()), this, SLOT(quickEditReturnPressed())); + connect(m_lineEdit, SIGNAL(shiftReturnPressed()), this, SLOT(quickEditShiftReturnPressed())); QLabel *placeLabel = new QLabel(tr("Move: ' ' or 'exchange '")); placeLabel->setBuddy(m_lineEdit); @@ -96,6 +97,13 @@ void BoardWithQuickEntry::quickEditReturnPressed() m_lineEdit->clear(); } +void BoardWithQuickEntry::quickEditShiftReturnPressed() +{ + quickEditReturnPressed(); + performCommit(); + m_lineEdit->setFocus(); +} + void BoardWithQuickEntry::plusFive() { m_localCandidateMove.setScoreAddition(m_localCandidateMove.scoreAddition() + 5); @@ -217,3 +225,19 @@ void TextBoard::positionChanged(const Quackle::GamePosition &position) //m_textEdit->setHtml(QString("
%1
").arg(QuackleIO::Util::uvStringToQString(position.boardAfterMoveMade().toString()))); m_textEdit->setPlainText(QString("%1").arg(QuackleIO::Util::uvStringToQString(position.boardAfterMoveMade().toString()))); } + +/////////// + +void QLineEditWithShiftReturn::keyPressEvent(QKeyEvent * e) +{ + if (e->key() == Qt::Key_Return || e->key() == Qt::Key_Enter) + { + if (e->modifiers() & Qt::ShiftModifier) + { + emit shiftReturnPressed(); + return; + } + } + QLineEdit::keyPressEvent(e); +} + -- cgit v1.2.3