diff options
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/navigation/urllineedit.cpp | 24 | ||||
| -rw-r--r-- | src/lib/navigation/urllineedit.h | 6 | 
2 files changed, 28 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(); diff --git a/src/lib/navigation/urllineedit.h b/src/lib/navigation/urllineedit.h index 19be2d2..cef0830 100644 --- a/src/lib/navigation/urllineedit.h +++ b/src/lib/navigation/urllineedit.h @@ -15,6 +15,7 @@  #include <QAction>  class QMenu; +class QLabel;  class UrlLineEdit : public QLineEdit  {      Q_OBJECT @@ -30,6 +31,7 @@ signals:  public slots:      void setUrl(const QUrl &url); +    void showSslError(const QString &message);  protected:      void focusInEvent(QFocusEvent *event); @@ -48,6 +50,10 @@ private:      QAction *m_sslAction = nullptr;      QAction *m_pageAction = nullptr; +    // ssl menu +    QMenu *m_sslMenu; +    QLabel *m_sslLabel; +      QMenu *m_menu;      QListWidget *listWidget;  }; | 
