From 0f94a5886a15ed5e2b12883a33c2047233036a2b Mon Sep 17 00:00:00 2001 From: mrexodia Date: Fri, 17 Mar 2017 06:59:08 +0100 Subject: [PATCH] GUI: add a gui for the trace log in SimpleTraceDialog --- src/gui/Src/Gui/BrowseDialog.cpp | 2 +- src/gui/Src/Gui/BrowseDialog.ui | 3 +++ src/gui/Src/Gui/SimpleTraceDialog.cpp | 15 +++++++++++++++ src/gui/Src/Gui/SimpleTraceDialog.h | 2 ++ src/gui/Src/Gui/SimpleTraceDialog.ui | 9 +++++++++ 5 files changed, 30 insertions(+), 1 deletion(-) diff --git a/src/gui/Src/Gui/BrowseDialog.cpp b/src/gui/Src/Gui/BrowseDialog.cpp index 4f83b5fe..9a027175 100644 --- a/src/gui/Src/Gui/BrowseDialog.cpp +++ b/src/gui/Src/Gui/BrowseDialog.cpp @@ -10,7 +10,7 @@ BrowseDialog::BrowseDialog(QWidget* parent, const QString & title, const QString setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint | Qt::MSWindowsFixedSizeDialogHint); setWindowTitle(title); ui->label->setText(text); - ui->lineEdit->setText(defaultPath); + ui->lineEdit->setText(QDir::toNativeSeparators(defaultPath)); } BrowseDialog::~BrowseDialog() diff --git a/src/gui/Src/Gui/BrowseDialog.ui b/src/gui/Src/Gui/BrowseDialog.ui index d6be5ee1..169198de 100644 --- a/src/gui/Src/Gui/BrowseDialog.ui +++ b/src/gui/Src/Gui/BrowseDialog.ui @@ -62,6 +62,9 @@ &OK + + true + diff --git a/src/gui/Src/Gui/SimpleTraceDialog.cpp b/src/gui/Src/Gui/SimpleTraceDialog.cpp index 99df2632..da7b97f6 100644 --- a/src/gui/Src/Gui/SimpleTraceDialog.cpp +++ b/src/gui/Src/Gui/SimpleTraceDialog.cpp @@ -2,6 +2,7 @@ #include "ui_SimpleTraceDialog.h" #include "Bridge.h" #include +#include "BrowseDialog.h" SimpleTraceDialog::SimpleTraceDialog(QWidget* parent) : QDialog(parent), @@ -60,6 +61,11 @@ void SimpleTraceDialog::on_btnOk_clicked() QMessageBox::warning(this, tr("Error"), tr("Failed to set switch condition!")); return; } + if(!DbgCmdExecDirect(QString("TraceSetLogFile \"%1\"").arg(escapeText(mLogFile)).toUtf8().constData())) + { + QMessageBox::warning(this, tr("Error"), tr("Failed to set log file!")); + return; + } auto breakCondition = ui->editBreakCondition->addHistoryClear(); auto maxTraceCount = ui->spinMaxTraceCount->value(); if(!DbgCmdExecDirect(QString("%1 \"%2\", .%3").arg(mTraceCommand, escapeText(breakCondition)).arg(maxTraceCount).toUtf8().constData())) @@ -69,3 +75,12 @@ void SimpleTraceDialog::on_btnOk_clicked() } accept(); } + +void SimpleTraceDialog::on_btnLogFile_clicked() +{ + BrowseDialog browse(this, tr("Trace log file"), tr("Enter the path to the log file."), tr("Log Files (*.txt *.log);;All Files (*.*)"), QCoreApplication::applicationDirPath(), true); + if(browse.exec() == QDialog::Accepted) + mLogFile = browse.path; + else + mLogFile.clear(); +} diff --git a/src/gui/Src/Gui/SimpleTraceDialog.h b/src/gui/Src/Gui/SimpleTraceDialog.h index 80818970..b74c1daf 100644 --- a/src/gui/Src/Gui/SimpleTraceDialog.h +++ b/src/gui/Src/Gui/SimpleTraceDialog.h @@ -19,10 +19,12 @@ public: private slots: void on_btnOk_clicked(); + void on_btnLogFile_clicked(); private: Ui::SimpleTraceDialog* ui; QString mTraceCommand; + QString mLogFile; }; #endif // SIMPLETRACEDIALOG_H diff --git a/src/gui/Src/Gui/SimpleTraceDialog.ui b/src/gui/Src/Gui/SimpleTraceDialog.ui index 4fd311e9..8cc20462 100644 --- a/src/gui/Src/Gui/SimpleTraceDialog.ui +++ b/src/gui/Src/Gui/SimpleTraceDialog.ui @@ -65,6 +65,13 @@ + + + + Log &File... + + + @@ -187,6 +194,8 @@ editCommandText editCommandCondition spinMaxTraceCount + editSwitchCondition + btnLogFile btnOk btnCancel