OpenMW
apps/opencs/model/tools/tools.hpp
Go to the documentation of this file.
00001 #ifndef CSM_TOOLS_TOOLS_H
00002 #define CSM_TOOLS_TOOLS_H
00003 
00004 #include <QObject>
00005 
00006 #include <map>
00007 
00008 namespace CSMWorld
00009 {
00010     class Data;
00011     class UniversalId;
00012 }
00013 
00014 namespace CSMDoc
00015 {
00016     class Operation;
00017 }
00018 
00019 namespace CSMTools
00020 {
00021     class ReportModel;
00022 
00023     class Tools : public QObject
00024     {
00025             Q_OBJECT
00026 
00027             CSMWorld::Data& mData;
00028             CSMDoc::Operation *mVerifier;
00029             std::map<int, ReportModel *> mReports;
00030             int mNextReportNumber;
00031             std::map<int, int> mActiveReports; // type, report number
00032 
00033             // not implemented
00034             Tools (const Tools&);
00035             Tools& operator= (const Tools&);
00036 
00037             CSMDoc::Operation *getVerifier();
00038 
00039             CSMDoc::Operation *get (int type);
00041 
00042             const CSMDoc::Operation *get (int type) const;
00044 
00045         public:
00046 
00047             Tools (CSMWorld::Data& data);
00048 
00049             virtual ~Tools();
00050 
00051             CSMWorld::UniversalId runVerifier();
00053 
00054             void abortOperation (int type);
00056 
00057             int getRunningOperations() const;
00058 
00059             ReportModel *getReport (const CSMWorld::UniversalId& id);
00061 
00062         private slots:
00063 
00064             void verifierMessage (const QString& message, int type);
00065 
00066         signals:
00067 
00068             void progress (int current, int max, int type);
00069 
00070             void done (int type);
00071     };
00072 }
00073 
00074 #endif