summaryrefslogtreecommitdiff
path: root/quacker/boarddisplay.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'quacker/boarddisplay.cpp')
-rw-r--r--quacker/boarddisplay.cpp28
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);
+}
+