Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified docs/images/edit_entry.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/images/edit_entry_attachments.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/images/edit_entry_attributes.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/images/edit_entry_colors.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified docs/images/edit_entry_icons.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
27 changes: 13 additions & 14 deletions docs/topics/DatabaseOperations.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -143,16 +143,6 @@ After an entry is configured with TOTP, you will see a clock icon in that entry'
.TOTP Usage
image::totp_usage_examples.png[]

==== Entry Icons
You can select an icon to be displayed with each entry for easy identification. KeePassXC comes with a set of default icons that you can use or you can use your own custom icons. If you defined a URL with an entry, you can also download the favorite icon for that particular website.

NOTE: To delete a custom icon, go to <<Database Maintenance>> where you can purge unused icons and delete one or more icons at a time.

.Entry icon selection
image::edit_entry_icons.png[]

TIP: Each KeePass application has different default icons. If you use a mobile app or KeePass2, be aware that the default icons may not be exactly correspond to the KeePassXC icons.

==== Deleting an Entry
To delete an entry, perform the following steps:

Expand Down Expand Up @@ -207,9 +197,9 @@ KeePassXC can handle URLs in various ways. Standard URLs will be opened in your
|===

=== Advanced Entry Handling
KeePassXC offers several advanced options for managing your database entries. Additional Attributes allow you to store extra information required by some applications and websites. Attachments enable you to attach files to entries, stored as encrypted binaries, which can be previewed directly in the application (text and images). Icons can be selected or downloaded for easy identification of entries. The Properties section lets you view basic properties such as creation, modification, and last accessed times, and retrieve an entry's UUID for references. KeePassXC also maintains a history of changes to entries, allowing you to view, restore, or delete previous versions of an entry.
KeePassXC offers several advanced options for managing your database entries. Attributes allow you to store extra information required by some applications and websites. Attachments enable you to attach files to entries, stored as encrypted binaries, which can be previewed directly in the application (text and images). The Style page lets you select icons and customize foreground and background colors for entries. The Properties section lets you view basic properties such as creation, modification, and last accessed times, and retrieve an entry's UUID for references. KeePassXC also maintains a history of changes to entries, allowing you to view, restore, or delete previous versions of an entry.

==== Additional Attributes
==== Attributes
A lot of applications and web sites now require providing additional information when you create accounts. The additional information is used to block hackers if any suspicious activity is detected. In addition, the additional information you provide can be used to reset passwords if you forget them. You can also store arbitrary information here that can be copied to the clipboard or Auto-Typed using the `{S:<ATTR_NAME>}` action code.

To protect an attribute from being displayed by default, activate the _Protect_ checkbox *(A)*. To show the contents of the attribute while keeping it protected, press the _Reveal_ button *(B)*.
Expand All @@ -225,12 +215,21 @@ NOTE: When you try to open the attached file, KeePassXC extracts the attachment
.Attachments interface
image::edit_entry_attachments.png[]

==== Foreground and Background Color
You can change the foreground *(A)* and/or background *(B)* color that this entry will use in the entry lists. Click the corresponding box to open the color picker dialog.
==== Style
The Style page lets you customize the visual appearance of an entry. You can change the foreground *(A)* and/or background *(B)* color that this entry will use in the entry lists. Click the corresponding box to open the color picker dialog.

.Color picker dialog
image::edit_entry_colors.png[]

You can also select an icon to be displayed with each entry for easy identification. KeePassXC comes with a set of default icons that you can use or you can use your own custom icons. If you defined a URL with an entry, you can also download the favorite icon for that particular website.

NOTE: To delete a custom icon, go to <<Database Maintenance>> where you can purge unused icons and delete one or more icons at a time.

.Entry icon selection
image::edit_entry_icons.png[]

TIP: Each KeePass application has different default icons. If you use a mobile app or KeePass2, be aware that the default icons may not be exactly correspond to the KeePassXC icons.

==== Properties
KeePassXC lets you view the basic properties such as date and time of creation, modification, and when last accessed. This is also where you can retrieve an entry's UUID for use in references.

Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions share/icons/application/scalable/actions/palette.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 2 additions & 0 deletions share/icons/icons.qrc
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@
<file>application/scalable/actions/entry-edit.svg</file>
<file>application/scalable/actions/entry-new.svg</file>
<file>application/scalable/actions/favicon-download.svg</file>
<file>application/scalable/actions/format-list-bulleted-square.svg</file>
<file>application/scalable/actions/fingerprint.svg</file>
<file>application/scalable/actions/getting-started.svg</file>
<file>application/scalable/actions/group-delete.svg</file>
Expand All @@ -67,6 +68,7 @@
<file>application/scalable/actions/object-locked.svg</file>
<file>application/scalable/actions/object-unlocked.svg</file>
<file>application/scalable/actions/onepassword.svg</file>
<file>application/scalable/actions/palette.svg</file>
<file>application/scalable/actions/paperclip.svg</file>
<file>application/scalable/actions/passkey.svg</file>
<file>application/scalable/actions/password-copy.svg</file>
Expand Down
73 changes: 37 additions & 36 deletions share/translations/keepassxc_en.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2935,15 +2935,35 @@ Disable safe saves and try again?</source>
<context>
<name>EditEntryWidget</name>
<message>
<source>Entry</source>
<source>General</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Advanced</source>
<source>Attributes</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Icon</source>
<source>Attachments</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Style</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Foreground:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Foreground color selection</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Background:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Background color selection</source>
<translation type="unfinished"></translation>
</message>
<message>
Expand Down Expand Up @@ -3097,11 +3117,7 @@ Would you like to correct it?</source>
</message>
</context>
<context>
<name>EditEntryWidgetAdvanced</name>
<message>
<source>Additional attributes</source>
<translation type="unfinished"></translation>
</message>
<name>EditEntryWidgetAttributes</name>
<message>
<source>Attribute selection</source>
<translation type="unfinished"></translation>
Expand Down Expand Up @@ -3150,34 +3166,6 @@ Would you like to correct it?</source>
<source>Reveal</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Attachments</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>If checked, the entry will not appear in reports like Health Check and HIBP even if it doesn&apos;t match the quality requirements.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Exclude from database reports</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Foreground Color:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Foreground color selection</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Background Color:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Background color selection</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>EditEntryWidgetAutoType</name>
Expand Down Expand Up @@ -3428,6 +3416,19 @@ Would you like to correct it?</source>
<source>&amp;Expires:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>E&amp;xclude
from Reports:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>If checked, the entry will not appear in reports like Health Check and HIBP even if it doesn&apos;t match the quality requirements.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Exclude from database reports</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>EditEntryWidgetSSHAgent</name>
Expand Down
16 changes: 12 additions & 4 deletions src/gui/EntryPreviewWidget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -194,7 +194,8 @@ void EntryPreviewWidget::refresh()
updateEntryHeaderLine();
updateEntryTotp();
updateEntryGeneralTab();
updateEntryAdvancedTab();
updateEntryAttributesTab();
updateEntryAttachmentsTab();
updateEntryAutotypeTab();

