class SearchWidget;
class ShadersSourceWidget;
class TraceProcess;
+class TrimProcess;
+class ProfileDialog;
class VertexDataInterpreter;
+namespace trace { struct Profile; }
+
class MainWindow : public QMainWindow
{
Q_OBJECT
public slots:
void loadTrace(const QString &fileName, int callNum = -1);
+ void setRemoteTarget(const QString &host);
+
private slots:
void callItemSelected(const QModelIndex &index);
+ void callItemActivated(const QModelIndex &index);
void createTrace();
void openTrace();
void replayStart();
+ void replayProfile();
void replayStop();
- void replayFinished(const QString &output);
+ void replayFinished(const QString &message);
void replayStateFound(ApiTraceState *state);
+ void replayProfileFound(trace::Profile *state);
void replayThumbnailsFound(const QList<QImage> &thumbnails);
void replayError(const QString &msg);
void startedLoadingTrace();
void loadProgess(int percent);
void finishedLoadingTrace();
void lookupState();
+ void showThumbnails();
+ void trim();
void showSettings();
void openHelp(const QUrl &url);
void showSurfacesMenu(const QPoint &pos);
void slotJumpTo(int callNum);
void createdTrace(const QString &path);
void traceError(const QString &msg);
+ void createdTrim(const QString &path);
+ void trimError(const QString &msg);
void slotSearch();
void slotSearchNext(const QString &str, Qt::CaseSensitivity sensitivity);
void slotSearchPrev(const QString &str, Qt::CaseSensitivity sensitivity);
private:
void initObjects();
void initConnections();
+ void updateActionsState(bool traceLoaded, bool stopped = true);
void newTraceFile(const QString &fileName);
void replayTrace(bool dumpState, bool dumpThumbnails);
+ void trimEvent();
void fillStateForFrame();
/* there's a difference between selected frame/call and
ApiTraceFrame *currentFrame() const;
ApiTraceCall *currentCall() const;
+protected:
+ virtual void closeEvent(QCloseEvent * event);
private:
Ui_MainWindow m_ui;
ApiTraceEvent *m_stateEvent;
+ ApiTraceEvent *m_trimEvent;
+
Retracer *m_retracer;
VertexDataInterpreter *m_vdataInterpreter;
TraceProcess *m_traceProcess;
+ TrimProcess *m_trimProcess;
+
ArgumentsEditor *m_argsEditor;
ApiTraceEvent *m_nonDefaultsLookupEvent;
+
+ ProfileDialog* m_profileDialog;
};