00001 /*======================================================================= 00002 ** VSG_COPYRIGHT_TAG 00003 **=======================================================================*/ 00004 /*======================================================================= 00005 ** Author : Benjamin Grange (MMM YYYY) 00006 **=======================================================================*/ 00007 00008 #ifndef SOQTTIMER_H 00009 #define SOQTTIMER_H 00010 00011 #include <Inventor/sensors/SoSensor.h> 00012 #include <Inventor/sensors/SoSystemTimer.h> 00013 #include <Inventor/misc/SoRef.h> 00014 00015 #include <QTimer> 00016 00020 class QTVIEWERCOMPONENTS_API QtTimer : public QObject, public SoSystemTimer 00021 { 00022 Q_OBJECT 00023 public: 00024 00025 QtTimer(); 00026 00027 virtual void start(); 00028 00029 virtual void stop(); 00030 00031 virtual void setDelay(int time); 00032 00033 virtual bool isPending() const; 00034 00035 virtual void setRepeat(bool flag); 00036 00037 virtual void setTask(SoSystemTimerTask* task); 00038 00039 private Q_SLOTS: 00040 void execCallback(); 00041 void onStart(); 00042 00043 Q_SIGNALS: 00044 void startRequired(); 00045 void stopRequired(); 00046 00047 private: 00048 QTimer timer; 00049 SoRef<SoSystemTimerTask> m_task; 00050 int m_delay; 00051 }; 00052 00053 #endif 00054