From 536999daea7fca460c582a28b5b6c55d70429ec2 Mon Sep 17 00:00:00 2001 From: Agoston Szepessy Date: Sat, 10 Jan 2026 01:58:55 -0800 Subject: [PATCH] Update language files and add test case --- share/translations/keepassxc_en.ts | 4 ++++ src/gui/MainWindow.cpp | 1 + tests/gui/TestGui.cpp | 20 ++++++++++++++++++++ tests/gui/TestGui.h | 1 + 4 files changed, 26 insertions(+) diff --git a/share/translations/keepassxc_en.ts b/share/translations/keepassxc_en.ts index f974db170..8cf846a48 100644 --- a/share/translations/keepassxc_en.ts +++ b/share/translations/keepassxc_en.ts @@ -6432,6 +6432,10 @@ Expect some bugs and minor issues, this version is meant for testing purposes. + + Clear Clipboard + + ManageDatabase diff --git a/src/gui/MainWindow.cpp b/src/gui/MainWindow.cpp index 6af03b3a2..bb5830343 100644 --- a/src/gui/MainWindow.cpp +++ b/src/gui/MainWindow.cpp @@ -690,6 +690,7 @@ MainWindow::MainWindow() m_clearClipboardButton = new QPushButton(statusBar()); m_clearClipboardButton->setText(tr("Clear Clipboard")); + m_clearClipboardButton->setObjectName("clearClipboardButton"); m_clearClipboardButton->setVisible(false); statusBar()->addPermanentWidget(m_clearClipboardButton); diff --git a/tests/gui/TestGui.cpp b/tests/gui/TestGui.cpp index 96c8b0703..6174f8b62 100644 --- a/tests/gui/TestGui.cpp +++ b/tests/gui/TestGui.cpp @@ -2494,6 +2494,26 @@ void TestGui::addCannedEntries() QTest::mouseClick(editEntryWidgetButtonBox->button(QDialogButtonBox::Ok), Qt::LeftButton); } +void TestGui::testClearClipboard() +{ + addCannedEntries(); + + EntryView* entryView = m_dbWidget->findChild("entryView"); + QVERIFY(entryView->isVisible()); + + QClipboard* clipboard = QApplication::clipboard(); + + clickIndex(entryView->model()->index(1, 1), entryView, Qt::LeftButton); + QTRY_VERIFY(entryView->hasFocus()); + QTest::keyClick(entryView, Qt::Key_C, Qt::ControlModifier); + QTRY_COMPARE(clipboard->text(), entryView->currentEntry()->password()); + + QPushButton *clearClipboardButton = m_mainWindow->findChild("clearClipboardButton"); + QTRY_VERIFY(clearClipboardButton->isVisible()); + clearClipboardButton->click(); + QCOMPARE(clipboard->text(), QString()); +} + void TestGui::checkDatabase(const QString& filePath, const QString& expectedDbName) { auto key = QSharedPointer::create(); diff --git a/tests/gui/TestGui.h b/tests/gui/TestGui.h index 514f7ce95..f052bfa56 100644 --- a/tests/gui/TestGui.h +++ b/tests/gui/TestGui.h @@ -71,6 +71,7 @@ private slots: void testTrayRestoreHide(); void testShortcutConfig(); void testMenuActionStates(); + void testClearClipboard(); private: void addCannedEntries();