refs #859, allow to trigger digest signal manually

* Useful if the input signal was just a bogus signal used to trigger
* Login component shows a use case
This commit is contained in:
Klaus Basan
2017-01-13 22:05:11 +01:00
committed by Mathew Sutcliffe
parent 4e7144db08
commit 265b6d33f0
5 changed files with 44 additions and 26 deletions

View File

@@ -7,13 +7,20 @@
* contained in the LICENSE file.
*/
#include "blackmisc/digestsignal.h"
#include "digestsignal.h"
#include "threadutils.h"
namespace BlackMisc
{
void CDigestSignal::ps_inputSignal()
void CDigestSignal::inputSignal()
{
if (!CThreadUtils::isCurrentThreadObjectThread(this))
{
// call in correct thread
QTimer::singleShot(0, this, &CDigestSignal::inputSignal);
return;
}
m_timer.start(); // start or restart
m_inputsCount++;
if (m_inputsCount >= m_maxInputsPerDigest)
@@ -29,4 +36,11 @@ namespace BlackMisc
emit digestSignal();
}
void CDigestSignal::init(int maxDelayMs)
{
QObject::connect(&m_timer, &QTimer::timeout, this, &CDigestSignal::ps_timeout);
m_timer.setSingleShot(true);
m_timer.setInterval(maxDelayMs);
}
} // namespace