aboutsummaryrefslogtreecommitdiff
path: root/src/addressbar/urllineedit.h
diff options
context:
space:
mode:
authorAqua-sama <aqua@iserlohn-fortress.net>2018-01-26 00:41:09 +0100
committerAqua-sama <aqua@iserlohn-fortress.net>2018-01-26 00:41:09 +0100
commit1bc3c311551d53759ffdfb11904c45f1cc2f91ce (patch)
treeca22cf2d17611dfe3aa0cfbf3ac825ecb014b9f4 /src/addressbar/urllineedit.h
parentConfiguration class rework (diff)
downloadsmolbote-1bc3c311551d53759ffdfb11904c45f1cc2f91ce.tar.xz
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
Diffstat (limited to 'src/addressbar/urllineedit.h')
-rw-r--r--src/addressbar/urllineedit.h65
1 files changed, 65 insertions, 0 deletions
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 <QAction>
+#include <QLineEdit>
+#include <QTextLayout>
+#include <src/webengine/webview.h>
+#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