Installs bundle icons to the Resources folder during the build stage and not during the install stage. This ensures that the app has an icon when run directly from the .app folder inside the IDE. Previously, the icon would be installed only when running make install or cpack.
Fixes#11998
Avoids UI lockups by removing several unnecessary mutex blocks and avoiding redundant key detection calls.
Detect Yubikeys dynamically when challenging:
Prevents issue where correct key cannot be found if the internal state was reset prior to saving
This can occur if a user has multiple tabs open and multiple keys connected. Then switches to a locked tab without their DB key inserted which resets detection state.
Side Benefit - ensures proper cascade between USB and PC/SC interfaces so users can switch between the two modes seamlessly.
* Adds donation, contact and up-to-date transifex URL
* Add features to appdata.xml for FlatHub
* Remove old releases to reduce file size
* Improve summary and description text
* Add Entry::calculateDifference()
This new function contains the logic that was previously in
EntryHistoryModel::calculateHistoryModifications().
It allows the re-use to display the differences in case of a merge.
* Introduce Database Merge Confirmation Dialog
Adds a dialog allowing a user to review the changes of a merge operation.
This dialog displays the changes and allows the user to abort the merge
without modifying the database.
Fixes#1152
* Added dry run option to Merger
* Changed behavior when actual merge differs from dry run to just output a warning to console
* Fixed KeeShare conflicting with merge operations in the middle of a merge
---------
Co-authored-by: Jonathan White <support@dmapps.us>
* Fix translation issues for "FIT" and "New Attachment" in attachment editor
* Fix markdown preview persistence and enable external links in attachment editor
* Update preview panel if manually moved from collapsed position
* Match edit view scroll position (by percentage) when changed. This ensures the preview remains in relative sync with the edited document, for example when a large amount of HTML reduces down to a short preview document.
* Fix default preview size to be half the width of the edit widget.
* Set tab stop to 10 and remove base ui file
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Jonathan White <support@dmapps.us>
* 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>
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>
* 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>
* 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
* 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
* 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
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>
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>
* Closes#11467 - Describe default search fields
* Closes#11468 - Fix lock database shortcut
* Closes#8259 - Add a note about 1Password OPVault specifics
* Closes#9794 - Add section anchors for easy linking
* Closes#10316 - Show how to setup managed Edge on macOS
* Closes#7805 - Document entry url handling
* Closes#9143 - Document database merge behavior
* Closes#10876 - Correct wording in browser and passkey sections
Update outdated images of the user interface. Improve wording and flow of entire documentation. Fill in missing pieces based on user feedback.
Add mention about URL wildcards
Fixes#5290Fixes#9062Fixes#8545
* Fix data loss on failed reload
- External modifications to the db file can no longer be missed.
- Fixed dialogFinished signal of DatabaseOpenDialog was not emitted when dialog was closed via the 'X' (close) button
- For reloading with a modified db, an additional choice has been added to allow the user to ignore the changes in the file on disk.
- User is now presented with an unlock database dialog if reload fails to open the db automatically. For example when the user removed the YubiKey, failed to touch the YubiKey within the timeout period, or db pw has been changed.
- Mark db as modified when db file is gone or invalid.
- Prevent saving when db is being reloaded
- If merge is triggered by a save action, continue on with the save action after the user makes their choice
---------
Co-authored-by: vuurvlieg <vuurvli3g@protonmail.com>
Co-authored-by: Jonathan White <support@dmapps.us>