Files
pilotclient/src/blackgui/components/timerbasedcomponent.h
Klaus Basan bce67b7873 refs #319, refs #322 user can force reload and clearing the data in views
* context menu
* timer based component can fire directly
* View base class (non templated) so it can use Q_OBJECT
2014-09-11 12:08:09 +02:00

61 lines
1.7 KiB
C++

/* Copyright (C) 2013
* swift project Community / Contributors
*
* This file is part of swift project. It is subject to the license terms in the LICENSE file found in the top-level
* directory of this distribution and at http://www.swift-project.org/license.html. No part of swift project,
* including this file, may be copied, modified, propagated, or distributed except according to the terms
* contained in the LICENSE file.
*/
//! \file
#ifndef BLACKGUI_TIMERBASEDCOMPONENT_H
#define BLACKGUI_TIMERBASEDCOMPONENT_H
#include <QTimer>
#include <QDateTime>
namespace BlackGui
{
namespace Components
{
//! Timer based componenet
class CTimerBasedComponent: public QObject
{
Q_OBJECT
public:
//! Constructor
CTimerBasedComponent(const char *slot, QObject *parent);
//! Destructor
~CTimerBasedComponent();
//! Date/time of 1/1/1970, used to init timestamp values as "outdated"
static const QDateTime &epoch()
{
static const QDateTime e = QDateTime::fromMSecsSinceEpoch(0);
return e;
}
public slots:
//! Update time, time < 100 stops updates
void setUpdateInterval(int milliSeconds);
//! Update time
void setUpdateIntervalSeconds(int seconds) { this->setUpdateInterval(1000 * seconds); }
//! Stop timer
void stopTimer() { this->setUpdateInterval(-1); }
//! Fire the timer straight away
void fireTimer();
private:
QTimer *m_timer;
QTimer *m_timerSingleShot;
};
}
}
#endif // guard