diff options
author | John Fultz <jfultz@wolfram.com> | 2016-07-03 01:00:05 -0500 |
---|---|---|
committer | John Fultz <jfultz@wolfram.com> | 2016-07-03 01:00:05 -0500 |
commit | 63e3348ace58bb8cc990d418269df61f640fc234 (patch) | |
tree | 18e0af06231d3ab7efb9c09d392806f7aa434166 /quacker/boarddisplay.cpp | |
parent | 6640912578e4d5a4567fd7ae20f0da2bf6fb7058 (diff) |
Support Shift+Enter to commit from move input field.
Also resets the focus back to the input field when
you press Shift+Enter.
Diffstat (limited to 'quacker/boarddisplay.cpp')
-rw-r--r-- | quacker/boarddisplay.cpp | 26 |
1 files changed, 25 insertions, 1 deletions
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: '<position> <word>' or 'exchange <tiles|number>'")); 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("<html><font size=\"+4\"><pre>%1</pre></font></html>").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); +} + |