Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/keepassxreboot/keepassxc.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Peshev <peshevd@gmail.com>2021-06-10 02:58:36 +0300
committerJonathan White <support@dmapps.us>2021-12-12 20:32:11 +0300
commit456726556dbf288fd881fcf453d7bb13c335f155 (patch)
treee803d9456f47275b40711cda3b9ca3a0ec96796f
parent12d16f67ae433c066d29541c9576633ab222cd6d (diff)
Add url field to download favicon
-rw-r--r--share/translations/keepassxc_en.ts16
-rw-r--r--src/gui/EditWidgetIcons.cpp30
-rw-r--r--src/gui/EditWidgetIcons.h6
-rw-r--r--src/gui/EditWidgetIcons.ui34
4 files changed, 72 insertions, 14 deletions
diff --git a/share/translations/keepassxc_en.ts b/share/translations/keepassxc_en.ts
index 4f11ecb83..098d5ea15 100644
--- a/share/translations/keepassxc_en.ts
+++ b/share/translations/keepassxc_en.ts
@@ -3240,10 +3240,6 @@ Supported extensions are: %1.</source>
<context>
<name>EditWidgetIcons</name>
<message>
- <source>Add custom icon</source>
- <translation>Add custom icon</translation>
- </message>
- <message>
<source>Download favicon</source>
<translation>Download favicon</translation>
</message>
@@ -3332,6 +3328,18 @@ Supported extensions are: %1.</source>
<source>Apply icon to…</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Choose icon…</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Set the URL to use to search for a favicon</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <source>Favicon URL</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>EditWidgetProperties</name>
diff --git a/src/gui/EditWidgetIcons.cpp b/src/gui/EditWidgetIcons.cpp
index 82af65f95..25542730c 100644
--- a/src/gui/EditWidgetIcons.cpp
+++ b/src/gui/EditWidgetIcons.cpp
@@ -32,6 +32,8 @@
#include "gui/IconDownloader.h"
#endif
+#include <QKeyEvent>
+
IconStruct::IconStruct()
: uuid(QUuid())
, number(0)
@@ -78,8 +80,10 @@ EditWidgetIcons::EditWidgetIcons(QWidget* parent)
#endif
// clang-format on
+#ifndef WITH_XC_NETWORKING
m_ui->faviconButton->setVisible(false);
- m_ui->addButton->setEnabled(true);
+ m_ui->faviconURL->setVisible(false);
+#endif
}
EditWidgetIcons::~EditWidgetIcons()
@@ -175,22 +179,36 @@ QMenu* EditWidgetIcons::createApplyIconToMenu()
return applyIconToMenu;
}
+void EditWidgetIcons::keyPressEvent(QKeyEvent* event)
+{
+ if (m_ui->faviconURL->hasFocus() && (event->key() == Qt::Key_Enter || event->key() == Qt::Key_Return)) {
+ m_ui->faviconButton->animateClick();
+ } else {
+ QWidget::keyPressEvent(event);
+ }
+}
+
void EditWidgetIcons::setUrl(const QString& url)
{
#ifdef WITH_XC_NETWORKING
- m_url = url;
- m_ui->faviconButton->setVisible(!url.isEmpty());
+ QUrl urlCheck(url);
+ if (urlCheck.scheme().startsWith("http")) {
+ m_ui->faviconURL->setText(urlCheck.url(QUrl::RemovePath | QUrl::RemoveQuery | QUrl::RemoveFragment));
+ m_ui->faviconURL->setCursorPosition(0);
+ } else {
+ m_ui->faviconURL->setText("");
+ }
#else
Q_UNUSED(url);
- m_ui->faviconButton->setVisible(false);
#endif
}
void EditWidgetIcons::downloadFavicon()
{
#ifdef WITH_XC_NETWORKING
- if (!m_url.isEmpty()) {
- m_downloader->setUrl(m_url);
+ auto url = m_ui->faviconURL->text();
+ if (!url.isEmpty()) {
+ m_downloader->setUrl(url);
m_downloader->download();
}
#endif
diff --git a/src/gui/EditWidgetIcons.h b/src/gui/EditWidgetIcons.h
index 6e134ced6..15e927d6c 100644
--- a/src/gui/EditWidgetIcons.h
+++ b/src/gui/EditWidgetIcons.h
@@ -72,6 +72,9 @@ public:
const QString& url = "");
void setShowApplyIconToButton(bool state);
+protected:
+ void keyPressEvent(QKeyEvent* event) override;
+
public slots:
void setUrl(const QString& url);
void abortRequests();
@@ -102,8 +105,7 @@ private:
DefaultIconModel* const m_defaultIconModel;
CustomIconModel* const m_customIconModel;
#ifdef WITH_XC_NETWORKING
- QScopedPointer<IconDownloader> m_downloader;
- QString m_url;
+ QSharedPointer<IconDownloader> m_downloader;
#endif
Q_DISABLE_COPY(EditWidgetIcons)
diff --git a/src/gui/EditWidgetIcons.ui b/src/gui/EditWidgetIcons.ui
index e9fc6fbca..eac83dbb3 100644
--- a/src/gui/EditWidgetIcons.ui
+++ b/src/gui/EditWidgetIcons.ui
@@ -104,11 +104,40 @@
</widget>
</item>
<item>
- <layout class="QHBoxLayout" name="customIconButtonsHorizontalLayout">
+ <layout class="QHBoxLayout" name="customIconButtonsHorizontalLayout" stretch="0,0,0,0">
<item>
<widget class="QPushButton" name="addButton">
<property name="text">
- <string>Add custom icon</string>
+ <string>Choose icon…</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="horizontalSpacer_2">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="faviconURL">
+ <property name="minimumSize">
+ <size>
+ <width>200</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="toolTip">
+ <string>Set the URL to use to search for a favicon</string>
+ </property>
+ <property name="placeholderText">
+ <string>Favicon URL</string>
</property>
</widget>
</item>
@@ -174,6 +203,7 @@
<tabstop>customIconsRadio</tabstop>
<tabstop>customIconsView</tabstop>
<tabstop>addButton</tabstop>
+ <tabstop>faviconURL</tabstop>
<tabstop>faviconButton</tabstop>
<tabstop>applyIconToPushButton</tabstop>
</tabstops>