summaryrefslogtreecommitdiffstats
path: root/examples/webenginewidgets/simplebrowser/tabwidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'examples/webenginewidgets/simplebrowser/tabwidget.cpp')
-rw-r--r--examples/webenginewidgets/simplebrowser/tabwidget.cpp52
1 files changed, 21 insertions, 31 deletions
diff --git a/examples/webenginewidgets/simplebrowser/tabwidget.cpp b/examples/webenginewidgets/simplebrowser/tabwidget.cpp
index a7f855c2a..c9fb32d83 100644
--- a/examples/webenginewidgets/simplebrowser/tabwidget.cpp
+++ b/examples/webenginewidgets/simplebrowser/tabwidget.cpp
@@ -56,9 +56,8 @@ TabWidget::TabWidget(QWidget *parent)
connect(tabBar, &QTabBar::customContextMenuRequested, this, &TabWidget::handleContextMenuRequested);
connect(tabBar, &QTabBar::tabCloseRequested, this, &TabWidget::closeTab);
connect(tabBar, &QTabBar::tabBarDoubleClicked, [this](int index) {
- if (index != -1)
- return;
- createTab();
+ if (index == -1)
+ createTab();
});
setDocumentMode(true);
@@ -67,10 +66,6 @@ TabWidget::TabWidget(QWidget *parent)
connect(this, &QTabWidget::currentChanged, this, &TabWidget::handleCurrentChanged);
}
-TabWidget::~TabWidget()
-{
-}
-
void TabWidget::handleCurrentChanged(int index)
{
if (index != -1) {
@@ -80,11 +75,7 @@ void TabWidget::handleCurrentChanged(int index)
emit titleChanged(view->title());
emit loadProgress(view->loadProgress());
emit urlChanged(view->url());
- QIcon pageIcon = view->page()->icon();
- if (!pageIcon.isNull())
- emit iconChanged(pageIcon);
- else
- emit iconChanged(QIcon(QStringLiteral(":defaulticon.png")));
+ emit favIconChanged(view->favIcon());
emit webActionEnabledChanged(QWebEnginePage::Back, view->isWebActionEnabled(QWebEnginePage::Back));
emit webActionEnabledChanged(QWebEnginePage::Forward, view->isWebActionEnabled(QWebEnginePage::Forward));
emit webActionEnabledChanged(QWebEnginePage::Stop, view->isWebActionEnabled(QWebEnginePage::Stop));
@@ -93,7 +84,7 @@ void TabWidget::handleCurrentChanged(int index)
emit titleChanged(QString());
emit loadProgress(0);
emit urlChanged(QUrl());
- emit iconChanged(QIcon(QStringLiteral(":defaulticon.png")));
+ emit favIconChanged(QIcon());
emit webActionEnabledChanged(QWebEnginePage::Back, false);
emit webActionEnabledChanged(QWebEnginePage::Forward, false);
emit webActionEnabledChanged(QWebEnginePage::Stop, false);
@@ -150,8 +141,10 @@ void TabWidget::setupView(WebView *webView)
connect(webView, &QWebEngineView::titleChanged, [this, webView](const QString &title) {
int index = indexOf(webView);
- if (index != -1)
+ if (index != -1) {
setTabText(index, title);
+ setTabToolTip(index, title);
+ }
if (currentIndex() == index)
emit titleChanged(title);
});
@@ -170,26 +163,17 @@ void TabWidget::setupView(WebView *webView)
if (currentIndex() == indexOf(webView))
emit linkHovered(url);
});
- connect(webPage, &WebPage::iconChanged, [this, webView](const QIcon &icon) {
+ connect(webView, &WebView::favIconChanged, [this, webView](const QIcon &icon) {
int index = indexOf(webView);
- QIcon ico = icon.isNull() ? QIcon(QStringLiteral(":defaulticon.png")) : icon;
-
if (index != -1)
- setTabIcon(index, ico);
+ setTabIcon(index, icon);
if (currentIndex() == index)
- emit iconChanged(ico);
+ emit favIconChanged(icon);
});
connect(webView, &WebView::webActionEnabledChanged, [this, webView](QWebEnginePage::WebAction action, bool enabled) {
if (currentIndex() == indexOf(webView))
emit webActionEnabledChanged(action,enabled);
});
- connect(webView, &QWebEngineView::loadStarted, [this, webView]() {
- int index = indexOf(webView);
- if (index != -1) {
- QIcon icon(QLatin1String(":view-refresh.png"));
- setTabIcon(index, icon);
- }
- });
connect(webPage, &QWebEnginePage::windowCloseRequested, [this, webView]() {
int index = indexOf(webView);
if (index >= 0)
@@ -197,15 +181,21 @@ void TabWidget::setupView(WebView *webView)
});
}
-WebView *TabWidget::createTab(bool makeCurrent)
+WebView *TabWidget::createTab()
+{
+ WebView *webView = createBackgroundTab();
+ setCurrentWidget(webView);
+ return webView;
+}
+
+WebView *TabWidget::createBackgroundTab()
{
WebView *webView = new WebView;
WebPage *webPage = new WebPage(QWebEngineProfile::defaultProfile(), webView);
webView->setPage(webPage);
setupView(webView);
- addTab(webView, tr("(Untitled)"));
- if (makeCurrent)
- setCurrentWidget(webView);
+ int index = addTab(webView, tr("(Untitled)"));
+ setTabIcon(index, webView->favIcon());
return webView;
}
@@ -239,7 +229,7 @@ void TabWidget::closeTab(int index)
void TabWidget::cloneTab(int index)
{
if (WebView *view = webView(index)) {
- WebView *tab = createTab(false);
+ WebView *tab = createTab();
tab->setUrl(view->url());
}
}