diff --git a/src/Mod/Test/Gui/UnitTest.ui b/src/Mod/Test/Gui/UnitTest.ui index ffc52ab53e..c308aec02f 100644 --- a/src/Mod/Test/Gui/UnitTest.ui +++ b/src/Mod/Test/Gui/UnitTest.ui @@ -122,6 +122,19 @@ + + + + &Copy + + + Ctrl+C + + + true + + + @@ -151,7 +164,7 @@ - &Close + Close Alt+C @@ -300,6 +313,7 @@ comboTests startButton treeViewFailure + copyButton helpButton aboutButton closeButton diff --git a/src/Mod/Test/Gui/UnitTestImp.cpp b/src/Mod/Test/Gui/UnitTestImp.cpp index 171ca81c85..14bedd7400 100644 --- a/src/Mod/Test/Gui/UnitTestImp.cpp +++ b/src/Mod/Test/Gui/UnitTestImp.cpp @@ -20,8 +20,12 @@ * * ***************************************************************************/ +#include "FCGlobal.h" + #include #include +#include +#include #include @@ -107,6 +111,7 @@ void UnitTestDialog::setupConnections() ); connect(ui->helpButton, &QPushButton::clicked, this, &UnitTestDialog::onHelpButtonClicked); connect(ui->aboutButton, &QPushButton::clicked, this, &UnitTestDialog::onAboutButtonClicked); + connect(ui->copyButton, &QPushButton::clicked, this, &UnitTestDialog::onCopyButtonClicked); connect(ui->startButton, &QPushButton::clicked, this, &UnitTestDialog::onStartButtonClicked); } @@ -186,6 +191,21 @@ void UnitTestDialog::onAboutButtonClicked() ); } +void UnitTestDialog::onCopyButtonClicked() +{ + QString text; + QTreeWidgetItemIterator it(ui->treeViewFailure); + while (*it) { + text += (*it)->data(0, Qt::UserRole).toString() + QStringLiteral("\n\n"); + ++it; + } + if (text.isEmpty()) { + return; + } + QApplication::clipboard()->setText(text); + setStatusText(tr("Errors copied to clipboard")); +} + /** * Runs the unit tests. */ diff --git a/src/Mod/Test/Gui/UnitTestImp.h b/src/Mod/Test/Gui/UnitTestImp.h index 6343dcd861..1b77347a22 100644 --- a/src/Mod/Test/Gui/UnitTestImp.h +++ b/src/Mod/Test/Gui/UnitTestImp.h @@ -70,6 +70,7 @@ private: void onTreeViewFailureItemDoubleClicked(QTreeWidgetItem* item, int column); void onHelpButtonClicked(); void onAboutButtonClicked(); + void onCopyButtonClicked(); void onStartButtonClicked(); void setupConnections();