diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/mainwindow.cpp | 2 | ||||
| -rw-r--r-- | src/widgets/urllineedit.cpp | 35 | ||||
| -rw-r--r-- | src/widgets/urllineedit.h | 7 | 
3 files changed, 33 insertions, 11 deletions
| diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 0369d17..f3f0860 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -174,7 +174,7 @@ void MainWindow::handleTabChanged(QWebEngineView *view)  void MainWindow::handleUrlChanged()  { -    tabBar->currentView()->load(QUrl::fromUserInput(urlLineEdit->text())); +    tabBar->currentView()->load(urlLineEdit->url());  }  void MainWindow::handleTitleUpdated(const QString &title) 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<QInputMethodEvent::Attribute> attributes; diff --git a/src/widgets/urllineedit.h b/src/widgets/urllineedit.h index e7dcf36..546ca41 100644 --- a/src/widgets/urllineedit.h +++ b/src/widgets/urllineedit.h @@ -14,10 +14,17 @@ signals:  public slots:      void setUrl(const QUrl &url); +    QUrl url(); + +protected: +    void focusInEvent(QFocusEvent *event); +    void focusOutEvent(QFocusEvent *event);  private:      void setTextFormat(const QTextLayout::FormatRange &format);      void clearTextFormat(); + +    QTextLayout::FormatRange m_hostFormat;  };  #endif // URLLINEEDIT_H | 
