diff options
Diffstat (limited to 'src/lib/navigation/urllineedit.cpp')
-rw-r--r-- | src/lib/navigation/urllineedit.cpp | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/src/lib/navigation/urllineedit.cpp b/src/lib/navigation/urllineedit.cpp index cf33939..5d20cef 100644 --- a/src/lib/navigation/urllineedit.cpp +++ b/src/lib/navigation/urllineedit.cpp @@ -15,14 +15,28 @@ #include <QWidgetAction> +// ssl menu +#include <QLabel> + UrlLineEdit::UrlLineEdit(QWidget *parent) : QLineEdit(parent) { setPlaceholderText(tr("Enter address")); - // test action - m_sslAction = addAction(style()->standardIcon(QStyle::SP_ComputerIcon), QLineEdit::LeadingPosition); + // ssl menu + m_sslMenu = new QMenu(this); + m_sslLabel = new QLabel(m_sslMenu); + QWidgetAction *sslErrorAction = new QWidgetAction(m_sslMenu); + sslErrorAction->setDefaultWidget(m_sslLabel); + m_sslMenu->addAction(sslErrorAction); + + m_sslAction = addAction(style()->standardIcon(QStyle::SP_DriveNetIcon), QLineEdit::LeadingPosition); m_sslAction->setToolTip(tr("TODO: Display SSL Status popup here")); + m_sslAction->setMenu(m_sslMenu); + + connect(m_sslAction, &QAction::triggered, this, [this]() { + m_sslMenu->exec(this->mapToGlobal(QPoint(0, height()))); + }); QAction *completerAction = addAction(style()->standardIcon(QStyle::SP_TitleBarMinButton), QLineEdit::TrailingPosition); @@ -105,6 +119,12 @@ void UrlLineEdit::setUrl(const QUrl &url) setText(urlText); } +void UrlLineEdit::showSslError(const QString &message) +{ + m_sslLabel->setText(message); + m_sslAction->trigger(); +} + void UrlLineEdit::focusInEvent(QFocusEvent *event) { clearTextFormat(); |