Commit graph

3487 commits

Author SHA1 Message Date
Luz Paz
2867ef8800
Fix various typos 2025-10-25 19:27:01 -04:00
Jonathan White
843cdca5be
Prevent mouse wheel scroll on entry edit username field (#12398)
* Reported by shawnkhu via Matrix, thank you!
2025-10-25 19:25:44 -04:00
André Draszik
99052b21d4
csvImport: fix modified and creation time import
Creation and last modification time stamps are imported incorrectly
during CSV import:
    * the imported created time is set to the CSV's last modified time
    * the imported last modified time is set to the CSV's icon index
      (which isn't a valid time usually and gets set to the current
      date & time instead).

The reason is commit 33a3796074 ("Add ability to parse tags from CSV
files") which shifted indices but missed to update all relevant time
related code locations.

Update the missing indices for those two to fix the import.

* Closes #12378

Fixes: 33a3796074 ("Add ability to parse tags from CSV files")
Signed-off-by: André Draszik <andre.draszik@linaro.org>
2025-10-25 19:25:43 -04:00
Juzu-O
af753f003e
Add URL auto-type and copy options to auto-type selection popup and menus (#12341)
* Added "Type {URL}" option to the auto-type selection popup right-click context menu
* Added "Copy {URL}" option to the auto-type selection popup right-click context menu
* Added keyboard shortcuts: CTRL+4 for "Type {URL}" and CTRL+SHIFT+4 for "Copy {URL}"
* Updated "Use Virtual Keyboard" shortcut from CTRL+4 to CTRL+5 to avoid inconsistency with order of shortcuts
* Added URL auto-type options "{URL}" and "{URL}{ENTER}" to main window entry view right-click menu
* Added URL auto-type options "{URL}" and "{URL}{ENTER}" to toolbar auto-type button dropdown menu
* Added translation strings for "Type {URL}" and "Copy {URL}" to support internationalization

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: juzu-o <3142026+juzu-o@users.noreply.github.com>
Co-authored-by: Jonathan White <support@dmapps.us>
2025-10-25 19:25:36 -04:00
Juzu-O
44cfc20e2b
Add more granular Auto-Type confirmation settings (#12370)
This new setting gives users more control and safety:

* When Auto-Type is invoked globally (e.g., via a system-wide hotkey), the confirmation popup will always appear, letting the user confirm which credentials will be auto-typed.
* When Auto-Type is invoked from within KeePassXC's main window, the confirmation step can be skipped, since the user already can visually confirm which entry is being auto-typed.

This balances usability and security, reducing friction for intended actions while providing an extra safeguard for potentially ambiguous global Auto-Type triggers.

---------

Co-authored-by: Jonathan White <support@dmapps.us>
2025-10-25 19:24:46 -04:00
varjolintu
9b36334cdc
Fix inheriting browser group settings 2025-10-25 19:24:16 -04:00
Jessy LANGE
9dec5fa3ca
Add "press enter to search" option (#12263)
* Also increase auto-search timeout to 500 ms to improve user experience, especially with large databases. The previous value of 100ms guaranteed a search was performed after every character entered, even when typing relatively fast. 

---------

Co-authored-by: Jonathan White <support@dmapps.us>
2025-10-25 19:24:15 -04:00
Jonathan White
0e9dc777d5
Enforce new-line at end of code files 2025-10-25 19:23:05 -04:00
Jonathan White
8fe55558a0
Correct Argon2 settings when creating new database
* Argon2 default parallelism settings were set to the number of threads on the computer. That is excessive on high cpu count computers.
2025-10-25 19:22:47 -04:00
Jonathan White
06f5df6f1e
Fix two problems with URL wildcard matching
* Fixes #12255
* Periods were not being escaped in the url string before being used in a regex resulting in matching 'any character' between domain parts
* Wildcards entered as `*.` were being replaced with simply `*` resulting in unexpected matches to occur. Fixing this has a side effect of `https://*.github.com` NOT matching `https://github.com` which should be the expected behavior. Users can enter both url's if they desire to match the primary and all sub domains or leave out the wildcard entirely to use normal matching behavior.
2025-10-25 19:22:46 -04:00
Jonathan White
8075a98f1b
Improve inactivity timer
* Fix #11957
* Prevent resetting the timer hundreds of times per second
* Improve code flow for inactivity timer in general
2025-10-25 19:20:35 -04:00
Jonathan White
f262c291ef
Fix TOTP visibility on unlock and setting change
Also fix invalid key message being visible when adding new TOTP secret to an entry.
2025-10-25 19:20:24 -04:00
Samuel Rac
049e7eea9a
Fix Proton Pass importer not importing email when there is no username 2025-10-25 19:20:07 -04:00
shotor
b271804c3f
Maintain selected sort option when toggling filters 2025-10-25 19:19:22 -04:00
Jonathan White
cb9fe40ebb
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
2025-10-25 19:17:35 -04:00
Jonathan White
df1035a31d
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.
2025-10-25 18:59:21 -04:00
Jonathan White
abd6d4e2ba
Migrate release-tool to Python 2025-10-25 18:27:18 -04:00
Jonathan White
90df879500
Fix icon download dialog not appearing above windows
* Fixes #12070
2025-06-19 17:56:43 -04:00
Jonathan White
bd20cd2d1d
Replace newlines with HTML line breaks in message dialogs
* Keeps readability of translation strings without losing line breaks due to forced rich text display
2025-06-19 17:56:42 -04:00
Jonathan White
6760865487
Don't add space to invalid TOTP strings
* Fixes #11357
* Introduces validity parameter to TOTP generator function for future use elsewhere in the code base
* Fixes this in preview panel and TOTP dialog
* Disable actions to copy/show TOTP if the settings are invalid
* Show an error message on the TOTP setup dialog if the settings are invalid
* Show a TOTP icon with an x if the settings are invalid
2025-06-19 17:56:41 -04:00
Jonathan White
12b3c347cf
Fix handling of small passphrase wordlists
* Fixes #11856
* Set the minimum recommended wordlist size to 1,296 - equal to the EFF Short List
* Issue a clear warning when using a smaller wordlist but do not prevent generation of passphrases
* Improve wording when removing custom wordlist
2025-06-19 17:56:39 -04:00
Jonathan White
cb9b8ba484
Show main page when editing entry or database settings
* Fixes #11891
2025-06-19 17:55:27 -04:00
Jonathan White
f7fedaa441
Disable save button when viewing non-database screens
* Fixes #11662 - disable the save button when viewing Password Generator and Application Settings to restore previous behavior of toolbar
2025-06-19 17:48:56 -04:00
Jonathan White
ce9e5551fe
Fix minor issues with tags context menu
* Fixes #11808
* Don't show tear off menu or option to tear off if there are no tags
* Fix "No Tags" not being shown on first hover
* Fix issues when using a tag named "No Tags"
* Fix #12153 - tags becoming unsorted in the context menu when switching between database tabs
2025-06-19 17:48:54 -04:00
Kuznetsov Oleg
4290c7be0d
Refactor attachment handling system with enhanced UI (#12085)
* Renamed NewEntryAttachmentsDialog to EditEntryAttachmentsDialog for clarity.
* Introduced EditEntryAttachmentsDialog class to manage editing of existing attachments.
* Added functionality to preview attachments while editing them.
* Enhanced EntryAttachmentsModel with rowByKey method for better key management.
* Add image attachment support with zoom functionality.
* Add html and markdown detection.
* Improve button layout on the attachment section when editing an entry
2025-06-19 17:48:09 -04:00
Copilot
1bd591eba9
Add predefined search for TOTP entries (#12199)
Fixes #9362
This commit was authored by GitHub copilot agent and reviewed by @droidmonkey.

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: droidmonkey <2809491+droidmonkey@users.noreply.github.com>
Co-authored-by: Jonathan White <support@dmapps.us>
2025-06-19 17:44:42 -04:00
varjolintu
6433ad0609
Fix loose URL comparison 2025-06-19 17:44:32 -04:00
varjolintu
5671e3ad41
Passkeys: Fix ordering of clientDataJSON 2025-06-19 17:42:34 -04:00
Jonathan White
877f4399e9
Add safeguards to secure input on macOS (#11928)
* Add safeguards to secure input on macOS

* Fixes #11906
* Disable secure input when password widget is hidden as well as focused out
* Add safeguard to ensure the internal counter that macOS keeps is always set to 1 preventing the ability to disable secure input by focus/unfocus a password field
2025-06-19 17:42:29 -04:00
varjolintu
969b56d3ff
Explicitly allow access to newly created browser group 2025-06-19 17:42:23 -04:00
8-Bit-Brain-Guy
3f521bb78c
Reduce tab indentation width in notes fields (#11919)
---------

Co-authored-by: 8-Bit-Brain-Guy <>
Co-authored-by: Tim Baumgarten <tbaumgarten@dspace.de>
2025-06-19 17:42:08 -04:00
varjolintu
8491f11e64
Fix settings native messaging path with Tor Browser launcher in Linux 2025-06-19 17:41:16 -04:00
Jonathan White
f8b7dc88a9
Implement database closing question on escape 2025-06-19 17:40:51 -04:00
Jonathan White
925af722f8
Fix saving database backup file
* Fixes #11831
* Also fixes weird issues like saving backup of a backup due to function reuse
2025-06-19 17:38:42 -04:00
Jonathan White
97f7136cd3
Write to buffer before writing directly to database file
* Fixes #11819

When direct write save option is enabled and a hardware key is used with a press required, it is possible that the database file will be truncated to 0 bytes. This is avoided by writing the database to a memory buffer first allowing for key transform to occur, then dumping the buffer into the database file.

This change also improves the overall safety of the direct write save option as there is far less chance for an error to occur while writing to the database file.

Thanks to @ChrisLnrn for reporting this issue!
2025-06-19 17:37:20 -04:00
Jonathan White
a892385f15
Allow groups to restrict by browser integration key (#6437) 2025-05-17 16:26:06 -04:00
Jonathan White
55d75fbd53
Add ability to parse tags from CSV files
* Closes #7956
2025-03-01 17:14:51 -05:00
Jonathan White
4f552ba3ed
Fix various quirks with CSV import widget and parser
* Fixes #11502 - correct improper handling of text qualifiers

* Improve layout of csv import widget
* Hide error messages when trying to import again
2025-03-01 17:14:44 -05:00
w15dev
9b1ee4b476
Enhance image attachment handling by caching loaded images and improving scaling logic 2025-02-23 17:20:54 -05:00
Adrian Martin
ea2f17b9a9
Feature: HTML export from CLI tool (#11590)
This commit introduces support for exporting a KeePassXC database in
HTML format via the CLI tool. The key changes include:
- Refactoring HtmlExporter:
  - Moved HtmlExporter to the format directory and made its API
    compatible with CsvExporter.
  - Since the original HtmlExporter had a direct dependency on the
    gui/Icons functions and indirect dependencies on the
    gui/DatabaseIcons class, only the non-GUI parts were moved to
    format/HtmlExporter.
  - All icon-related functionality was encapsulated in a new child
    class, gui/HtmlGuiExporter.
    - The gui/HtmlGuiExporter retains the original functionality of the
      HtmlExporter class.
    - The format/HtmlExporter now generates HTML export without icons.
      Adding icon support to format/HtmlExporter would require moving
      icon management logic to the core, which could have broader
      implications.
- CLI integration:
  - Updated cli/Export to use format/HtmlExporter.
- GUI Integration:
  - Updated gui/export/ExportDialog to use gui/HtmlGuiExporter.
- Build System Updates:
  - Updated CMakeLists.txt to build HtmlExporter as part of core_SOURCES
    and HtmlGuiExporter as part of gui_SOURCES.
- Testing:
  - Updated TestCli to automatically verify the output of the HTML
    export.

Signed-off-by: AdriandMartin <adriandmartin@protonmail.com>
2025-02-23 16:19:13 -05:00
xboxones1
3d8dac0c53
Dynamically change the status bar color depending on the current screen (#11672)
* Revert (https://github.com/keepassxreboot/keepassxc/pull/11455)
* Do not use styles for QStatusBar
* Dynamically change the status bar color depending on the current screen
2025-02-23 16:19:07 -05:00
Jonathan White
beb314d7c7
Support tearing off tags menu (#11652)
* Support tearing off tags menu
* Closes #11649 - tags menu can be torn off to set and unset tags without having to dive into the context menu every time.
* Tags menu will hide when database is locked or view is switched away from the main database view (eg, settings)
2025-02-22 20:45:24 -05:00
Jonathan White
903b8f189e
Improve browser notice about snap/flatpak support 2025-02-22 20:45:19 -05:00
Jonathan White
f0c5c2ad3f
Update fuzz testing instructions
* Also fix env var name
2025-02-22 19:38:32 -05:00
Jonathan White
43205995c6
Remove remote database code
This should not have been backported to 2.7.x branch
2025-02-22 12:56:00 -05:00
Jonathan White
bb4c957144
Always reset Auto-Type state on finished signal
There were a couple code paths that did not reset the state appropriately and could cause undefined behavior in the auto-type processing.
2025-02-22 08:23:31 -05:00
Jonathan White
4034c68e67
Show Auto-Type select dialog even if window title is empty
* Fixes #11597

Add Tools::asSet
2025-02-22 08:23:31 -05:00
Jonathan White
089d0ca2b7
Prevent AltGr showing the menubar on Windows
* Fixes #11549
2025-02-22 07:41:49 -05:00
varjolintu
6197893e01
Prevent using URL wildcards in TLD 2025-02-22 07:41:34 -05:00
Jonathan White
8d1898bd0b
Fix build on macOS 2025-02-10 19:39:28 -05:00