setVisible(!config()->get(Config::GUI_HidePreviewPanel).toBool());
Expand Down Expand Up @@ -412,19 +413,18 @@ void EntryPreviewWidget::updateEntryGeneralTab()
m_ui->entryTagsList->setReadOnly(true);
}

void EntryPreviewWidget::updateEntryAdvancedTab()
void EntryPreviewWidget::updateEntryAttributesTab()
{
Q_ASSERT(m_currentEntry);
m_ui->entryAttributesTable->clear();

const EntryAttributes* attributes = m_currentEntry->attributes();
const QStringList customAttributes = attributes->customKeys();
const bool hasAttributes = !customAttributes.isEmpty();
const bool hasAttachments = !m_currentEntry->attachments()->isEmpty();
m_ui->entryAttributesTable->setRowCount(customAttributes.size());
m_ui->entryAttributesTable->setColumnCount(3);

setTabEnabled(m_ui->entryTabWidget, m_ui->entryAdvancedTab, hasAttributes || hasAttachments);
setTabEnabled(m_ui->entryTabWidget, m_ui->entryAttributesTab, hasAttributes);
if (hasAttributes) {
auto i = 0;
QFont font;
Expand Down Expand Up @@ -476,6 +476,14 @@ void EntryPreviewWidget::updateEntryAdvancedTab()
m_ui->entryAttributesTable->horizontalHeader()->setStretchLastSection(true);
m_ui->entryAttributesTable->resizeColumnsToContents();
m_ui->entryAttributesTable->resizeRowsToContents();
}

void EntryPreviewWidget::updateEntryAttachmentsTab()
{
Q_ASSERT(m_currentEntry);

const bool hasAttachments = !m_currentEntry->attachments()->isEmpty();
setTabEnabled(m_ui->entryTabWidget, m_ui->entryAttachmentsTab, hasAttachments);
m_ui->entryAttachmentsWidget->linkAttachments(m_currentEntry->attachments());
}

Expand Down
3 changes: 2 additions & 1 deletion src/gui/EntryPreviewWidget.h
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,8 @@ private slots:
void updateEntryHeaderLine();
void updateEntryTotp();
void updateEntryGeneralTab();
void updateEntryAdvancedTab();
void updateEntryAttributesTab();
void updateEntryAttachmentsTab();
void updateEntryAutotypeTab();
void setUsernameVisible(bool state);
void setPasswordVisible(bool state);
Expand Down
94 changes: 36 additions & 58 deletions src/gui/EntryPreviewWidget.ui
Original file line number Diff line number Diff line change
Expand Up @@ -663,11 +663,11 @@
</item>
</layout>
</widget>
<widget class="QWidget" name="entryAdvancedTab">
<widget class="QWidget" name="entryAttributesTab">
<attribute name="title">
<string>Advanced</string>
<string>Attributes</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_1">
<layout class="QVBoxLayout" name="verticalLayout_9">
<property name="leftMargin">
<number>5</number>
</property>
Expand All @@ -680,61 +680,7 @@
<property name="bottomMargin">
<number>5</number>
</property>
<property name="horizontalSpacing">
<number>8</number>
</property>
<item row="0" column="1">
<widget class="QLabel" name="attachmentsTitleLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Attachments</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="EntryAttachmentsWidget" name="entryAttachmentsWidget" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="focusPolicy">
<enum>Qt::ClickFocus</enum>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="attributesTitleLabel">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>Attributes</string>
</property>
</widget>
</item>
<item row="1" column="0">
<item>
<widget class="QTableWidget" name="entryAttributesTable">
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
Expand Down Expand Up @@ -773,6 +719,38 @@
</item>
</layout>
</widget>
<widget class="QWidget" name="entryAttachmentsTab">
<attribute name="title">
<string>Attachments</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_6">
<property name="leftMargin">
<number>5</number>
</property>
<property name="topMargin">
<number>5</number>
</property>
<property name="rightMargin">
<number>5</number>
</property>
<property name="bottomMargin">
<number>5</number>
</property>
<item>
<widget class="EntryAttachmentsWidget" name="entryAttachmentsWidget" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="focusPolicy">
<enum>Qt::ClickFocus</enum>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="entryAutotypeTab">
<attribute name="title">
<string>Autotype</string>
Expand Down
Loading