mirror of
https://github.com/keepassxreboot/keepassxc.git
synced 2024-10-01 01:26:01 -04:00
Add shortcut to copy password with TOTP appended
This commit is contained in:
parent
59e2c38635
commit
33d8b6db62
7
COPYING
7
COPYING
@ -150,9 +150,6 @@ Files: share/icons/application/scalable/actions/application-exit.svg
|
||||
share/icons/application/scalable/actions/bugreport.svg
|
||||
share/icons/application/scalable/actions/chevron-double-down.svg
|
||||
share/icons/application/scalable/actions/chevron-double-right.svg
|
||||
share/icons/application/scalable/actions/totp.svg
|
||||
share/icons/application/scalable/actions/totp-copy.svg
|
||||
share/icons/application/scalable/actions/totp-edit.svg
|
||||
share/icons/application/scalable/actions/clipboard-text.svg
|
||||
share/icons/application/scalable/actions/configure.svg
|
||||
share/icons/application/scalable/actions/database-change-key.svg
|
||||
@ -217,6 +214,10 @@ Files: share/icons/application/scalable/actions/application-exit.svg
|
||||
share/icons/application/scalable/actions/tag.svg
|
||||
share/icons/application/scalable/actions/tag-multiple.svg
|
||||
share/icons/application/scalable/actions/tag-search.svg
|
||||
share/icons/application/scalable/actions/totp.svg
|
||||
share/icons/application/scalable/actions/totp-copy.svg
|
||||
share/icons/application/scalable/actions/totp-copy-password.svg
|
||||
share/icons/application/scalable/actions/totp-edit.svg
|
||||
share/icons/application/scalable/actions/trash.svg
|
||||
share/icons/application/scalable/actions/url-copy.svg
|
||||
share/icons/application/scalable/actions/user-guide.svg
|
||||
|
@ -25,6 +25,7 @@ NOTE: On macOS please substitute `Ctrl` with `Cmd` (aka `⌘`).
|
||||
|Copy URL | Ctrl + U
|
||||
|Open URL | Ctrl + Shift + U
|
||||
|Copy TOTP | Ctrl + T
|
||||
|Copy Password and TOTP | Ctrl + Y
|
||||
|Show TOTP | Ctrl + Shift + T
|
||||
|Trigger AutoType | Ctrl + Shift + V
|
||||
|Add key to SSH Agent | Ctrl + H
|
||||
|
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M21 11.11V5C21 3.9 20.11 3 19 3H14.82C14.4 1.84 13.3 1 12 1S9.6 1.84 9.18 3H5C3.9 3 3 3.9 3 5V19C3 20.11 3.9 21 5 21H11.11C12.37 22.24 14.09 23 16 23C19.87 23 23 19.87 23 16C23 14.09 22.24 12.37 21 11.11M12 3C12.55 3 13 3.45 13 4S12.55 5 12 5 11 4.55 11 4 11.45 3 12 3M5 19V5H7V7H17V5H19V9.68C18.09 9.25 17.08 9 16 9H7V11H11.1C10.5 11.57 10.04 12.25 9.68 13H7V15H9.08C9.03 15.33 9 15.66 9 16C9 17.08 9.25 18.09 9.68 19H5M16 21C13.24 21 11 18.76 11 16S13.24 11 16 11 21 13.24 21 16 18.76 21 16 21M16.5 16.25L19.36 17.94L18.61 19.16L15 17V12H16.5V16.25Z" /></svg>
|
After Width: | Height: | Size: 630 B |
@ -11,9 +11,6 @@
|
||||
<file>application/scalable/actions/bugreport.svg</file>
|
||||
<file>application/scalable/actions/chevron-double-down.svg</file>
|
||||
<file>application/scalable/actions/chevron-double-right.svg</file>
|
||||
<file>application/scalable/actions/totp.svg</file>
|
||||
<file>application/scalable/actions/totp-copy.svg</file>
|
||||
<file>application/scalable/actions/totp-edit.svg</file>
|
||||
<file>application/scalable/actions/clipboard-text.svg</file>
|
||||
<file>application/scalable/actions/configure.svg</file>
|
||||
<file>application/scalable/actions/database-change-key.svg</file>
|
||||
@ -79,6 +76,10 @@
|
||||
<file>application/scalable/actions/tag.svg</file>
|
||||
<file>application/scalable/actions/tag-multiple.svg</file>
|
||||
<file>application/scalable/actions/tag-search.svg</file>
|
||||
<file>application/scalable/actions/totp.svg</file>
|
||||
<file>application/scalable/actions/totp-copy.svg</file>
|
||||
<file>application/scalable/actions/totp-copy-password.svg</file>
|
||||
<file>application/scalable/actions/totp-edit.svg</file>
|
||||
<file>application/scalable/actions/trash.svg</file>
|
||||
<file>application/scalable/actions/url-copy.svg</file>
|
||||
<file>application/scalable/actions/user-guide.svg</file>
|
||||
|
@ -5430,6 +5430,10 @@ We recommend you use the AppImage available on our downloads page.</source>
|
||||
<numerusform></numerusform>
|
||||
</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy Password and TOTP</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ManageDatabase</name>
|
||||
|
@ -648,6 +648,15 @@ void DatabaseWidget::copyPassword()
|
||||
}
|
||||
}
|
||||
|
||||
void DatabaseWidget::copyPasswordTotp()
|
||||
{
|
||||
auto currentEntry = currentSelectedEntry();
|
||||
if (currentEntry) {
|
||||
setClipboardTextAndMinimize(
|
||||
currentEntry->resolveMultiplePlaceholders(currentEntry->password()).append(currentEntry->totp()));
|
||||
}
|
||||
}
|
||||
|
||||
void DatabaseWidget::copyURL()
|
||||
{
|
||||
auto currentEntry = currentSelectedEntry();
|
||||
|
@ -181,6 +181,7 @@ public slots:
|
||||
void showTotp();
|
||||
void showTotpKeyQrCode();
|
||||
void copyTotp();
|
||||
void copyPasswordTotp();
|
||||
void setupTotp();
|
||||
#ifdef WITH_XC_SSHAGENT
|
||||
void addToAgent();
|
||||
|
@ -279,6 +279,7 @@ MainWindow::MainWindow()
|
||||
m_ui->actionEntryTotp->setShortcut(Qt::CTRL + Qt::SHIFT + Qt::Key_T);
|
||||
m_ui->actionEntryDownloadIcon->setShortcut(Qt::CTRL + Qt::SHIFT + Qt::Key_D);
|
||||
m_ui->actionEntryCopyTotp->setShortcut(Qt::CTRL + Qt::Key_T);
|
||||
m_ui->actionEntryCopyPasswordTotp->setShortcut(Qt::CTRL + Qt::Key_Y);
|
||||
m_ui->actionEntryMoveUp->setShortcut(Qt::CTRL + Qt::ALT + Qt::Key_Up);
|
||||
m_ui->actionEntryMoveDown->setShortcut(Qt::CTRL + Qt::ALT + Qt::Key_Down);
|
||||
m_ui->actionEntryCopyUsername->setShortcut(Qt::CTRL + Qt::Key_B);
|
||||
@ -308,6 +309,7 @@ MainWindow::MainWindow()
|
||||
m_ui->actionEntryTotp->setShortcutVisibleInContextMenu(true);
|
||||
m_ui->actionEntryDownloadIcon->setShortcutVisibleInContextMenu(true);
|
||||
m_ui->actionEntryCopyTotp->setShortcutVisibleInContextMenu(true);
|
||||
m_ui->actionEntryCopyPasswordTotp->setShortcutVisibleInContextMenu(true);
|
||||
m_ui->actionEntryMoveUp->setShortcutVisibleInContextMenu(true);
|
||||
m_ui->actionEntryMoveDown->setShortcutVisibleInContextMenu(true);
|
||||
m_ui->actionEntryCopyUsername->setShortcutVisibleInContextMenu(true);
|
||||
@ -406,6 +408,7 @@ MainWindow::MainWindow()
|
||||
m_ui->menuEntryTotp->setIcon(icons()->icon("totp"));
|
||||
m_ui->actionEntryTotp->setIcon(icons()->icon("totp"));
|
||||
m_ui->actionEntryCopyTotp->setIcon(icons()->icon("totp-copy"));
|
||||
m_ui->actionEntryCopyPasswordTotp->setIcon(icons()->icon("totp-copy-password"));
|
||||
m_ui->actionEntryTotpQRCode->setIcon(icons()->icon("qrcode"));
|
||||
m_ui->actionEntrySetupTotp->setIcon(icons()->icon("totp-edit"));
|
||||
m_ui->menuTags->setIcon(icons()->icon("tag-multiple"));
|
||||
@ -498,6 +501,7 @@ MainWindow::MainWindow()
|
||||
m_actionMultiplexer.connect(m_ui->actionEntrySetupTotp, SIGNAL(triggered()), SLOT(setupTotp()));
|
||||
|
||||
m_actionMultiplexer.connect(m_ui->actionEntryCopyTotp, SIGNAL(triggered()), SLOT(copyTotp()));
|
||||
m_actionMultiplexer.connect(m_ui->actionEntryCopyPasswordTotp, SIGNAL(triggered()), SLOT(copyPasswordTotp()));
|
||||
m_actionMultiplexer.connect(m_ui->actionEntryTotpQRCode, SIGNAL(triggered()), SLOT(showTotpKeyQrCode()));
|
||||
m_actionMultiplexer.connect(m_ui->actionEntryCopyTitle, SIGNAL(triggered()), SLOT(copyTitle()));
|
||||
m_actionMultiplexer.connect(m_ui->actionEntryMoveUp, SIGNAL(triggered()), SLOT(moveEntryUp()));
|
||||
@ -942,6 +946,7 @@ void MainWindow::setMenuActionState(DatabaseWidget::Mode mode)
|
||||
m_ui->actionEntryOpenUrl->setEnabled(singleEntrySelected && dbWidget->currentEntryHasUrl());
|
||||
m_ui->actionEntryTotp->setEnabled(singleEntrySelected && dbWidget->currentEntryHasTotp());
|
||||
m_ui->actionEntryCopyTotp->setEnabled(singleEntrySelected && dbWidget->currentEntryHasTotp());
|
||||
m_ui->actionEntryCopyPasswordTotp->setEnabled(singleEntrySelected && dbWidget->currentEntryHasTotp());
|
||||
m_ui->actionEntrySetupTotp->setEnabled(singleEntrySelected);
|
||||
m_ui->actionEntryTotpQRCode->setEnabled(singleEntrySelected && dbWidget->currentEntryHasTotp());
|
||||
m_ui->actionEntryDownloadIcon->setEnabled((entriesSelected && !singleEntrySelected)
|
||||
|
@ -312,6 +312,7 @@
|
||||
<string>TOTP</string>
|
||||
</property>
|
||||
<addaction name="actionEntryCopyTotp"/>
|
||||
<addaction name="actionEntryCopyPasswordTotp"/>
|
||||
<addaction name="actionEntryTotp"/>
|
||||
<addaction name="actionEntryTotpQRCode"/>
|
||||
<addaction name="actionEntrySetupTotp"/>
|
||||
@ -887,6 +888,11 @@
|
||||
<property name="text">
|
||||
<string>Copy &TOTP</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionEntryCopyPasswordTotp">
|
||||
<property name="text">
|
||||
<string>Copy Password and TOTP</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionGroupEmptyRecycleBin">
|
||||
<property name="text">
|
||||
|
Loading…
Reference in New Issue
Block a user