blob: 3ae56db1768ecc6528446006e2f4c77146fb74c8 [file] [log] [blame]
Zack Rusin601e8372011-03-24 22:23:21 -04001#include "mainwindow.h"
2
Zack Rusin8f98c3a2011-09-11 18:21:29 -04003#include "apitrace.h"
Zack Rusinf6667d12011-03-30 11:03:37 -04004#include "apitracecall.h"
Zack Rusin601e8372011-03-24 22:23:21 -04005
6#include <QApplication>
7#include <QMetaType>
8#include <QVariant>
Dan McCabe66dfdda2012-03-05 17:20:39 -08009#include <QImage>
Zack Rusin601e8372011-03-24 22:23:21 -040010
Zack Rusinf6667d12011-03-30 11:03:37 -040011Q_DECLARE_METATYPE(QList<ApiTraceFrame*>);
Zack Rusin8f98c3a2011-09-11 18:21:29 -040012Q_DECLARE_METATYPE(QVector<ApiTraceCall*>);
13Q_DECLARE_METATYPE(Qt::CaseSensitivity);
14Q_DECLARE_METATYPE(ApiTrace::SearchResult);
Zack Rusinad513b32011-09-25 14:33:41 -040015Q_DECLARE_METATYPE(ApiTrace::SearchRequest);
Dan McCabe66dfdda2012-03-05 17:20:39 -080016Q_DECLARE_METATYPE(QList<QImage>);
Zack Rusin601e8372011-03-24 22:23:21 -040017
José Fonsecab7eb1522011-11-27 15:15:33 +000018static void usage(void)
19{
20 qWarning("usage: qapitrace [TRACE] [CALLNO]\n");
21}
22
Zack Rusin601e8372011-03-24 22:23:21 -040023int main(int argc, char **argv)
24{
James Benton023a4f82012-09-07 14:23:43 +010025 QApplication::setGraphicsSystem("raster");
Zack Rusin601e8372011-03-24 22:23:21 -040026 QApplication app(argc, argv);
27
Zack Rusinf6667d12011-03-30 11:03:37 -040028 qRegisterMetaType<QList<ApiTraceFrame*> >();
Zack Rusin8f98c3a2011-09-11 18:21:29 -040029 qRegisterMetaType<QVector<ApiTraceCall*> >();
Zack Rusinf389ae82011-04-10 19:27:28 -040030 qRegisterMetaType<ApiTraceState>();
Zack Rusin8f98c3a2011-09-11 18:21:29 -040031 qRegisterMetaType<Qt::CaseSensitivity>();
32 qRegisterMetaType<ApiTrace::SearchResult>();
Zack Rusinad513b32011-09-25 14:33:41 -040033 qRegisterMetaType<ApiTrace::SearchRequest>();
Dan McCabe66dfdda2012-03-05 17:20:39 -080034 qRegisterMetaType<QList<QImage> >();
José Fonsecaebe01ce2012-12-09 13:05:24 +000035
36#ifndef Q_OS_WIN
37 QString path = qgetenv("PATH");
38 path = QLatin1String(APITRACE_BINARY_DIR) + QLatin1String(":") + path;
39 qputenv("PATH", path.toLatin1());
40#endif
41
José Fonsecab7eb1522011-11-27 15:15:33 +000042 QStringList args = app.arguments();
Zack Rusin601e8372011-03-24 22:23:21 -040043
José Fonsecab7eb1522011-11-27 15:15:33 +000044 int i = 1;
45 while (i < args.count()) {
46 QString arg = args[i];
47 if (arg[0] != QLatin1Char('-')) {
48 break;
49 }
50 ++i;
51 if (arg == QLatin1String("--")) {
52 break;
53 } else if (arg == QLatin1String("-h") ||
54 arg == QLatin1String("--help")) {
55 usage();
56 exit(0);
57 } else {
58 usage();
59 exit(1);
60 }
61 }
62
63 MainWindow window;
Zack Rusin601e8372011-03-24 22:23:21 -040064 window.show();
65
José Fonsecab7eb1522011-11-27 15:15:33 +000066 if (i < args.count()) {
67 QString fileName = args[i++];
68
69 int callNum = -1;
70 if (i < args.count()) {
71 callNum = args[i++].toInt();
72 }
73 window.loadTrace(fileName, callNum);
74 }
Zack Rusin601e8372011-03-24 22:23:21 -040075
76 app.exec();
77}