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(_webview, &QWebEngineView::loadProgress, _ui.progressBar, &QProgressBar::setValue);
connect(_schemeHandler, &WebViewPageUrlSchemeHandler::urlCatched, this, &WebView::urlCatched); connect(_schemeHandler, &WebViewPageUrlSchemeHandler::urlCatched, this, &WebView::urlCatched);
connect(_page, &QWebEnginePage::contentsSizeChanged, this, &WebView::slotResizeToContents);
} }
void WebView::setUrl(const QUrl &url) { void WebView::setUrl(const QUrl &url) {
_page->setUrl(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() { WebView::~WebView() {
/* /*
* The Qt implmentation deletes children in the order they are added to the * 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(QWidget *parent = nullptr);
~WebView() override; ~WebView() override;
void setUrl(const QUrl &url); void setUrl(const QUrl &url);
virtual QSize minimumSizeHint() const override;
signals: signals:
void urlCatched(const QString user, const QString pass, const QString host); void urlCatched(const QString user, const QString pass, const QString host);
private slots:
void slotResizeToContents(const QSizeF &size);
private: private:
Ui_WebView _ui; Ui_WebView _ui;
QSize _size;
QWebEngineView *_webview; QWebEngineView *_webview;
QWebEngineProfile *_profile; QWebEngineProfile *_profile;
WebEnginePage *_page; WebEnginePage *_page;