#include <QSet>
class LoaderThread;
+class SaverThread;
class ApiTrace : public QObject
{
void callEdited(ApiTraceCall *call);
void callReverted(ApiTraceCall *call);
+ void callError(ApiTraceCall *call);
bool edited() const;
bool needsSaving() const;
+ bool isSaving() const;
+
+ bool hasErrors() const;
+
public slots:
void setFileName(const QString &name);
void setFrameMarker(FrameMarker marker);
void invalidated();
void framesInvalidated();
void changed(ApiTraceCall *call);
- void traceSaved();
+ void startedSaving();
+ void saved();
- void framesAdded(int oldCount, int numAdded);
+ void beginAddingFrames(int oldCount, int numAdded);
+ void endAddingFrames();
void callsAdded(int oldCount, int numAdded);
private slots:
void addFrames(const QList<ApiTraceFrame*> &frames);
+ void slotSaved();
private:
void detectFrames();
private:
FrameMarker m_frameMarker;
LoaderThread *m_loader;
+ SaverThread *m_saver;
QSet<ApiTraceCall*> m_editedCalls;
bool m_needsSaving;
+
+ QSet<ApiTraceCall*> m_errors;
};
#endif