| 
									
										
										
										
											2018-08-16 15:19:43 -04:00
										 |  |  | #include "SelfDestructMessageBox.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | SelfDestructMessageBox::SelfDestructMessageBox( | 
					
						
							|  |  |  |         int timeout, | 
					
						
							|  |  |  |         const QString& title, | 
					
						
							|  |  |  |         const QString& text, | 
					
						
							|  |  |  |         QMessageBox::Icon icon, | 
					
						
							|  |  |  |         QMessageBox::StandardButtons buttons, | 
					
						
							|  |  |  |         QMessageBox::StandardButton defaultButton, | 
					
						
							| 
									
										
										
										
											2019-02-07 14:31:11 -05:00
										 |  |  |         bool show_countdown, | 
					
						
							| 
									
										
										
										
											2018-08-16 15:19:43 -04:00
										 |  |  |         QWidget* parent, | 
					
						
							|  |  |  |         Qt::WindowFlags flags) | 
					
						
							|  |  |  |   : QMessageBox(icon, title, text, buttons, parent, flags), | 
					
						
							|  |  |  |     m_timeout(timeout), | 
					
						
							| 
									
										
										
										
											2019-02-07 14:31:11 -05:00
										 |  |  |     m_text(text), | 
					
						
							|  |  |  |     m_show_countdown(show_countdown) | 
					
						
							| 
									
										
										
										
											2018-08-16 15:19:43 -04:00
										 |  |  | { | 
					
						
							|  |  |  |     connect(&m_timer, &QTimer::timeout, this, &SelfDestructMessageBox::tick); | 
					
						
							|  |  |  |     m_timer.setInterval(1000); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     setDefaultButton(defaultButton); | 
					
						
							|  |  |  |     connect(this->defaultButton(), &QPushButton::clicked, this, &SelfDestructMessageBox::accept); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void SelfDestructMessageBox::showEvent(QShowEvent* event) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     tick(); | 
					
						
							|  |  |  |     m_timer.start(); | 
					
						
							|  |  |  |     QMessageBox::showEvent(event); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void SelfDestructMessageBox::tick(){ | 
					
						
							|  |  |  |     m_timeout--; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if(m_timeout){ | 
					
						
							| 
									
										
										
										
											2019-02-07 14:31:11 -05:00
										 |  |  |         if(m_show_countdown){ | 
					
						
							|  |  |  |             setText(m_text.arg(m_timeout)); | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2018-08-16 15:19:43 -04:00
										 |  |  |         return; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     m_timer.stop(); | 
					
						
							|  |  |  |     accept(); | 
					
						
							|  |  |  | } |