Q_DECLARE_METATYPE(ApiTrace::SearchResult);
Q_DECLARE_METATYPE(ApiTrace::SearchRequest);
+static void usage(void)
+{
+ qWarning("usage: qapitrace [TRACE] [CALLNO]\n");
+}
+
int main(int argc, char **argv)
{
QApplication app(argc, argv);
qRegisterMetaType<Qt::CaseSensitivity>();
qRegisterMetaType<ApiTrace::SearchResult>();
qRegisterMetaType<ApiTrace::SearchRequest>();
- MainWindow window;
+ QStringList args = app.arguments();
+ int i = 1;
+ while (i < args.count()) {
+ QString arg = args[i];
+ if (arg[0] != QLatin1Char('-')) {
+ break;
+ }
+ ++i;
+ if (arg == QLatin1String("--")) {
+ break;
+ } else if (arg == QLatin1String("-h") ||
+ arg == QLatin1String("--help")) {
+ usage();
+ exit(0);
+ } else {
+ usage();
+ exit(1);
+ }
+ }
+
+ MainWindow window;
window.show();
- if (app.arguments().count() == 2)
- window.loadTrace(app.arguments()[1]);
+ if (i < args.count()) {
+ QString fileName = args[i++];
+
+ int callNum = -1;
+ if (i < args.count()) {
+ callNum = args[i++].toInt();
+ }
+ window.loadTrace(fileName, callNum);
+ }
app.exec();
}
MainWindow::MainWindow()
: QMainWindow(),
+ m_initalCallNum(-1),
m_selectedEvent(0),
m_stateEvent(0),
m_nonDefaultsLookupEvent(0)
}
}
-void MainWindow::loadTrace(const QString &fileName)
+void MainWindow::loadTrace(const QString &fileName, int callNum)
{
if (!QFile::exists(fileName)) {
QMessageBox::warning(this, tr("File Missing"),
return;
}
+ m_initalCallNum = callNum;
newTraceFile(fileName);
}
QFileInfo info(m_trace->fileName());
statusBar()->showMessage(
tr("Loaded %1").arg(info.fileName()), 3000);
+ if (m_initalCallNum >= 0) {
+ m_trace->findCallIndex(m_initalCallNum);
+ m_initalCallNum = -1;
+ }
}
void MainWindow::replayTrace(bool dumpState)
~MainWindow();
public slots:
- void loadTrace(const QString &fileName);
+ void loadTrace(const QString &fileName, int callNum = -1);
private slots:
void callItemSelected(const QModelIndex &index);
ApiTrace *m_trace;
ApiTraceModel *m_model;
ApiTraceFilter *m_proxyModel;
+ int m_initalCallNum;
QProgressBar *m_progressBar;