Commit graph

3526 commits

Author SHA1 Message Date
xavives
f5bb5985ee
Add Group Path column choice in entry view
Some checks failed
CodeQL / Analyze (push) Has been cancelled
* Closes #9574
2025-01-12 18:08:06 -05:00
Martin van Zijl
6494cdbb4c Remember sort order in Autotype popup dialog
Fixes #1684.
2025-01-12 18:07:26 -05:00
sewe2000
9de623120b Fix displaying html characters in message boxes 2025-01-12 17:28:51 -05:00
Matteson
29ac4da240
Add ability to expire entries from context menus (#8731)
Some checks are pending
CodeQL / Analyze (push) Waiting to run
Closes #1972

Add ability to immediately expire an entry from the context menu

---------
Co-authored-by: Jonathan White <support@dmapps.us>
2025-01-12 07:55:22 -05:00
varjolintu
832340e209 Fix setting window title as modified
Some checks are pending
CodeQL / Analyze (push) Waiting to run
2025-01-12 00:14:32 -05:00
Kuznetsov Oleg
dce34de875
Add New/Preview Entry Attachments dialog and functionality (#11637)
Closes #11506
Closes #3383

* This change adds a new opportunity to add attachments that don’t require a real file in the file system.
* Add a new dialog window to add and preview attachments and integrate it into the EntryAttachmentsWidget.
* Attachment preview support for images and plain text files.

Additional enhancements:
* Fix sizing of attachment columns
* Add padding to attachment table items
* Fix targeting of preview widget styling to not impact unintended children
2025-01-11 23:08:19 -05:00
Jonathan White
40ee047ef0 Fix crash when pressing home key on empty tags field
Some checks failed
CodeQL / Analyze (push) Has been cancelled
* Fixes #11344
2025-01-08 15:44:04 -05:00
Jonathan White
17dc022e15 Fix rendering &amp; and &quot; in preview panel
Some checks failed
CodeQL / Analyze (push) Has been cancelled
* Set plain text mode on elements that should never have styling
* Revert html escaping as a prior fix
2025-01-06 06:23:31 -05:00
Jonathan White
620abb96f2 Implement Secure Input Field mode on macOS
Some checks failed
CodeQL / Analyze (push) Has been cancelled
* Fixes #4738
* Also fixes flaky handling of caps lock detection events
2025-01-04 12:40:51 -05:00
Jonathan White
edab0faa94 Add Proton Pass importer
Some checks are pending
CodeQL / Analyze (push) Waiting to run
* Closes #10465
2025-01-03 17:45:50 -05:00
Kuznetsov Oleg
9e29b5c7b6
Show a clear error if no slots on hardware key(s) are configured (#11609)
Some checks are pending
CodeQL / Analyze (push) Waiting to run
Fixes #11543

Also fix delayed polling on window activation

---------

Co-authored-by: w15dev <w15developer@proton.me>
Co-authored-by: Jonathan White <support@dmapps.us>
2025-01-02 23:05:22 -05:00
xboxones1
2afec91e87
Minor style fixes (#11445)
Some checks are pending
CodeQL / Analyze (push) Waiting to run
* Clean up removed elements in qt stylesheets
* Disable main window when saving
* Fixed triangle size in group view

---------

Co-authored-by: Jonathan White <support@dmapps.us>
2025-01-01 22:23:27 -05:00
Jonathan White
fb022cb5e9 Fix passphrase word lists not rendering with UTF-8
Some checks failed
CodeQL / Analyze (push) Has been cancelled
* Fixes #11599
2024-12-27 18:06:17 -05:00
Stephan Heffner
e76e9d42c7
Passphrase "MIXED case" Type (#11255)
Some checks failed
CodeQL / Analyze (push) Has been cancelled
* An additional approach to create passphrases with one random word being in UPPERCASE.
* Also remove duplicate character count from passphrase generator

---------

Co-authored-by: Stephan Heffner <stephan@heffner.it>
Co-authored-by: Jonathan White <support@dmapps.us>
2024-12-25 22:56:02 -05:00
varjolintu
9670a5e74e Add CustomData::getKeyWithPrefix()
Some checks are pending
CodeQL / Analyze (push) Waiting to run
2024-12-25 21:33:19 -05:00
varjolintu
132ca42ec5 Fix renaming extension key name in Database Settings 2024-12-25 21:33:19 -05:00
Jonathan White
af0c1644a6 Add copy shortcuts to Auto-Type select dialog
Some checks failed
CodeQL / Analyze (push) Has been cancelled
* Fixes #10213
* Sets copy password/username/totp to Ctrl+Shift+1/2/3 respectively
2024-12-24 08:28:03 -05:00
Jonathan White
d60472328f Additional exclusion fields for Windows Clipboard
* Fixes #7127
2024-12-24 08:27:44 -05:00
Jonathan White
5e61db630c Fix entry preview rendering HTML
* Fixes #11538 - prevent rendering HTML in Title, Password, and URL fields in the entry preview pane.
2024-12-24 08:25:29 -05:00
xboxones1
f71cca4eba DarkTheme: Fix color for handles
Some checks failed
CodeQL / Analyze (push) Has been cancelled
2024-12-07 11:19:04 -05:00
Jonathan White
b1180b3341 CLI: Restore the original codepage on windows
Some checks failed
CodeQL / Analyze (push) Has been cancelled
* Fixes #11465
2024-12-03 14:32:27 -05:00
Jonathan White
9a63e80386 Fix crash on Linux when database is closed without hardware key present
* Fixes #11450
2024-11-30 15:07:15 -05:00
Jonathan White
b29993abe5 Fix crash when multiple dbus unlock calls are issued
* Fixes #11512
2024-11-30 15:07:15 -05:00
xboxones1
1d581ee027
DarkTheme: Fix separator color for TagView (#11511) 2024-11-30 20:59:47 +01:00
Jonathan White
b9c5869806 Implement T-CONV and T-REPLACE-RX entry placeholders
* Closes #7293
* Move existing T-CONV and T-REPLACE-RX code from AutoType to Entry. Replumb AutoType to use the entry functions.
* Improve placeholder code in various place
2024-11-13 17:51:21 -05:00
xboxones1
4acb3774e6 Hide status bar on WelcomeScreen 2024-11-13 16:53:06 -05:00
Sami Vänttinen
2fc24be331
Browser: Fix cancel with database unlock dialog (#11435) 2024-11-10 17:30:38 -05:00
Findus
bff0b93f5f
Device Password fallback when Touch-ID devices are unavailable (#11410)
* Added kSecAccessControlDevicePasscode to accessControlflags when feature is enabled in settings and no biometrics are available

* Able to use either biometry or password, if touchid is unavailable

* Additional check if TouchID is enrolled:

With that we can add the "kSecAccessControlBiometryCurrentSet" Flag even though Biometry is unavailable due to closed lid or unpaired keyboard. Adding this flag when TouchID is not enrolled results in an error when trying to save the secret.

The kSecAccessControlWatch Flag for apple watch compatibility does not have this limitation. With that we can also offer quick unlock with only apple watch or password

* Fallback to quick unlock without touchid if saving key fails with selected flags, might fix quick unlock on a hackintosh
2024-11-10 17:10:04 -05:00
FischLu
ca9b88fae8
Replace legacy code on macOS builds (#11428)
* Fix macOS build error due to CGDisplayStreamCreate being deprecated.

---------

Co-authored-by: FischLu <randomDe@proton.me>
2024-11-10 09:18:04 -05:00
Jonathan White
6e81451f64 Add timeout to SSH Agent streams
* Fixes #11128
2024-11-10 09:15:16 -05:00
xboxones1
d03ffc228c Fixed background color when window is out of focus 2024-11-02 10:49:27 -04:00
Jonathan White
2738a72b43 Fix assert hit when viewing entry history
* Fixes #11371
* Adds test for showing entry history
* Improved page switching capabilities for entry edit widget
2024-10-27 06:49:10 -04:00
Jonathan White
5d24495704 Hide the menubar when menus lose focus (if toggled off)
* Fixes #10768
* Also fix menubar toggling not working if Qt version is less than 5.15
2024-10-26 11:06:20 -04:00
Jonathan White
34fe413dad Fix resolving advanced values in entry preview
* Fixes #10961
* Fixes #7410 - show content of references when previewing notes
2024-10-26 09:00:04 -04:00
Jonathan White
feafceca57 Improve related splitter UX
* Prevent group pane from being hidden just by dragging. Introduce new View menu setting to hide the group pane.
* Replace the preview panel "close" icon with a "collapse down" icon making the intention clearer.
* Better organize the view menu
2024-10-26 08:59:06 -04:00
Jonathan White
8acc54225d Reset splitter sizes on database unlock
* Attempt to avoid issue with splitters not being appropriately calculated because the main window isn't sized yet. This can happen if the main window is hidden when the database is loaded and the splitter sizes are not recorded in the config file.
2024-10-26 08:59:06 -04:00
Sami Vänttinen
6e0baf9f2c
Support passkeys with Bitwarden import (#11401) 2024-10-24 20:12:47 -04:00
vallode
f07db033c6
Fix MacOS login items showing ambigious name (#11373) 2024-10-17 09:37:38 +02:00
Jonathan White
4f8c204096 Avoid hitting assert on XML export
* Fixes #11365
2024-10-15 08:16:01 -04:00
Jonathan White
02881889d5 Fix entry notes reveal button requiring two clicks sometimes 2024-10-14 09:56:17 -04:00
xboxones1
d57d167e9c Dark theme fix colors for qmenu 2024-10-11 18:10:09 -04:00
Patrick Klein
740994ed48
Add option to disable opening a browser window when double-clicking the "URL" column (#11332) 2024-10-09 06:42:33 -04:00
techninja1008
dbf9587775
Add database name, color, and icon options for unlock view (#10819)
Closes #10783

Adds three database configuration options (stored as public custom data) that allow a database to have a public name/summary, color, and/or icon to be displayed on the unlock screen. This information is configured in the Database Settings and stored in the database public custom data (ie, unencrypted).

The name/summary is stored in KPXC_PUBLIC_NAME, the color is stored in KPXC_PUBLIC_COLOR, and the icon is stored in KPXC_PUBLIC_ICON.

---------

Co-authored-by: Jonathan White <support@dmapps.us>
2024-10-07 23:42:22 -04:00
Jonathan White
7498fe24dc Fix translations on Keyboard Shortcuts Widget
* Fixes #10335
2024-10-06 23:23:09 -04:00
Jonathan White
0941ff41b6 Prevent multiple lock requests on Linux
* Fixes #11000

When the screen locks on e.g. gnome we receive multiple independent signals of that, namely the Gnome session manager and the gnome / freedesktop screensaver.

When this happens, this causes multiple "lock database" requests to be issued. The first one correctly shows the question to discard/cancel, but the second one while the first is still asking goes and dismisses the question and then goes to ask it again. The result is it acts like you didn't answer correctly (ie, to cancel) and the database is locked.
2024-10-06 23:22:57 -04:00
Jonathan White
12ee4a9446 Fix horizontal scrollbar not showing in group view
* Fixes #11300
2024-10-06 23:22:44 -04:00
Jonathan White
e07eb2c82c Overhaul action states and add icons to toolbar
* Fixes #10981
2024-10-06 23:22:18 -04:00
Jonathan White
684122c9a9 Add Import/Export to application settings
* Closes #9452 - add import/export buttons to application settings

* Fixes #11120 - duplicate both menubar and toolbar visibility settings into the application settings

* Fixes #8561 - improve placement of various settings between General and Security pages

* Improve tool tip for backup database setting
* Improve wording of various settings
2024-10-06 23:22:02 -04:00
Jonathan White
ba0fc3b886 Minor UI fixes
* Fixes #11044 - password generator excluded characters tooltip was incorrect

* Fixes #11084 - allow more than 30 days for showing expiring passwords. Also fix the ability to properly translate this control.

* Fixes #11212 - don't show password on creating new database

* Fixes #10726 - improve indication of hardware key polling. Also improve layout spacing of unlock dialog.

* Fixes #11142 - provide better link for challenge-response information
2024-10-06 23:22:02 -04:00
Jonathan White
3fde6aae45 Fix detection regex for yubikey on Windows
Something changed in the behavior of regex in Qt that prevents matches using a begin line caret without a complementary end line.
2024-10-06 23:22:02 -04:00
Jonathan White
b8564d5c24 Handle alternative 1Pux password entry
* Fixes #11298
2024-10-06 23:22:02 -04:00
sforst
d2da13da20
Support opening remote databases (#10896)
* Use the import wizard to support opening a remote database

---------

Co-authored-by: Jonathan White <support@dmapps.us>
2024-10-06 22:39:50 -04:00
sforst
abcb1414a3
Add possibility to configure timeout for remote process (#11271)
* Add possibility to configure timeout for remote process
* Fixes #11234
2024-10-06 22:37:56 -04:00
varjolintu
ea2e36c676 Add support for group selection when creating a passkey 2024-10-01 08:13:01 -04:00
Jonathan White
c8fc25ea5c Support KeePass2 TOTP settings
* Fixes #7263
* Also improves handling of custom TOTP settings
2024-09-04 06:42:31 -04:00
varjolintu
2f0160438a Allow deleting extension plugin data from Browser Statistics 2024-09-02 12:53:34 -04:00
Jonathan White
48d0f2b159 Fix signal/slot disconnect when opening import wizard
* Fixes #11037
2024-08-25 08:27:51 -04:00
christianwengert
c7d318236f Prevent duplicate entries in passphrase wordlists
Replace a QVector for the wordlist with a QSet. This removes all duplicate entries in a given wordlist.
Thus, it hinders a malicious wordlist that has the proper length (>4000 entries) but with repetitions (effectively << 4000 entries) to be used and potentially create weaker passphrases than estimated.

Example:
List with 4000 items but only 64 unique words would lead to only 48 bit of Entropy instead of ~95 bit!
2024-08-22 00:21:38 -04:00
Jonathan White
3c5f49dc5b Windows: Fix icon not present on executable
* Fixes #11025
2024-08-22 00:20:53 -04:00
Jonathan White
d643d338d2 CLI: Add -d dry-run shortcut to merge command
* Fixes #11191
2024-08-22 00:19:00 -04:00
Felix Nüsse
ac6654c532
Use Icons for password strength (#9844)
---------

Co-authored-by: Jonathan White <support@dmapps.us>
2024-08-12 09:39:11 -04:00
Jonathan White
6a9ed21079 Prevent long-running threads from deadlocking the program with only 1 CPU
* Fixes #10391
2024-08-12 06:16:38 -04:00
Sami Vänttinen
b3bec8b2b4
Add option to disable database lock when switching user on macOS (#9707) 2024-08-11 18:32:10 -04:00
Carlo Teubner
42ce2a49fa Fix copy-to-clipboard shortcut on macOS
It turns out that the previous implementation, based on installing an event filter in every QAction instance, does not work on macOS, likely due to a Qt bug.

Attempt to work around this by using a different implementation of the same idea, by reacting to ShortcutOverride events in the MainWindow object.

Fixes #10929.
2024-08-11 18:31:47 -04:00
varjolintu
5351392237 Browser: Resolve references in Access Confirm dialog 2024-08-11 18:31:34 -04:00
Christoph Honal
672a9fe87f Hardware keys: Fix PCSC daemon recovery on Linux 2024-08-11 17:43:48 -04:00
Andreas Deininger
14619cb16e Fix typos 2024-08-09 17:41:08 -04:00
Janek Bevendorff
e48ef80e9c Fix code formatting with new clang-format version 2024-07-28 18:25:12 -04:00
StoyanDimitrov
afe634d4f2 Fix typos in tooltips from EditEntryWidgetBrowser.ui 2024-07-02 06:52:37 -04:00
louib
166a371050 Refactor: separate GUI sources from core sources
This PR splits the GUI source files from the core source files. The immediate goal is to allow the CLI to require only a minimum number of dynamic libraries. The long term goal is to create an architectural boundary around the core module, in preparation of libkdbx.
2024-06-29 11:50:23 -04:00
Carlo Teubner
854459068f Database key settings: fix UI bug
Fix a bug in the database key settings dialog, where it was previously
always incorrectly applying an empty password if the password was not
changed but some other change was made (e.g. adding or removing a key
file).
2024-06-29 11:49:16 -04:00
Carlo Teubner
198889c7a4
Fix a couple more Qt 5.15 deprecation warnings (#10953)
* More {QString->Qt}::SkipEmptyParts
* QProcess::start: non-deprecated overload
2024-06-22 10:54:50 -04:00
Peter Mescalchin
6b1ab1a5ed Update URLs to Chrome Web Store page for KeePassXC-Browser extension 2024-06-22 07:58:48 -04:00
xboxones1
43e3fbaaf0 Fix сentering icon and text on buttons 2024-06-22 07:41:39 -04:00
Carlo Teubner
dad8b1d2ea Fix backup file path substitution
Previously, in a pattern like "{TIME:yy} {TIME}",
substituteBackupFilePath() would greedily use the entire string
"yy} {TIME" as the format specifier for the first TIME template, instead
of just "yy". Fix this, by adjusting the regular expression.

This ends up changing the behaviour of a weird corner case that is
covered in the tests, so change the test. I don't think anyone cares
about that case, and I think the current behaviour is better there.

Fixes #10505 (proved by adding a test case very similar to what was
reported there).
2024-06-22 07:40:21 -04:00
Rafael Sadowski
34808a2caa Verify USB listener callback handle
Do not use `handle` if `libusb_hotplug_register_callback` fails
2024-06-22 07:28:04 -04:00
Sami Vänttinen
fbdd97b1be
Refactor Database Settings (#9485)
Includes following changes:

* Encryption Settings now has a similar key with the new database wizard for switching between Advanced and Simple Settings
* The extra UI layer DatabaseSettingsDialog.ui has been removed. DatabaseSettingsDialog class now inherits EditWidget instead of DialogyWidget (just like Application Settings).
* Extra classes for separate page settings (DatabaseSettingsPageFdoSecrets, DatabaseSettingsPageKeeShare) have been removed. Instead the widgets are used directly in DatabaseSettingsDialog. Same could be done later to Application 

---------

Co-authored-by: Jonathan White <support@dmapps.us>
2024-06-22 07:25:32 -04:00
Carlo Teubner
88b76244cf
Fix all Qt 5.15 deprecation warnings (#7783)
* Deprecated qSort() -> std::sort()
* Replace QDateTime::toString(Qt::DefaultLocaleShortDate) with Clock::toString()
* Replace QDateTime::toString(Qt::SystemLocaleShortDate) with QLocale::system().toString(..., QLocale::ShortFormat)
* Use QDateTime::startOfDay() instead of QDate(QDateTime) 
  Note: QDateTime::startOfDay() is only available in Qt 5.14, we need to guard it
* Replace QString::SkipEmptyParts with Qt::SkipEmptyParts
  Note: Its designated replacement, Qt::SplitBehavior, was only added in Qt 5.14.
* Don't call deprecated QFlags(nullptr) constructor
* QSet::{toList->values}
* Replace QList::toSet, QSet::fromList with Tools::asSet()
* QHash::insertMulti -> QMultiHash::insert
* QProcess::startDetached: non-deprecated overload
* QProcess::{pid->processId}
* QPainter::{HighQuality->}Antialiasing
* QPalette::{background->window}()
* Use Qt::{Background,Foreground}Role
* endl -> Qt::endl, flush -> Qt::flush
* Make YubiKey::s_interfaceMutex non-recursive
* OpenSSHKeyGenDialog: use non-deprecated QComboBox::sizeAdjustPolicy setting
2024-06-22 07:22:44 -04:00
Carlo Teubner
5bf5b93836 Passkey importer: fix file picker parent
When selecting "Database → Import Passkey", we show a file picker.
Previously, we did not specify a parent widget for it. This could have
undesirable effects on its presentation. (For example, with the Sway
tiling Wayland compositor, it would show the file picker as a tiled
window rather than a floating one.)

Fix the issue by passing in the parent widget. This is also in line with
all other usages of FileDialog::getOpenFileName() in this project.
2024-06-22 07:13:07 -04:00
Carlo Teubner
07f565aa49 Require Qt >= 5.12
Bump the minimum required Qt version up to 5.12, as per
https://github.com/keepassxreboot/keepassxc/issues/10859#issuecomment-2148477826.
Previously, the minimum version was 5.2.0 based on the CMakeLists.txt
check, though it's unclear if such old versions would actually work.

With this, we are able to remove a whole bunch of #ifdef'd code.
2024-06-22 00:01:23 -04:00
varjolintu
e6db2ce3b9 Passkeys: Fix showing correct username in the reports 2024-06-21 23:53:42 -04:00
AgostonSzepessy
1f9c25cc91
Show character count in password generator dialog (#10940)
Displays the number of characters in the password field in the password generator dialog. This fixes #10858.
2024-06-21 23:53:18 -04:00
Michal Suchanek
80ac50a144 Increase the time interval for window show workaround
When the keepassxc window is shown something generetes a hide event, and it is hidden again immediately.

The 50ms interval for avoiding hiding the window when shown is not enough, even on modern systems.

Make the interval longer.
2024-06-21 23:33:52 -04:00
Guido Falsi
f4b91c17a9
Correct libusb usage on FreeBSD (#10736)
Change type of Handle on FreeBSD. On FreeBSD the libusb_hotplug_register_callback() function uses a pointer to a struct as a handle.

---------

Co-authored-by: Janek Bevendorff <janek@keepassxc.org>
2024-06-19 16:50:56 -04:00
James Carroll
5f2ee86d72
Snap: Improve Web-browser Native Messaging host functionality (#10906)
* Snap: Improve Web-browser Native Messaging host functionality

This commit allows for the snap distribution of KeepassXC to self-manage native messaging manifests
This is done by making the binary aware of the snapd environment changes that currently prevent this.
Furthermore, the snap sandbox is expanded to the bare minimum needed to access these privileged files.

Please note if running a self-compiled / untrusted KeepassXC snap build (I.E, installed with --dangerous)
that you must manually run `sudo snap connect keepassxc:browser-native-messaging` to grant permissions.

This will work on all distributions that expose `/snap/bin/` - such as Ubuntu, Debian, etc.
For systems which don't provide `/snap/`, such as Fedora, follow instructions for enabling "Classic" snaps.
e.g., `sudo ln -s /var/lib/snapd/snap /snap`

---------

Co-authored-by: Jonathan White <support@dmapps.us>
2024-06-19 15:49:30 -04:00
Carlo Teubner
9972b5f531
Fix Copy Password button when text is selected (#10853)
When the user chooses to copy the password for an entry to the clipboard, previously there was logic to check if text was selected, and if so, that text was instead copied to the clipboard. That made sense if
(a) the user invoked the Copy Password action via its keyboard shortcut, and (b) that keyboard shortcut was configured (as per default) to be Ctrl-C, i.e. the same as the system action for copy-to-clipboard.

However, it made no sense if the user invoked that action in some other way, for example by clicking the corresponding toolbar button.

It also made no sense in the case that the Copy Password action had some other keyboard shortcut assigned. Also, if some other action had Ctrl-C assigned, the logic would not kick in then.

Fix all of the above by modifying the keyboard shortcut logic to intervene precisely in the case where a shortcut is pressed that matches the system copy-to-clipboard shortcut; only in that case do we now check if text is selected and if so copy that to the clipboard instead of the action we would otherwise take.

Fixes #10734.
2024-06-19 08:03:42 -04:00
Carlo Teubner
24dc07897b Search entry: respect shortcut config on Copy key
If the system Copy key sequence (i.e. Ctrl+C or Cmd+C) is pressed while
inside the search entry without any text being selected, previously we
would copy the currently selected entry's password. This made sense when
keyboard shortcuts were fixed. Now that they are configurable, change it
to re-route the event to the main window, which can then take the
appropriate action (i.e. Ctrl+C might be bound to some other action).
2024-06-16 17:38:29 -04:00
Carlo Teubner
def56f745c App settings: fix widget tab order
Fixes #9765.
2024-06-16 16:49:50 -04:00
Carlo Teubner
da8874ded6
Improve Entry placeholder resolution (#10846)
* Entry placeholder resolution: don't overdo it

After resolving placeholders, previously the code would do it all over again if anything had changed, multiple times up to the recursion limit. This would have the effect of applying a much greater recursion limit, which is confusing and unnecessary, and probably undesired.

* Entry tweaks and minor refactoring

- Entry::size(): when computing tag size, use same delimiter set as in other places in the code
- Factor tag delimiter set regex out into global constant
- Placeholder resolution: remove unnecessary special casing for self-referential placeholders (these are taken care of by existing recursion depth limit)
- Placeholder resolution: less wasteful string building loop
- Move some constants from being public static data members of Entry to being local to Entry.cpp (in anonymous namespace)
- Migrate some QRegEx instances to QRegularExpression, the modern alternative
- Miscellanous minor code cleanups

* Entry: fix hitting recursion limit with {braces}

When encountering a {brace-enclosed} substring, the placeholder resolution logic would previously keep recursing until it hit the recursion depth limit (currently 10). This would lead to "Maximum depth of replacement has been reached" messages, and was also wasting CPU cycles.

Fixes #1741

---------

Co-authored-by: Jonathan White <support@dmapps.us>
2024-06-16 10:47:27 -04:00
Jonathan White
2c0844807e Improve overall database settings behavior
* Fixes #10723 - only display password strength warning when actively editing the password
* Also improve behavior of minimum quality warning
* Improve behavior and handling of password changes with the database settings dialog
* Prevents loss of newly entered password when toggling between elements in the settings page
* On error, switch to tab that prevents saving database settings for easier correction
2024-06-16 08:43:09 -04:00
Jonathan White
2b08af712f Fix encryption settings behavior
* Fixes #10558
2024-06-16 08:43:09 -04:00
Jonathan White
dd1a233859 Fix force conversion of KDBX3 if using Quick Unlock
* Use SHA256 hash of the file path of the database to generate a UUID when using the KDBX3 format. This restores the original behavior of using the file path as the quick unlock lookup key.
2024-06-16 08:43:09 -04:00
Jonathan White
f80e79f71a Improve CSV import when title field isn't specified
* Fixes #10433
2024-06-16 07:51:13 -04:00
Jonathan White
3662f6aa77 Improve handling of clipboard actions
* Fix #10804
2024-06-16 07:47:27 -04:00
Jonathan White
28e6887aa4 Improve handling of encrypted Bitwarden json
* Fixes #10785
2024-06-16 07:47:10 -04:00
Jonathan White
fbace75185 Fix password clear timer inconsistency
* Fixes #10695
2024-06-16 07:46:58 -04:00
Jonathan White
8bc76a2a88 Prevent checking file hash with an empty path
A warning is issued from Qt when the path is empty. This happens most often during test runs, but can also occur when closing a database before everything gets cleaned up.
2024-06-16 07:46:20 -04:00
Carlo Teubner
6c02c74539
MainWindow: move shortcuts from .cpp to .ui file (#10903)
* MainWindow: change Clone Entry shortcut to Ctrl+D from Ctrl+K
* MainWindow: move shortcuts from .cpp to .ui file

The only shortcuts defined in the .cpp file are ones that can't be defined in the .ui file, because they are in some way conditional. This also reduces the number of compiler warnings of the kind:

warning: arithmetic between different enumeration types ‘Qt::Modifier’ and ‘Qt::Key’ is deprecated [-Wdeprecated-enum-enum-conversion] with recent GCC versions.
2024-06-15 15:59:16 -04:00
varjolintu
647272e9c5 Fix typos in DatabaseSettingsWidgetRemote 2024-06-13 16:19:05 -04:00
sforst
1ca607792d
Support remote database access using external tools (#7222)
* Provide remote database sync capability

Allow arbitrary commands to be defined and executed for syncing databases with remote services. This includes sftp, scp, rsync, etc. 

Remote commands are stored per-database and sync operations are manually triggered by the user from the Database -> Remote Sync menu. 

---------

Co-authored-by: Stefan Forstenlechner <t-h-e@users.noreply.github.com>
Co-authored-by: Jonathan White <support@dmapps.us>
2024-06-13 06:23:41 -04:00