aboutsummaryrefslogtreecommitdiff
path: root/src/lib/navigation/urllineedit.cpp
diff options
context:
space:
mode:
authorAqua-sama <aqua@iserlohn-fortress.net>2018-01-03 16:39:32 +0100
committerAqua-sama <aqua@iserlohn-fortress.net>2018-01-03 16:39:32 +0100
commit85d9f14aa8bac16ab341662c770b64a15c21628b (patch)
tree422db18e798646cd4bc98abf342f25c09c0bdf1d /src/lib/navigation/urllineedit.cpp
parentDownload items' width should no longer exceed the list width (diff)
downloadsmolbote-85d9f14aa8bac16ab341662c770b64a15c21628b.tar.xz
Changed from qbs to cmake
Diffstat (limited to 'src/lib/navigation/urllineedit.cpp')
-rw-r--r--src/lib/navigation/urllineedit.cpp136
1 files changed, 0 insertions, 136 deletions
diff --git a/src/lib/navigation/urllineedit.cpp b/src/lib/navigation/urllineedit.cpp
deleted file mode 100644
index 4dc6b39..0000000
--- a/src/lib/navigation/urllineedit.cpp
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- * 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: git://neueland.iserlohn-fortress.net/smolbote.git
- *
- * SPDX-License-Identifier: GPL-3.0
- */
-
-#include "urllineedit.h"
-#include <QUrl>
-#include <QTimer>
-#include <QMenu>
-#include <QAction>
-#include <QStyle>
-
-#include <QWidgetAction>
-
-// ssl menu
-#include <QLabel>
-
-#include "lib/bookmarks/bookmarkswidget.h"
-
-#include <QCompleter>
-
-UrlLineEdit::UrlLineEdit(QWidget *parent) :
- QLineEdit(parent)
-{
- setPlaceholderText(tr("Enter address"));
-
- // 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())));
- });
-
- m_pageAction = addAction(style()->standardIcon(QStyle::SP_FileIcon), QLineEdit::TrailingPosition);
- m_pageAction->setShortcut(QKeySequence("F10"));
- m_pageAction->setToolTip(tr("Page Actions"));
- connect(m_pageAction, &QAction::triggered, m_pageAction, [&]() {
- //this->deselect();
- if(m_pageAction->menu() != nullptr) {
- m_pageAction->menu()->exec(this->mapToGlobal(QPoint(width(), height())));
- }
- });
-
- QTextCharFormat hostnameFormat;
- hostnameFormat.setFontWeight(QFont::Bold);
- m_hostFormat.format = hostnameFormat;
-
- // connect signals
- connect(this, &QLineEdit::returnPressed, [this]() {
- if(this->text().startsWith('#')) {
- emit searchTermEntered(this->text().mid(1));
- } else {
- emit addressEntered(QUrl::fromUserInput(this->text()));
- }
- this->clearFocus();
- });
-
-}
-
-QAction *UrlLineEdit::sslAction()
-{
- Q_CHECK_PTR(m_sslAction);
- return m_sslAction;
-}
-
-QAction *UrlLineEdit::pageAction()
-{
- Q_CHECK_PTR(m_pageAction);
- return m_pageAction;
-}
-
-void UrlLineEdit::setCompleterModel(QAbstractItemModel *model)
-{
- Q_CHECK_PTR(model);
- m_completer = new UrlCompleter(model, this);
- m_completer->setCompletionColumn(1);
- this->setCompleter(m_completer);
-}
-
-void UrlLineEdit::setUrl(const QUrl &url)
-{
- QString urlText = url.toString();
- QString domain = url.host();
-
- m_hostFormat.start = urlText.indexOf(domain);
- m_hostFormat.length = domain.length();
-
- clear();
- clearTextFormat();
- setTextFormat(m_hostFormat);
- setText(urlText);
-}
-
-void UrlLineEdit::showSslError(const QString &message)
-{
- m_sslLabel->setText(message);
- m_sslAction->trigger();
-}
-
-void UrlLineEdit::focusInEvent(QFocusEvent *event)
-{
- clearTextFormat();
-
- QLineEdit::focusInEvent(event);
-
- // select the contents when receiving focus
- // http://stackoverflow.com/a/35725950/1054406
- // mousePressEvent triggers right after focusInEvent so text selected in focusInEvent unselects by mousePressEvent
- //QTimer::singleShot(0, this, SLOT(selectAll()));
-}
-
-// formatting taken from: https://forum.qt.io/topic/60962/setting-qlineedit-text-bold
-void UrlLineEdit::setTextFormat(const QTextLayout::FormatRange &format)
-{
- QList<QInputMethodEvent::Attribute> attributes;
- attributes.append(QInputMethodEvent::Attribute(QInputMethodEvent::TextFormat, format.start, format.length, format.format));
- QInputMethodEvent ev(QString(), attributes);
- event(&ev);
-
-}
-
-void UrlLineEdit::clearTextFormat()
-{
- setTextFormat(QTextLayout::FormatRange());
-}