67 lines
1.3 KiB
C++
67 lines
1.3 KiB
C++
#pragma once
|
|
|
|
#include "../mischelpers_global.h"
|
|
|
|
class MISCHELPERS_EXPORT CExitDialog : public QDialog
|
|
{
|
|
public:
|
|
CExitDialog(const QString& Prompt, QWidget* parent = 0)
|
|
: QDialog(parent)
|
|
{
|
|
m_pMainLayout = new QGridLayout(this);
|
|
|
|
QLabel* pLabel = new QLabel(Prompt);
|
|
m_pMainLayout->addWidget(pLabel, 0, 0, 1, 1);
|
|
|
|
m_pButtonBox = new QDialogButtonBox();
|
|
m_pButtonBox->setOrientation(Qt::Horizontal);
|
|
m_pButtonBox->setStandardButtons(QDialogButtonBox::Yes|QDialogButtonBox::No);
|
|
m_pMainLayout->addWidget(m_pButtonBox, 2, 0, 1, 1);
|
|
|
|
connect(m_pButtonBox,SIGNAL(accepted()),this,SLOT(accept()));
|
|
connect(m_pButtonBox,SIGNAL(rejected()),this,SLOT(reject()));
|
|
|
|
m_TimerId = startTimer(1000);
|
|
m_CountDown = 15;
|
|
}
|
|
~CExitDialog()
|
|
{
|
|
killTimer(m_TimerId);
|
|
}
|
|
|
|
protected:
|
|
void timerEvent(QTimerEvent *e)
|
|
{
|
|
if (e->timerId() != m_TimerId)
|
|
{
|
|
QDialog::timerEvent(e);
|
|
return;
|
|
}
|
|
|
|
if(m_CountDown != 0)
|
|
{
|
|
m_CountDown--;
|
|
m_pButtonBox->button(QDialogButtonBox::Yes)->setText(tr("Yes (%1)").arg(m_CountDown));
|
|
if(m_CountDown == 0)
|
|
accept();
|
|
}
|
|
}
|
|
|
|
void reject()
|
|
{
|
|
hide();
|
|
}
|
|
|
|
void closeEvent(QCloseEvent *e)
|
|
{
|
|
hide();
|
|
e->ignore();
|
|
}
|
|
|
|
int m_TimerId;
|
|
int m_CountDown;
|
|
|
|
QGridLayout* m_pMainLayout;
|
|
QDialogButtonBox * m_pButtonBox;
|
|
};
|