diff options
author | Olivier Goffart <ogoffart@trolltech.com> | 2009-11-16 08:41:37 (GMT) |
---|---|---|
committer | Olivier Goffart <ogoffart@trolltech.com> | 2009-11-16 08:41:50 (GMT) |
commit | aa482dcbde0089fe32ca59e39f17e5e44fd8b244 (patch) | |
tree | ab780e2f6ac7197fc67440c2b7fb9328dbebd4f7 /tools/qttracereplay/main.cpp | |
parent | 4712a3a1ff6192f716d4f6894c6e69386ae55411 (diff) | |
parent | b2d5f886b36b4f4d317024db7cfd6668e2895cd4 (diff) | |
download | Qt-aa482dcbde0089fe32ca59e39f17e5e44fd8b244.zip Qt-aa482dcbde0089fe32ca59e39f17e5e44fd8b244.tar.gz Qt-aa482dcbde0089fe32ca59e39f17e5e44fd8b244.tar.bz2 |
Merge commit oslo-staging-2/4.6 into upstream/4.6
Diffstat (limited to 'tools/qttracereplay/main.cpp')
-rw-r--r-- | tools/qttracereplay/main.cpp | 38 |
1 files changed, 28 insertions, 10 deletions
diff --git a/tools/qttracereplay/main.cpp b/tools/qttracereplay/main.cpp index 1d21a21..7261082 100644 --- a/tools/qttracereplay/main.cpp +++ b/tools/qttracereplay/main.cpp @@ -56,7 +56,7 @@ public: public slots: void updateRect(); -private: +public: QList<QRegion> updates; QPaintBuffer buffer; @@ -70,7 +70,8 @@ private: void ReplayWidget::updateRect() { - update(updates.at(currentFrame)); + if (!updates.isEmpty()) + update(updates.at(currentFrame)); } void ReplayWidget::paintEvent(QPaintEvent *) @@ -138,12 +139,25 @@ ReplayWidget::ReplayWidget(const QString &filename_) QFile file(filename); QRect bounds; - if (file.open(QIODevice::ReadOnly)) { - QDataStream in(&file); - in >> buffer >> updates; + if (!file.open(QIODevice::ReadOnly)) { + printf("Failed to load input file '%s'\n", qPrintable(filename_)); + return; + } + + QDataStream in(&file); + + char *data; + uint size; + in.readBytes(data, size); + bool isTraceFile = size == 7 && qstrncmp(data, "qttrace", 7) == 0; + delete [] data; + if (!isTraceFile) { + printf("File '%s' is not a trace file\n", qPrintable(filename_)); + return; } - qDebug() << "Read paint buffer with" << buffer.numFrames() << "frames"; + in >> buffer >> updates; + printf("Read paint buffer with %d frames\n", buffer.numFrames()); resize(buffer.boundingRect().size().toSize()); @@ -157,14 +171,18 @@ int main(int argc, char **argv) { QApplication app(argc, argv); - if (argc <= 1) { - printf("Usage: %s filename\n", argv[0]); + if (argc <= 1 || qstrcmp(argv[1], "-h") == 0 || qstrcmp(argv[1], "--help") == 0) { + printf("Replays a tracefile generated with '-graphicssystem trace'\n"); + printf("Usage:\n > %s [traceFile]\n", argv[0]); return 1; } ReplayWidget *widget = new ReplayWidget(argv[1]); - widget->show(); - return app.exec(); + if (!widget->updates.isEmpty()) { + widget->show(); + return app.exec(); + } + } #include "main.moc" |