pinentry-qt4: make the accessibility part optional
[pinentry.git] / qt4 / pinentryconfirm.cpp
1 /*
2    pinentryconfirm.cpp - A QMessageBox with a timeout
3
4    Copyright (C) 2011 Ben Kibbey <bjk@luxsci.net>
5
6    This program is free software; you can redistribute it and/or
7    modify it under the terms of the GNU General Public License as
8    published by the Free Software Foundation; either version 2 of the
9    License, or (at your option) any later version.
10
11    This program is distributed in the hope that it will be useful, but
12    WITHOUT ANY WARRANTY; without even the implied warranty of
13    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14    General Public License for more details.
15
16    You should have received a copy of the GNU General Public License
17    along with this program; if not, write to the Free Software
18    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
19 */
20 #include "pinentryconfirm.h"
21 #include "pinentrydialog.h"
22 #include <QAbstractButton>
23
24 PinentryConfirm::PinentryConfirm(Icon icon, int timeout, const QString &title,
25         const QString &desc, StandardButtons buttons, QWidget *parent) :
26     QMessageBox(icon, title, desc, buttons, parent)
27 {
28     if (timeout > 0) {
29         _timer = new QTimer(this);
30         connect(_timer, SIGNAL(timeout()), this, SLOT(slotTimeout()));
31         _timer->start(timeout*1000);
32     }
33 #ifndef QT_NO_ACCESSIBILITY
34     setAccessibleDescription (desc);
35     setAccessibleName (title);
36 #endif
37     raiseWindow (this);
38 }
39
40 void PinentryConfirm::showEvent( QShowEvent* event )
41 {
42     QDialog::showEvent( event );
43     raiseWindow( this );
44 }
45
46 void PinentryConfirm::slotTimeout()
47 {
48     QAbstractButton *b = button(QMessageBox::Cancel);
49
50     if (b)
51         b->animateClick(0);
52 }
53
54 #include "pinentryconfirm.moc"