diff options
author | Daniel Peshev <peshevd@gmail.com> | 2021-06-10 02:58:36 +0300 |
---|---|---|
committer | Jonathan White <support@dmapps.us> | 2021-12-12 20:32:11 +0300 |
commit | 456726556dbf288fd881fcf453d7bb13c335f155 (patch) | |
tree | e803d9456f47275b40711cda3b9ca3a0ec96796f | |
parent | 12d16f67ae433c066d29541c9576633ab222cd6d (diff) |
Add url field to download favicon
-rw-r--r-- | share/translations/keepassxc_en.ts | 16 | ||||
-rw-r--r-- | src/gui/EditWidgetIcons.cpp | 30 | ||||
-rw-r--r-- | src/gui/EditWidgetIcons.h | 6 | ||||
-rw-r--r-- | src/gui/EditWidgetIcons.ui | 34 |
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> |