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