diff --git a/share/translations/keepassxc_es.ts b/share/translations/keepassxc_es.ts index f4575d936d..f94a05f194 100644 --- a/share/translations/keepassxc_es.ts +++ b/share/translations/keepassxc_es.ts @@ -7369,6 +7369,10 @@ Do you want to overwrite it? Toggle Password (%1) Conmutar contraseña (%1) + + Copy Password + Copiar contraseña + Generate Password (%1) Generar contraseña (%1) @@ -10668,4 +10672,4 @@ Ejemplo: JBSWY3DPEHPK3PXP Desconocido - \ No newline at end of file + diff --git a/src/gui/PasswordWidget.cpp b/src/gui/PasswordWidget.cpp index 2568ff67b6..18af9a3481 100644 --- a/src/gui/PasswordWidget.cpp +++ b/src/gui/PasswordWidget.cpp @@ -20,6 +20,7 @@ #include "ui_PasswordWidget.h" #include "core/Config.h" +#include "gui/Clipboard.h" #include "core/PasswordHealth.h" #include "gui/Font.h" #include "gui/Icons.h" @@ -83,6 +84,13 @@ PasswordWidget::PasswordWidget(QWidget* parent) m_ui->passwordEdit->addAction(m_passwordGeneratorAction, QLineEdit::TrailingPosition); m_passwordGeneratorAction->setVisible(false); + m_copyToClipboardAction = new QAction( + icons()->icon("edit-copy"), + tr("Copy Password"), + this); + m_ui->passwordEdit->addAction(m_copyToClipboardAction, QLineEdit::TrailingPosition); + connect(m_copyToClipboardAction, &QAction::triggered, this, &PasswordWidget::copyPasswordToClipboard); + m_capslockAction = new QAction(icons()->icon("dialog-warning", true, StateColorPalette().color(StateColorPalette::Error)), tr("Warning: Caps Lock enabled!"), @@ -185,6 +193,11 @@ bool PasswordWidget::isPasswordVisible() const return m_ui->passwordEdit->echoMode() == QLineEdit::Normal; } +void PasswordWidget::copyPasswordToClipboard() +{ + clipboard()->setText(m_ui->passwordEdit->text()); +} + void PasswordWidget::popupPasswordGenerator() { auto generator = PasswordGeneratorWidget::popupGenerator(this); diff --git a/src/gui/PasswordWidget.h b/src/gui/PasswordWidget.h index 6049d2908c..1c414e17dd 100644 --- a/src/gui/PasswordWidget.h +++ b/src/gui/PasswordWidget.h @@ -63,6 +63,7 @@ private slots: void popupPasswordGenerator(); void updateRepeatStatus(); void updatePasswordStrength(const QString& password); + void copyPasswordToClipboard(); private: void checkCapslockState(); @@ -74,6 +75,7 @@ private slots: QPointer m_correctAction; QPointer m_toggleVisibleAction; QPointer m_passwordGeneratorAction; + QPointer m_copyToClipboardAction; QPointer m_capslockAction; QPointer m_repeatPasswordWidget; QPointer m_parentPasswordWidget;