X-Git-Url: https://vcs.maemo.org/git/?a=blobdiff_plain;f=classes%2Fclockswidget.cpp;h=eba9628f26fbeaaa749e1b9b7500e4a60df945c1;hb=4918649a6a425f381a3dc4c58a5f17e30a3c843c;hp=f1cc66cd27c039b709e1487b3c89a14eec4a1f53;hpb=6e19ed2103d7494b00e0cfec81f4bedd7d583d72;p=chessclock diff --git a/classes/clockswidget.cpp b/classes/clockswidget.cpp index f1cc66c..eba9628 100644 --- a/classes/clockswidget.cpp +++ b/classes/clockswidget.cpp @@ -22,6 +22,8 @@ #include "clockswidget.h" #include "chessclock.h" +#include "screenlitkeeper.h" + #include #include #include @@ -32,6 +34,7 @@ #include #include #include +#include ClocksWidget::ClocksWidget(ChessClock *white, ChessClock *black, QWidget *parent): QWidget(parent) @@ -47,14 +50,14 @@ ClocksWidget::ClocksWidget(ChessClock *white, ChessClock *black, QWidget *parent clockLayout->addWidget( black_ ); // Pause information label - pauseLabel_ = new QLabel( tr("Paused. Touch to continue.")); + pauseLabel_ = new QLabel( tr("Paused. Touch to continue."),this); pauseLabel_->setFont( QFont("Helvetica",25)); pauseLabel_->setAlignment( Qt::AlignCenter); pauseLabel_->setVisible( false ); // Welcome label for first touch welcomeLabel_ = new QLabel( tr("Welcome! Please touch to start game.
" - "Then touch to end turn.
")); + "Then touch to end turn."),this); welcomeLabel_->setFont( QFont("Helvetica",25)); welcomeLabel_->setAlignment( Qt::AlignCenter); welcomeLabel_->setVisible( true ); // Show welcome message @@ -69,15 +72,26 @@ ClocksWidget::ClocksWidget(ChessClock *white, ChessClock *black, QWidget *parent // Put all in layout QVBoxLayout* mainLayout = new QVBoxLayout; mainLayout->addLayout(clockLayout); - mainLayout->addWidget(pauseLabel_); - mainLayout->addWidget(welcomeLabel_); + + // Extra layout and widget for information + QVBoxLayout* extraLayout = new QVBoxLayout; + extraLayout->addWidget(pauseLabel_); + extraLayout->addWidget(welcomeLabel_); QHBoxLayout* pbLayout = new QHBoxLayout; pbLayout->addStretch(); pbLayout->addWidget(pauseButton_); pbLayout->addStretch(); - mainLayout->addLayout(pbLayout); + extraLayout->addLayout(pbLayout); + + QWidget* extraWidget = new QWidget(this); + extraWidget->setLayout(extraLayout); + // Some fun event filtering to grap clicking welcome and pause labels... + extraWidget->installEventFilter(this); + pauseLabel_->installEventFilter(this); + welcomeLabel_->installEventFilter(this); + mainLayout->addWidget(extraWidget); setLayout( mainLayout); status_ = Welcome; @@ -92,6 +106,9 @@ ClocksWidget::ClocksWidget(ChessClock *white, ChessClock *black, QWidget *parent delayTimer_.start(); // Initial start recentX = recentY = -1; + + // ScreenLitKeeper to keep screen lit when playing + keeper_ = new ScreenLitKeeper(this); } ClocksWidget::~ClocksWidget() @@ -108,6 +125,8 @@ void ClocksWidget::pause() white_->pauseTurn(); pauseLabel_->setVisible(true); pauseButton_->setVisible(false); + keeper_->keepScreenLit(false); + } else if( status_ == BlackTurn) { @@ -115,6 +134,7 @@ void ClocksWidget::pause() black_->pauseTurn(); pauseLabel_->setVisible(true); pauseButton_->setVisible(false); + keeper_->keepScreenLit(false); } } @@ -146,6 +166,7 @@ void ClocksWidget::mouseReleaseEvent(QMouseEvent *event) // Start game! welcomeLabel_->setVisible(false); pauseButton_->setVisible(true); + keeper_->keepScreenLit(true); white_->startTurn(); status_ = WhiteTurn; break; @@ -163,6 +184,7 @@ void ClocksWidget::mouseReleaseEvent(QMouseEvent *event) break; case WhitePause: // Continue play + keeper_->keepScreenLit(true); pauseLabel_->setVisible(false); pauseButton_->setVisible(true); white_->continueTurn(); @@ -170,6 +192,7 @@ void ClocksWidget::mouseReleaseEvent(QMouseEvent *event) break; case BlackPause: // Continue play + keeper_->keepScreenLit(true); pauseLabel_->setVisible(false); pauseButton_->setVisible(true); black_->continueTurn(); @@ -185,4 +208,18 @@ void ClocksWidget::mouseReleaseEvent(QMouseEvent *event) recentY = event->y(); } +// to grap clicking pause or welcome label +bool ClocksWidget::eventFilter(QObject *obj, QEvent *event) +{ + if (event->type() == QEvent::MouseButtonRelease) { + QMouseEvent *mEvent = static_cast(event); + mouseReleaseEvent( mEvent ); + return true; + } else { + // standard event processing + return QObject::eventFilter(obj, event); + } +} + + int const ClocksWidget::CLICKDELAY;