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