Skip to content

Add URL auto-type and copy options to auto-type selection popup and menus #12341

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 6 commits into from
Aug 10, 2025

Conversation

juzu-o
Copy link
Contributor

@juzu-o juzu-o commented Aug 2, 2025

Description

This pull request adds URL auto-typing and copying functionality to KeePassXC's auto-type selection popup window to address the missing URL options in the auto-type feature.

Changes implemented:

  • 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

The implementation follows the existing patterns used for username and password auto-type/copy functionality, ensuring consistency across the application. URL options are placed after existing auto-type options (username, password, TOTP) and are properly disabled when entries don't have URL fields.

Fixes #12315

AI Disclosure: This pull request was created with assistance from Copilot AI (Claude Sonnet 4 language model) for code generation and implementation guidance.

Screenshots

Auto-type_popup_window_context_menu
auto-type_toolbar_menu

Testing strategy

Manual Testing Performed:

  • Verified new URL auto-type and copy options appear in auto-type selection popup context menu
  • Tested keyboard shortcuts CTRL+4 and CTRL+SHIFT+4 for URL functionality
  • Confirmed "Use Virtual Keyboard" shortcut change from CTRL+4 to CTRL+5 works correctly
  • Tested URL auto-type options in main window entry view right-click menu
  • Tested URL auto-type options in toolbar auto-type button dropdown menu
  • Verified options are properly disabled for entries without URL fields
  • Tested with entries containing various URL formats
  • Confirmed no regressions in existing auto-type functionality
  • Verified translation strings are properly integrated
  • Tested on platforms: Windows and Linux (Fedora 42 / KDE / X11)

Type of change

  • ✅ New feature (change that adds functionality)

@Copilot Copilot AI review requested due to automatic review settings August 2, 2025 16:53
Copy link

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR adds URL auto-typing and copying functionality to KeePassXC's auto-type selection popup window and main entry menus. The implementation follows existing patterns for username, password, and TOTP fields to provide consistent URL handling across the application.

Key Changes:

  • Added URL auto-type options ("{URL}" and "{URL}{ENTER}") to context menus and toolbar dropdowns
  • 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 conflicts

Reviewed Changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
src/gui/MainWindow.ui Defines new UI actions for URL auto-type functionality
src/gui/MainWindow.cpp Implements URL auto-type actions in main window menus and connects signals
src/gui/DatabaseWidget.h Declares new URL auto-type method signatures
src/gui/DatabaseWidget.cpp Implements URL auto-type methods that call performAutoType with URL templates
src/autotype/AutoTypeSelectDialog.ui Updates help text to show new Ctrl+4 URL shortcut and Ctrl+5 virtual keyboard
src/autotype/AutoTypeSelectDialog.cpp Adds URL field support to auto-type selection dialog context menu
share/translations/keepassxc_en.ts Adds translation strings for new URL-related menu items

@droidmonkey droidmonkey added feature: Auto-Type pr: new feature Pull request adds a new feature labels Aug 2, 2025
@droidmonkey droidmonkey added this to the v2.7.11 milestone Aug 2, 2025
@droidmonkey droidmonkey added the pr: ai-assisted Pull request contains significant contributions by generative AI label Aug 2, 2025
@juzu-o
Copy link
Contributor Author

juzu-o commented Aug 6, 2025

I'd like to propose an addition to this PR.
It came to my mind afterwards, that since users can now choose to auto-type URL in auto-type selection popup, it would be useful to be able to see/check what the URL actually is, by adding URL column to selection popup window.

This addition could be introduced as a separate/standalone PR too, if that would be a better approach.

The commit for this feature can be found in here:
juzu-o@86393ad

This also adds ability to Column Filtering mode to search by URL.

Here below is a technical summary about the addition:

Technical Summary: Add URL Column to Auto-Type Selection Dialog

Feature Overview

This feature adds a new URL column to the auto-type selection popup window, displaying each entry's URL field alongside the existing Group, Title, Username, and Sequence columns. The URL column is positioned as the last column (index 4) after the Sequence column.

AI Disclosure

AI Disclosure: This pull request was created with assistance from Copilot AI (Claude Sonnet 4 language model) for code generation and implementation guidance.

Implementation Details

Files Modified

src/autotype/AutoTypeMatchModel.h

  • Extended ModelColumn enum to include URL = 4
  • Maintains backward compatibility with existing column indices

src/autotype/AutoTypeMatchModel.cpp

  • Updated columnCount() method to return 5 instead of 4 to accommodate the new column
  • Added URL case in data() method's Qt::DisplayRole switch statement to return resolved URL content
  • Added URL case in headerData() method to return "URL" as the column header text
  • URL data supports placeholder resolution using match.first->resolveMultiplePlaceholders(match.first->url())

src/autotype/AutoTypeMatchView.cpp

  • Modified CustomSortFilterProxyModel::filterAcceptsRow() to include URL column (index 4) in search filtering
  • Extended filtering from 3 columns (Group, Title, Username) to 4 columns (Group, Title, Username, URL)
  • Sequence column remains excluded from filtering as intended

Technical Behavior

Column Layout:
auto-type-URL-column-and-filtering

Search Functionality:

  • Column Filtering Mode (default): Now searches Group, Title, Username, and URL fields
  • Database Search Mode: Unchanged - continues to use EntrySearcher for comprehensive database searching
  • Sequence column intentionally excluded from filtering in both the original and updated implementation

Data Handling:

  • URL field supports KeePassXC's placeholder system (e.g., {USERNAME}, {TITLE}, etc.)
  • Empty URLs display as empty cells without special handling
  • Column automatically resizes to content like other columns

@droidmonkey
Copy link
Member

The URL column is very specific and usually not relevant to auto-type. There is a request for showing more columns in the auto-type dialog: #11389 and #1416

Let's save column adjustments for another PR, one that also let's users decide which columns to show (right click menu) and saves the state of those columns in settings.

@droidmonkey droidmonkey self-requested a review August 10, 2025 02:22
@droidmonkey droidmonkey merged commit 9e8a966 into keepassxreboot:develop Aug 10, 2025
11 checks passed
pull bot pushed a commit to blog2i2j/keepassxreboot.._..keepassxc that referenced this pull request Aug 10, 2025
…enus (keepassxreboot#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] <[email protected]>
Co-authored-by: juzu-o <[email protected]>
Co-authored-by: Jonathan White <[email protected]>
pull bot pushed a commit to surkin/keepassxc that referenced this pull request Aug 10, 2025
…enus (keepassxreboot#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] <[email protected]>
Co-authored-by: juzu-o <[email protected]>
Co-authored-by: Jonathan White <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature: Auto-Type pr: ai-assisted Pull request contains significant contributions by generative AI pr: new feature Pull request adds a new feature
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Auto-Type - Option to open a URL is missing
3 participants