/* * 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 class QAbstractItemModel; class QMenu; class QLabel; class QListView; class UrlLineEdit : public QLineEdit { Q_OBJECT public: explicit UrlLineEdit(QWidget *parent = nullptr); QAction *pageAction(); void setCompleterModel(QAbstractItemModel *model); signals: void addressEntered(const QUrl &url); void searchTermEntered(const QString &term); public slots: void setUrl(const QUrl &url); void showSslError(const QString &message); void updateCompleter(const QString &text); protected: void focusInEvent(QFocusEvent *event); void keyPressEvent(QKeyEvent *event); 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; QListView *m_listView; }; #endif // URLLINEEDIT_H