From 1bc3c311551d53759ffdfb11904c45f1cc2f91ce Mon Sep 17 00:00:00 2001 From: Aqua-sama Date: Fri, 26 Jan 2018 00:41:09 +0100 Subject: UrlLineEdit rework - moved UrlLineEdit to src/addressbar - added UrlLineEdit::connectWebView - removed UrlLineEdit::pageAction - UrlLineEdit restores the text format when losing focus - Split off completer code into Completer class - WebPage now displays a warning message box instead on certificate errors --- src/addressbar/urllineedit.h | 65 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 src/addressbar/urllineedit.h (limited to 'src/addressbar/urllineedit.h') diff --git a/src/addressbar/urllineedit.h b/src/addressbar/urllineedit.h new file mode 100644 index 0000000..4e62128 --- /dev/null +++ b/src/addressbar/urllineedit.h @@ -0,0 +1,65 @@ +/* + * This file is part of smolbote. It's copyrighted by the contributors recorded + * in the version control history of the file, available from its original + * location: https://neueland.iserlohn-fortress.net/smolbote.hg + * + * SPDX-License-Identifier: GPL-3.0 + */ + +#ifndef URLLINEEDIT_H +#define URLLINEEDIT_H + +#include +#include +#include +#include +#include "completer.h" + +class QAbstractItemModel; +class QMenu; +class QLabel; +class UrlLineEdit : public QLineEdit +{ + Q_OBJECT +public: + explicit UrlLineEdit(QWidget *parent = nullptr); + + void setCompleterModel(QAbstractItemModel *model); + +signals: + void addressEntered(const QUrl &url); + void searchTermEntered(const QString &term); + +public slots: + void connectWebView(WebView *view); + void setUrl(const QUrl &url); + void showSslError(const QString &message); + + void updateCompleter(const QString &text); + +protected: + void focusInEvent(QFocusEvent *event) override; + void focusOutEvent(QFocusEvent *event) override; + void keyPressEvent(QKeyEvent *event) override; + +private: + void setTextFormat(const QTextLayout::FormatRange &format); + void clearTextFormat(); + + QTextLayout::FormatRange m_hostFormat; + + QAction *m_sslAction = nullptr; + QAction *m_pageAction = nullptr; + + // ssl menu + QMenu *m_sslMenu; + QLabel *m_sslLabel; + + // completer + QAbstractItemModel *m_bookmarksModel = nullptr; + Completer *m_listView; + + QMetaObject::Connection urlChangedConnection; +}; + +#endif // URLLINEEDIT_H -- cgit v1.2.1