diff --git a/src/core/Entry.cpp b/src/core/Entry.cpp
index d5afec046..edf5b6f24 100644
--- a/src/core/Entry.cpp
+++ b/src/core/Entry.cpp
@@ -243,7 +243,8 @@ QString Entry::url() const
QString Entry::webUrl() const
{
- return resolveUrl(m_attributes->value(EntryAttributes::URLKey));
+ QString url = resolveMultiplePlaceholders(m_attributes->value(EntryAttributes::URLKey));
+ return resolveUrl(url);
}
QString Entry::username() const
diff --git a/src/gui/DetailsWidget.cpp b/src/gui/DetailsWidget.cpp
index 51448a970..deb7008ac 100644
--- a/src/gui/DetailsWidget.cpp
+++ b/src/gui/DetailsWidget.cpp
@@ -110,10 +110,17 @@ void DetailsWidget::getSelectedEntry(Entry* selectedEntry)
}
QString url = m_currentEntry->webUrl();
- if (url != "") {
- url = QString("%2").arg(url).arg(shortUrl(url));
+ if (!url.isEmpty()) {
+ // URL is well formed and can be opened in a browser
+ // create a new display url that masks password placeholders
+ // the actual link will use the password
+ QString displayUrl = m_currentEntry->url();
+ displayUrl = m_currentEntry->maskPasswordPlaceholders(displayUrl);
+ displayUrl = m_currentEntry->resolveMultiplePlaceholders(displayUrl);
+ url = QString("%2").arg(url).arg(shortUrl(displayUrl));
m_ui->urlLabel->setOpenExternalLinks(true);
} else {
+ // Fallback to the raw url string
url = shortUrl(m_currentEntry->resolveMultiplePlaceholders(m_currentEntry->url()));
m_ui->urlLabel->setOpenExternalLinks(false);
}
diff --git a/src/gui/DetailsWidget.ui b/src/gui/DetailsWidget.ui
index 99164807e..fb31409f8 100644
--- a/src/gui/DetailsWidget.ui
+++ b/src/gui/DetailsWidget.ui
@@ -188,6 +188,9 @@
0
+
+ PointingHandCursor
+
@@ -289,7 +292,11 @@
-
-
+
+
+ Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse
+
+
-