]> git.cworth.org Git - apitrace/blob - gui/main.cpp
0ed50ed8f2b33506f931f570d9662430d59712ec
[apitrace] / gui / main.cpp
1 #include "mainwindow.h"
2
3 #include "apitrace.h"
4 #include "apitracecall.h"
5
6 #include <QApplication>
7 #include <QMetaType>
8 #include <QVariant>
9 #include <QImage>
10
11 Q_DECLARE_METATYPE(QList<ApiTraceFrame*>);
12 Q_DECLARE_METATYPE(QVector<ApiTraceCall*>);
13 Q_DECLARE_METATYPE(Qt::CaseSensitivity);
14 Q_DECLARE_METATYPE(ApiTrace::SearchResult);
15 Q_DECLARE_METATYPE(ApiTrace::SearchRequest);
16 Q_DECLARE_METATYPE(QList<QImage>);
17
18 static void usage(void)
19 {
20     qWarning("usage: qapitrace [TRACE] [CALLNO]\n");
21 }
22
23 int main(int argc, char **argv)
24 {
25     QApplication::setGraphicsSystem("raster");
26     QApplication app(argc, argv);
27
28     qRegisterMetaType<QList<ApiTraceFrame*> >();
29     qRegisterMetaType<QVector<ApiTraceCall*> >();
30     qRegisterMetaType<ApiTraceState>();
31     qRegisterMetaType<Qt::CaseSensitivity>();
32     qRegisterMetaType<ApiTrace::SearchResult>();
33     qRegisterMetaType<ApiTrace::SearchRequest>();
34     qRegisterMetaType<QList<QImage> >();
35     QStringList args = app.arguments();
36
37     int i = 1;
38     while (i < args.count()) {
39         QString arg = args[i];
40         if (arg[0] != QLatin1Char('-')) {
41             break;
42         }
43         ++i;
44         if (arg == QLatin1String("--")) {
45             break;
46         } else if (arg == QLatin1String("-h") ||
47                    arg == QLatin1String("--help")) {
48             usage();
49             exit(0);
50         } else {
51             usage();
52             exit(1);
53         }
54     }
55
56     MainWindow window;
57     window.show();
58
59     if (i < args.count()) {
60         QString fileName = args[i++];
61
62         int callNum = -1;
63         if (i < args.count()) {
64             callNum = args[i++].toInt();
65         }
66         window.loadTrace(fileName, callNum);
67     }
68
69     app.exec();
70 }