Slightly improved "announce" message box.
This commit is contained in:
parent
0fc8c5bae4
commit
3630e54f4e
@ -30,7 +30,7 @@
|
|||||||
#define VER_LAMEXP_MINOR_LO 4
|
#define VER_LAMEXP_MINOR_LO 4
|
||||||
#define VER_LAMEXP_TYPE Alpha
|
#define VER_LAMEXP_TYPE Alpha
|
||||||
#define VER_LAMEXP_PATCH 16
|
#define VER_LAMEXP_PATCH 16
|
||||||
#define VER_LAMEXP_BUILD 880
|
#define VER_LAMEXP_BUILD 881
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
// Tool versions (minimum expected versions!)
|
// Tool versions (minimum expected versions!)
|
||||||
|
@ -1156,32 +1156,56 @@ void MainWindow::windowShown(void)
|
|||||||
*/
|
*/
|
||||||
void MainWindow::showAnnounceBox(void)
|
void MainWindow::showAnnounceBox(void)
|
||||||
{
|
{
|
||||||
|
const unsigned int timeout = 8U;
|
||||||
|
|
||||||
const QString announceText = QString("%1<br><br>%2<br><nobr><tt>%3</tt></nobr><br>").arg
|
const QString announceText = QString("%1<br><br>%2<br><nobr><tt>%3</tt></nobr><br>").arg
|
||||||
(
|
(
|
||||||
NOBR("We are still looking for LameXP translators!"),
|
NOBR("We are still looking for LameXP translators!"),
|
||||||
NOBR("If you are willing to translate LameXP to your language or to complete an existing translation, please refer to:"),
|
NOBR("If you are willing to translate LameXP to your language or to complete an existing translation, please refer to:"),
|
||||||
LINK("http://mulder.brhack.net/public/doc/lamexp_translate.html")
|
LINK("http://mulder.brhack.net/public/doc/lamexp_translate.html")
|
||||||
);
|
);
|
||||||
|
|
||||||
QMessageBox *announceBox = new QMessageBox(QMessageBox::Warning, "We want you!", announceText, QMessageBox::NoButton, this);
|
QMessageBox *announceBox = new QMessageBox(QMessageBox::Warning, "We want you!", announceText, QMessageBox::NoButton, this);
|
||||||
announceBox->setWindowFlags(Qt::Window | Qt::WindowTitleHint | Qt::CustomizeWindowHint);
|
announceBox->setWindowFlags(Qt::Window | Qt::WindowTitleHint | Qt::CustomizeWindowHint);
|
||||||
announceBox->setIconPixmap(QIcon(":/images/Announcement.png").pixmap(64,79));
|
announceBox->setIconPixmap(QIcon(":/images/Announcement.png").pixmap(64,79));
|
||||||
QPushButton *button1 = announceBox->addButton(tr("Discard"), QMessageBox::AcceptRole);
|
|
||||||
QPushButton *button2 = announceBox->addButton(tr("Discard"), QMessageBox::NoRole);
|
|
||||||
button1->setVisible(false);
|
|
||||||
button2->setEnabled(false);
|
|
||||||
|
|
||||||
QTimer *announceTimer = new QTimer(this);
|
|
||||||
announceTimer->setSingleShot(true);
|
|
||||||
announceTimer->setInterval(8000);
|
|
||||||
connect(announceTimer, SIGNAL(timeout()), button1, SLOT(show()));
|
|
||||||
connect(announceTimer, SIGNAL(timeout()), button2, SLOT(hide()));
|
|
||||||
|
|
||||||
announceTimer->start();
|
QTimer *timers[timeout+1];
|
||||||
while(announceTimer->isActive()) announceBox->exec();
|
QPushButton *buttons[timeout+1];
|
||||||
announceTimer->stop();
|
|
||||||
|
for(unsigned int i = 0; i <= timeout; i++)
|
||||||
|
{
|
||||||
|
QString text = (i > 0) ? QString("%1 (%2)").arg(tr("Discard"), QString::number(i)) : tr("Discard");
|
||||||
|
buttons[i] = announceBox->addButton(text, (i > 0) ? QMessageBox::NoRole : QMessageBox::AcceptRole);
|
||||||
|
}
|
||||||
|
|
||||||
|
for(unsigned int i = 0; i <= timeout; i++)
|
||||||
|
{
|
||||||
|
buttons[i]->setEnabled(i == 0);
|
||||||
|
buttons[i]->setVisible(i == timeout);
|
||||||
|
}
|
||||||
|
|
||||||
|
for(unsigned int i = 0; i < timeout; i++)
|
||||||
|
{
|
||||||
|
timers[i] = new QTimer(this);
|
||||||
|
timers[i]->setSingleShot(true);
|
||||||
|
timers[i]->setInterval(1000);
|
||||||
|
connect(timers[i], SIGNAL(timeout()), buttons[i+1], SLOT(hide()));
|
||||||
|
connect(timers[i], SIGNAL(timeout()), buttons[i], SLOT(show()));
|
||||||
|
if(i > 0)
|
||||||
|
{
|
||||||
|
connect(timers[i], SIGNAL(timeout()), timers[i-1], SLOT(start()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
timers[timeout-1]->start();
|
||||||
|
announceBox->exec();
|
||||||
|
|
||||||
|
for(unsigned int i = 0; i < timeout; i++)
|
||||||
|
{
|
||||||
|
timers[i]->stop();
|
||||||
|
LAMEXP_DELETE(timers[i]);
|
||||||
|
}
|
||||||
|
|
||||||
LAMEXP_DELETE(announceTimer);
|
|
||||||
LAMEXP_DELETE(announceBox);
|
LAMEXP_DELETE(announceBox);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user