#include <QMouseEvent>
#include <QToolButton>
#include <QSize>
+#include <QWidget>
ClocksWidget::ClocksWidget(ChessClock *white, ChessClock *black, QWidget *parent):
QWidget(parent)
clockLayout->addWidget( black_ );
// Pause information label
- pauseLabel_ = new QLabel( tr("<font color=yellow>Paused. Touch to continue.</font>"));
+ pauseLabel_ = new QLabel( tr("<font color=yellow>Paused. Touch to continue.</font>"),this);
pauseLabel_->setFont( QFont("Helvetica",25));
pauseLabel_->setAlignment( Qt::AlignCenter);
pauseLabel_->setVisible( false );
// Welcome label for first touch
welcomeLabel_ = new QLabel( tr("<font color=green>Welcome! Please touch to start game.<br>"
- "Then touch to end turn.</font>"));
+ "Then touch to end turn.</font>"),this);
welcomeLabel_->setFont( QFont("Helvetica",25));
welcomeLabel_->setAlignment( Qt::AlignCenter);
welcomeLabel_->setVisible( true ); // Show welcome message
// 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;
// ScreenLitKeeper to keep screen lit when playing
keeper_ = new ScreenLitKeeper(this);
+
+ connect( white, SIGNAL(dontEatBattery()), this, SLOT(saveScreen()));
+ connect( black, SIGNAL(dontEatBattery()), this, SLOT(saveScreen()));
}
ClocksWidget::~ClocksWidget()
status_ = Stopped;
}
+void ClocksWidget::saveScreen()
+{
+ keeper_->keepScreenLit(false);
+}
+
void ClocksWidget::mouseReleaseEvent(QMouseEvent *event)
{
break;
case BlackPause:
// Continue play
- keeper_->keepScreenLit();
+ keeper_->keepScreenLit(true);
pauseLabel_->setVisible(false);
pauseButton_->setVisible(true);
black_->continueTurn();
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<QMouseEvent *>(event);
+ mouseReleaseEvent( mEvent );
+ return true;
+ } else {
+ // standard event processing
+ return QObject::eventFilter(obj, event);
+ }
+}
+
+
int const ClocksWidget::CLICKDELAY;