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();