Merge pull request #5161 from xllndr/master

Resize WebView widget once the loginpage rendered
This commit is contained in:
Claudio Cambra 2023-03-07 12:41:14 +01:00 committed by GitHub
commit f0ddc54635
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 24 additions and 0 deletions

View file

@ -111,12 +111,30 @@ WebView::WebView(QWidget *parent)
connect(_webview, &QWebEngineView::loadProgress, _ui.progressBar, &QProgressBar::setValue);
connect(_schemeHandler, &WebViewPageUrlSchemeHandler::urlCatched, this, &WebView::urlCatched);
connect(_page, &QWebEnginePage::contentsSizeChanged, this, &WebView::slotResizeToContents);
}
void WebView::setUrl(const QUrl &url) {
_page->setUrl(url);
}
QSize WebView::minimumSizeHint() const {
return _size;
}
void WebView::slotResizeToContents(const QSizeF &size){
//this widget also holds the progressbar
const int newHeight = size.toSize().height() + _ui.progressBar->height();
const int newWidth = size.toSize().width();
_size = QSize(newWidth, newHeight);
this->updateGeometry();
//only resize once
disconnect(_page, &QWebEnginePage::contentsSizeChanged, this, &WebView::slotResizeToContents);
}
WebView::~WebView() {
/*
* The Qt implmentation deletes children in the order they are added to the

View file

@ -23,13 +23,19 @@ public:
WebView(QWidget *parent = nullptr);
~WebView() override;
void setUrl(const QUrl &url);
virtual QSize minimumSizeHint() const override;
signals:
void urlCatched(const QString user, const QString pass, const QString host);
private slots:
void slotResizeToContents(const QSizeF &size);
private:
Ui_WebView _ui;
QSize _size;
QWebEngineView *_webview;
QWebEngineProfile *_profile;
WebEnginePage *_page;