You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
openmw/apps/opencs/model/doc/operationholder.hpp

51 lines
894 B
C++

#ifndef CSM_DOC_OPERATIONHOLDER_H
#define CSM_DOC_OPERATIONHOLDER_H
#include <QObject>
#include <QThread>
namespace CSMDoc
{
class Operation;
struct Message;
class OperationHolder : public QObject
{
Q_OBJECT
QThread mThread;
Operation* mOperation;
bool mRunning;
public:
OperationHolder(Operation* operation = nullptr);
void setOperation(Operation* operation);
bool isRunning() const;
void start();
void abort();
// Abort and wait until thread has finished.
void abortAndWait();
private slots:
void doneSlot(int type, bool failed);
signals:
void progress(int current, int max, int type);
void reportMessage(const CSMDoc::Message& message, int type);
void done(int type, bool failed);
void abortSignal();
};
}
#endif