/* * 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 */ #include "addressbar.h" #include "urllineedit.h" #include #include #include AddressBar::AddressBar(const QHash &config, QWidget *parent) : QWidget(parent) { setLayout(new QVBoxLayout()); layout()->setContentsMargins(0, 0, 0, 0); layout()->setSpacing(0); urlBar = new UrlLineEdit(this); layout()->addWidget(urlBar); auto *focusShortcut = new QShortcut(QKeySequence(config.value("addressbar.shortcuts.focus")), parent); connect(focusShortcut, &QShortcut::activated, urlBar, [=]() { urlBar->setFocus(); urlBar->selectAll(); }); connect(urlBar, &UrlLineEdit::textEdited, [=](const QString &text) { std::function callback = std::bind(&UrlLineEdit::updateCompleter, urlBar, std::placeholders::_1); emit complete(text, callback); }); progressBar = new QProgressBar(this); progressBar->setMaximumHeight(5); progressBar->setTextVisible(false); layout()->addWidget(progressBar); } AddressBar::~AddressBar() { disconnect(progressBarConnection); } void AddressBar::connectWebView(WebView* view) { disconnect(progressBarConnection); urlBar->connectWebView(view); if(view != nullptr) { progressBar->setValue(view->loadProgress()); progressBarConnection = connect(view, &QWebEngineView::loadProgress, progressBar, &QProgressBar::setValue); } }