From 50f9adad0ffbe7d9176326ed8601148630ad1b61 Mon Sep 17 00:00:00 2001 From: Aqua-sama Date: Mon, 30 Jan 2017 19:45:09 +0100 Subject: Cleaned up UrlLineEdit --- src/widgets/urllineedit.cpp | 35 +++++++++++++++++++++++++---------- 1 file changed, 25 insertions(+), 10 deletions(-) (limited to 'src/widgets/urllineedit.cpp') diff --git a/src/widgets/urllineedit.cpp b/src/widgets/urllineedit.cpp index 25bf157..10b8356 100644 --- a/src/widgets/urllineedit.cpp +++ b/src/widgets/urllineedit.cpp @@ -5,6 +5,10 @@ UrlLineEdit::UrlLineEdit(QWidget *parent) : QLineEdit(parent) { //setStyleSheet("color: #808080"); + + QTextCharFormat hostnameFormat; + hostnameFormat.setFontWeight(QFont::Bold); + m_hostFormat.format = hostnameFormat; } void UrlLineEdit::setUrl(const QUrl &url) @@ -12,22 +16,33 @@ void UrlLineEdit::setUrl(const QUrl &url) QString urlText = url.toString(); QString domain = url.host(); - QTextCharFormat f_host; - - f_host.setFontWeight(QFont::Bold); - //f_host.setForeground(QBrush(QColor::fromRgb(255, 255, 255))); - - QTextLayout::FormatRange fr_tracker; - fr_tracker.start = urlText.indexOf(domain); - fr_tracker.length = domain.length(); - fr_tracker.format = f_host; + m_hostFormat.start = urlText.indexOf(domain); + m_hostFormat.length = domain.length(); clear(); clearTextFormat(); - setTextFormat(fr_tracker); + setTextFormat(m_hostFormat); setText(urlText); } +QUrl UrlLineEdit::url() +{ + return QUrl::fromUserInput(text()); +} + +void UrlLineEdit::focusInEvent(QFocusEvent *event) +{ + clearTextFormat(); + QLineEdit::focusInEvent(event); +} + +void UrlLineEdit::focusOutEvent(QFocusEvent *event) +{ + setUrl(QUrl(text())); + QLineEdit::focusOutEvent(event); +} + +// formatting taken from: https://forum.qt.io/topic/60962/setting-qlineedit-text-bold void UrlLineEdit::setTextFormat(const QTextLayout::FormatRange &format) { QList attributes; -- cgit v1.2.1