28 #include <QUndoCommand>
35 #include "XmlStackedHandler.h"
37 template<
typename T>
class QFutureWatcher;
39 class QXmlStreamWriter;
47 class XmlStackedHandlerReader;
92 WorkOrderUnknownStatus = 0,
118 void read(XmlStackedHandlerReader *xmlReader);
119 void save(QXmlStreamWriter &stream)
const;
120 virtual void setData(Context);
121 virtual void setData(ImageList *images);
124 void setPrevious(
WorkOrder *previousWorkOrder);
126 QString bestText()
const;
127 bool createsCleanState()
const;
128 QDateTime executionTime()
const;
129 bool isFinished()
const;
130 bool isRedoing()
const;
131 bool isRedone()
const;
132 bool isUndoing()
const;
133 bool isUndone()
const;
134 bool modifiesDiskState()
const;
137 QString statusText()
const;
139 ProgressBar *progressBar();
184 ImageList *imageList();
185 const ImageList *imageList()
const;
189 virtual bool dependsOn(
WorkOrder *other)
const;
191 Directory *directory()
const;
192 Project *project()
const;
195 void setModifiesDiskState(
bool changesProjectOnDisk);
198 int progressMin()
const;
199 int progressMax()
const;
200 int progressValue()
const;
201 void setProgressRange(
int,
int);
202 void setProgressValue(
int);
213 void addCloneToProject();
216 bool isInStableState()
const;
217 void listenForImageDestruction();
218 void resetProgressBar();
219 void setProgressToFinalText();
222 void attemptQueuedAction();
223 void asyncFinished();
224 void clearImageList();
225 void deleteProgress();
226 void updateProgress();
230 enum QueuedWorkOrderAction {
245 virtual bool startElement(
const QString &namespaceURI,
const QString &localName,
246 const QString &qName,
const QXmlAttributes &atts);
273 QueuedWorkOrderAction m_queuedAction;
275 int m_progressRangeMinValue;
276 int m_progressRangeMaxValue;
281 QPointer<ImageList> m_images;
284 QPointer<WorkOrder> m_nextWorkOrder;
285 QPointer<WorkOrder> m_previousWorkOrder;
286 QPointer<Project> m_project;
288 QMutex *m_transparentConstMutex;
295 QPointer< QFutureWatcher<void> > m_futureWatcher;
297 QPointer<ProgressBar> m_progressBar;
299 QPointer<QTimer> m_progressBarUpdateTimer;
300 QPointer<QTimer> m_progressBarDeletionTimer;
302 QTime *m_elapsedTimer;
303 double m_secondsElapsed;