diff options
Diffstat (limited to 'quacker/boarddisplay.cpp')
-rw-r--r-- | quacker/boarddisplay.cpp | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/quacker/boarddisplay.cpp b/quacker/boarddisplay.cpp index e2d7056..d8b2a8d 100644 --- a/quacker/boarddisplay.cpp +++ b/quacker/boarddisplay.cpp @@ -39,8 +39,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); @@ -103,6 +104,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); @@ -177,7 +185,7 @@ void BoardWithQuickEntry::processCommand(const QString &command) if (isPass) move = Quackle::Move::createPassMove(); else - move = Quackle::Move::createExchangeMove(encodedLetters); + move = Quackle::Move::createExchangeMove(encodedLetters, isIntConvertable); } else { @@ -224,3 +232,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); +} + |