From a6283914064f41bce749f4928aa61a3f3417de66 Mon Sep 17 00:00:00 2001 From: Rahul Paul <179798584+Mr-Rahul-Paul@users.noreply.github.com> Date: Mon, 12 Jan 2026 12:05:23 +0530 Subject: [PATCH] Test: Add copy button (#25979) * added a copy button which copies all the errors and traceback to clipboard * removed unused variable * removed space at end of Copy string * copied text notification in status bar * removed unwanted header * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Test: Address review comments --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Chris Hennes --- src/Mod/Test/Gui/UnitTest.ui | 16 +++++++++++++++- src/Mod/Test/Gui/UnitTestImp.cpp | 20 ++++++++++++++++++++ src/Mod/Test/Gui/UnitTestImp.h | 1 + 3 files changed, 36 insertions(+), 1 deletion(-) 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();