diff --git a/src/gui/widget/hintbox.cpp b/src/gui/widget/hintbox.cpp index d5f80d796..0a0217fca 100644 --- a/src/gui/widget/hintbox.cpp +++ b/src/gui/widget/hintbox.cpp @@ -168,17 +168,21 @@ void CHintBox::init(const std::string& Text, const int& Width, const std::string CHintBox::~CHintBox() { - if(timeout_pb){ - timeout_pb->kill(); //ensure cleanup from screen - delete timeout_pb; timeout_pb = NULL; - } - if(timeout_pb_timer){ - delete timeout_pb_timer; timeout_pb_timer = NULL; - } + disableTimeOutBar(); } -void CHintBox::showTimeOutBar() +void CHintBox::enableTimeOutBar(bool enable) { + if(!enable){ + if(timeout_pb_timer){ + delete timeout_pb_timer; timeout_pb_timer = NULL; + } + if(timeout_pb){ + delete timeout_pb; timeout_pb = NULL; + } + return; + } + if(timeout_pb){ timeout_pb->paint0(); timeout_pb->setValues(timeout_pb->getValue()+1, 100*timeout); @@ -201,7 +205,7 @@ int CHintBox::exec() uint64_t timeoutEnd = CRCInput::calcTimeoutEnd( timeout ); if (timeout > 0) - showTimeOutBar(); + enableTimeOutBar(); while ( ! ( res & ( messages_return::cancel_info | messages_return::cancel_all ) ) ) { @@ -244,6 +248,8 @@ int CHintBox::exec() } } } + + disableTimeOutBar(); return res; } diff --git a/src/gui/widget/hintbox.h b/src/gui/widget/hintbox.h index e7a066161..3f5a35724 100644 --- a/src/gui/widget/hintbox.h +++ b/src/gui/widget/hintbox.h @@ -84,6 +84,7 @@ class CHintBox : public CComponentsWindow const int& indent); virtual void ReSize(); + void showTimeOutBar(){enableTimeOutBar();} public: /**CHintBox Constructor @@ -186,9 +187,17 @@ class CHintBox : public CComponentsWindow virtual void setTimeOut(const int& Timeout){timeout = Timeout;} /** - * enable visualized timeout as progressbar under titelbar + * enable/disable visualized timeout as progressbar under titlebar + * @param[in] enable + * @li optional: exepts type bool, default = true */ - void showTimeOutBar(); + void enableTimeOutBar(bool enable = true); + + /** + * disable visualized timeout as progressbar + * @see enableTimeOutBar + */ + void disableTimeOutBar(){enableTimeOutBar(false);} /** * scroll handler for text objects: NOTE: exec() must be called ! diff --git a/src/gui/widget/msgbox.cpp b/src/gui/widget/msgbox.cpp index dfe855cad..0c08d924c 100644 --- a/src/gui/widget/msgbox.cpp +++ b/src/gui/widget/msgbox.cpp @@ -223,7 +223,7 @@ int CMsgBox::exec() uint64_t timeoutEnd = CRCInput::calcTimeoutEnd(timeout); if (timeout > 0) - showTimeOutBar(); + enableTimeOutBar(); bool loop = true; while (loop)