/* search GUI Headers * * Copyright (c) 2024-2024 The OSCAR Team * * This file is subject to the terms and conditions of the GNU General Public * License. See the file COPYING in the main directory of the source code * for more details. */ #ifndef NOTIFYMESSAGEBOX_H #define NOTIFYMESSAGEBOX_H #define STOPTIMER #include #include #include #ifdef STOPTIMER #include #include #endif class NotifyMessageBox : public QObject { Q_OBJECT public: enum NMB_STATE { nmb_init, nmb_running, nmb_stopped }; NotifyMessageBox(const QString& title, const QString& message, int timeoutSeconds = 0 , const QString& timeoutMessage = "" , QWidget* parent = nullptr); virtual ~NotifyMessageBox(); private: void setupMessageBox(); void setupTimer(); private slots: void releaseResources(); void onTimeout(); #if defined(STOPTIMER) void onStop() ; void onTerminate() ; #endif private: QWidget* m_parent; QString m_title; QString m_message; QMessageBox* m_msgBox; int m_timeoutSeconds; QString m_timeoutMessage; NMB_STATE m_state = nmb_init; #if defined(STOPTIMER) QTimer* m_timer; QPushButton *stopB ; QPushButton *terminateB ; #endif }; NotifyMessageBox* createNotifyMessageBox ( QWidget* parent , const QString& title, const QString& message, int timeoutSeconds = 0 , const QString& timeoutMessage = "" ) ; #if 0 NotifyMessageBox* createNotifyMessageBox ( const QString& title, const QString& message, int timeoutSeconds = 0 , const QString& timeoutMessage = "" , QWidget* parent = nullptr); NotifyMessageBox* createNotifyMessageBox ( const QString& title, const QString& message, int timeoutSeconds = 0 , enum QMessageBox::Icon msgIcon = const QString& timeoutMessage = "" , QWidget* parent = nullptr); #endif #endif // NOTIFYMESSAGEBOX_H