00001 #ifndef CALCULATETHREAD_H 00002 #define CALCULATETHREAD_H 00003 00004 #include <QMutex> 00005 #include <QSize> 00006 #include <QThread> 00007 #include <QWaitCondition> 00008 #include "fractal.h" 00009 00010 00011 class CCalculateThread : public QThread 00012 { 00013 Q_OBJECT 00014 00015 public: 00016 CCalculateThread(QObject *parent = 0); 00017 ~CCalculateThread(); 00018 00019 00020 signals: 00021 void calculatedFractal(double progress); 00022 00023 protected: 00024 void run(); 00025 00026 private: 00027 CFractal fractal; 00028 QMutex mutex; 00029 QWaitCondition condition; 00030 bool restart; 00031 bool abort; 00032 }; 00033 00034 #endif // CALCULATETHREAD_H