Files
pokerth/src/gui/qt/timeoutmsgbox/timeoutmsgboximpl.cpp
T

79 lines
3.0 KiB
C++
Raw Normal View History

/*****************************************************************************
* PokerTH - The open source texas holdem engine *
* Copyright (C) 2006-2011 Felix Hammer, Florian Thauer, Lothar May *
* *
* This program is free software: you can redistribute it and/or modify *
* it under the terms of the GNU Affero General Public License as *
* published by the Free Software Foundation, either version 3 of the *
* License, or (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU Affero General Public License for more details. *
* *
* You should have received a copy of the GNU Affero General Public License *
* along with this program. If not, see <http://www.gnu.org/licenses/>. *
2011-07-03 19:45:08 +00:00
*****************************************************************************/
#include "timeoutmsgboximpl.h"
2008-03-03 10:27:36 +00:00
#include "session.h"
2008-03-03 23:31:20 +00:00
timeoutMsgBoxImpl::timeoutMsgBoxImpl(QMainWindow *parent)
: QMessageBox(parent), msgID(NETWORK_TIMEOUT_GENERIC)
2008-03-03 10:27:36 +00:00
{
okButton = this->addButton(QMessageBox::Ok);
this->setWindowTitle(tr("Timeout Warning"));
this->setIcon(QMessageBox::Warning);
this->setInformativeText(tr("Please click \"OK\" to stop the countdown!"));
#ifdef ANDROID
2012-12-21 01:01:01 +01:00
this->setWindowModality(Qt::WindowModal);
this->setWindowFlags(Qt::ToolTip);
this->setStyleSheet("QDialog{ border: 1px solid black; border-style: solid; border-radius: 4px; }");
#endif
2008-03-03 10:27:36 +00:00
timeOutTimer = new QTimer;
connect(timeOutTimer, SIGNAL(timeout()), this, SLOT(timerRefresh()));
2008-03-03 23:31:20 +00:00
connect(okButton, SIGNAL(clicked()), this, SLOT(stopTimeout()));
2008-03-03 10:27:36 +00:00
}
timeoutMsgBoxImpl::~timeoutMsgBoxImpl()
{
}
void timeoutMsgBoxImpl::startTimeout()
{
2008-03-03 10:27:36 +00:00
//start the real timer
realTimer.reset();
realTimer.start();
timerRefresh();
timeOutTimer->start(1000);
}
void timeoutMsgBoxImpl::timerRefresh()
{
2008-03-03 23:43:51 +00:00
int sec = timeoutDuration;
2008-03-03 10:27:36 +00:00
unsigned int realTimerValue = realTimer.elapsed().total_milliseconds();
sec -= realTimerValue/1000;
if (sec < 0) sec = 0;
2008-03-03 23:31:20 +00:00
switch (msgID) {
case NETWORK_TIMEOUT_GAME_ADMIN_IDLE:
this->setText(tr("You are game-admin of an open game which will time out in %1 seconds.").arg(sec,0,10));
break;
case NETWORK_TIMEOUT_KICK_AFTER_AUTOFOLD:
this->setText(tr("You did not act in the game recently. You will be removed from the game in %1 seconds.").arg(sec,0,10));
break;
default:
this->setText(tr("Your connection is about to time out due to inactivity in %1 seconds.").arg(sec,0,10));
break;
2008-03-03 10:27:36 +00:00
}
}
void timeoutMsgBoxImpl::stopTimeout()
{
2008-03-03 23:31:20 +00:00
mySession->resetNetworkTimeout();
2008-03-03 23:31:20 +00:00
}