1
mirror of https://invent.kde.org/network/falkon.git synced 2024-09-21 17:52:10 +02:00

TabWidget: Add public webTab method

Also cleanup tabbedwebview.h includes.
This commit is contained in:
David Rosca 2018-02-05 11:41:15 +01:00
parent fbbe3c6385
commit 408b2ffad6
No known key found for this signature in database
GPG Key ID: EBC3FC294452C6D8
16 changed files with 48 additions and 41 deletions

View File

@ -21,7 +21,6 @@
#include "tabtreemodel.h" #include "tabtreemodel.h"
#include "webtab.h" #include "webtab.h"
#include "tabwidget.h" #include "tabwidget.h"
#include "tabbedwebview.h"
#include "mainapplication.h" #include "mainapplication.h"
#include "browserwindow.h" #include "browserwindow.h"
@ -50,7 +49,7 @@ void TabModelTest::basicTest()
rowsInsertedSpy.wait(); rowsInsertedSpy.wait();
QCOMPARE(rowsInsertedSpy.count(), 1); QCOMPARE(rowsInsertedSpy.count(), 1);
WebTab *tab0 = w->weView(0)->webTab(); WebTab *tab0 = w->tabWidget()->webTab(0);
QCOMPARE(rowsInsertedSpy.at(0).at(0).value<QModelIndex>(), QModelIndex()); QCOMPARE(rowsInsertedSpy.at(0).at(0).value<QModelIndex>(), QModelIndex());
QCOMPARE(rowsInsertedSpy.at(0).at(1).toInt(), 0); QCOMPARE(rowsInsertedSpy.at(0).at(1).toInt(), 0);
QCOMPARE(rowsInsertedSpy.at(0).at(2).toInt(), 0); QCOMPARE(rowsInsertedSpy.at(0).at(2).toInt(), 0);
@ -61,23 +60,23 @@ void TabModelTest::basicTest()
w->tabWidget()->addView(QUrl("http://test.com")); w->tabWidget()->addView(QUrl("http://test.com"));
QCOMPARE(rowsInsertedSpy.count(), 1); QCOMPARE(rowsInsertedSpy.count(), 1);
WebTab *tab1 = w->weView(1)->webTab(); WebTab *tab1 = w->tabWidget()->webTab(1);
QCOMPARE(rowsInsertedSpy.at(0).at(0).value<QModelIndex>(), QModelIndex()); QCOMPARE(rowsInsertedSpy.at(0).at(0).value<QModelIndex>(), QModelIndex());
QCOMPARE(rowsInsertedSpy.at(0).at(1).toInt(), 1); QCOMPARE(rowsInsertedSpy.at(0).at(1).toInt(), 1);
QCOMPARE(rowsInsertedSpy.at(0).at(2).toInt(), 1); QCOMPARE(rowsInsertedSpy.at(0).at(2).toInt(), 1);
QCOMPARE(model1.data(model1.index(1, 0), TabModel::WebTabRole).value<WebTab*>(), tab1); QCOMPARE(model1.data(model1.index(1, 0), TabModel::WebTabRole).value<WebTab*>(), tab1);
w->tabWidget()->moveTab(0, 1); w->tabWidget()->moveTab(0, 1);
QCOMPARE(w->weView(0)->webTab(), tab1); QCOMPARE(w->tabWidget()->webTab(0), tab1);
QCOMPARE(w->weView(1)->webTab(), tab0); QCOMPARE(w->tabWidget()->webTab(1), tab0);
w->tabWidget()->moveTab(1, 0); w->tabWidget()->moveTab(1, 0);
QCOMPARE(w->weView(0)->webTab(), tab0); QCOMPARE(w->tabWidget()->webTab(0), tab0);
QCOMPARE(w->weView(1)->webTab(), tab1); QCOMPARE(w->tabWidget()->webTab(1), tab1);
w->tabWidget()->moveTab(0, 1); w->tabWidget()->moveTab(0, 1);
QCOMPARE(w->weView(0)->webTab(), tab1); QCOMPARE(w->tabWidget()->webTab(0), tab1);
QCOMPARE(w->weView(1)->webTab(), tab0); QCOMPARE(w->tabWidget()->webTab(1), tab0);
QCOMPARE(rowsRemovedSpy.count(), 0); QCOMPARE(rowsRemovedSpy.count(), 0);
@ -106,7 +105,7 @@ void TabModelTest::dataTest()
QTRY_COMPARE(model.rowCount(), 1); QTRY_COMPARE(model.rowCount(), 1);
WebTab *tab0 = w->weView(0)->webTab(); WebTab *tab0 = w->tabWidget()->webTab(0);
QCOMPARE(model.index(0, 0).data(TabModel::TitleRole).toString(), tab0->title()); QCOMPARE(model.index(0, 0).data(TabModel::TitleRole).toString(), tab0->title());
QCOMPARE(model.index(0, 0).data(Qt::DisplayRole).toString(), tab0->title()); QCOMPARE(model.index(0, 0).data(Qt::DisplayRole).toString(), tab0->title());
QCOMPARE(model.index(0, 0).data(TabModel::IconRole).value<QIcon>().pixmap(16), tab0->icon().pixmap(16)); QCOMPARE(model.index(0, 0).data(TabModel::IconRole).value<QIcon>().pixmap(16), tab0->icon().pixmap(16));
@ -131,8 +130,8 @@ void TabModelTest::pinTabTest()
QTRY_COMPARE(model.rowCount(), 2); QTRY_COMPARE(model.rowCount(), 2);
WebTab *tab0 = w->weView(0)->webTab(); WebTab *tab0 = w->tabWidget()->webTab(0);
WebTab *tab1 = w->weView(1)->webTab(); WebTab *tab1 = w->tabWidget()->webTab(1);
QCOMPARE(model.data(model.index(0, 0), TabModel::WebTabRole).value<WebTab*>(), tab0); QCOMPARE(model.data(model.index(0, 0), TabModel::WebTabRole).value<WebTab*>(), tab0);
QCOMPARE(model.data(model.index(1, 0), TabModel::WebTabRole).value<WebTab*>(), tab1); QCOMPARE(model.data(model.index(1, 0), TabModel::WebTabRole).value<WebTab*>(), tab1);
@ -163,12 +162,12 @@ void TabModelTest::treeModelTest()
QTRY_COMPARE(model.rowCount(QModelIndex()), 6); QTRY_COMPARE(model.rowCount(QModelIndex()), 6);
WebTab *tab1 = w->weView(0)->webTab(); WebTab *tab1 = w->tabWidget()->webTab(0);
WebTab *tab2 = w->weView(1)->webTab(); WebTab *tab2 = w->tabWidget()->webTab(1);
WebTab *tab3 = w->weView(2)->webTab(); WebTab *tab3 = w->tabWidget()->webTab(2);
WebTab *tab4 = w->weView(3)->webTab(); WebTab *tab4 = w->tabWidget()->webTab(3);
WebTab *tab5 = w->weView(4)->webTab(); WebTab *tab5 = w->tabWidget()->webTab(4);
WebTab *tab6 = w->weView(5)->webTab(); WebTab *tab6 = w->tabWidget()->webTab(5);
QCOMPARE(model.index(0, 0).data(TabModel::WebTabRole).value<WebTab*>(), tab1); QCOMPARE(model.index(0, 0).data(TabModel::WebTabRole).value<WebTab*>(), tab1);
QCOMPARE(model.index(1, 0).data(TabModel::WebTabRole).value<WebTab*>(), tab2); QCOMPARE(model.index(1, 0).data(TabModel::WebTabRole).value<WebTab*>(), tab2);

View File

@ -22,7 +22,6 @@
#include "mainapplication.h" #include "mainapplication.h"
#include "browserwindow.h" #include "browserwindow.h"
#include "webview.h" #include "webview.h"
#include "tabbedwebview.h"
#include "tabwidget.h" #include "tabwidget.h"
#include "desktopnotificationsfactory.h" #include "desktopnotificationsfactory.h"
#include "qztools.h" #include "qztools.h"

View File

@ -19,7 +19,6 @@
#include "browserwindow.h" #include "browserwindow.h"
#include "webpage.h" #include "webpage.h"
#include "sqldatabase.h" #include "sqldatabase.h"
#include "tabbedwebview.h"
#include "popupwebview.h" #include "popupwebview.h"
#include "mainapplication.h" #include "mainapplication.h"
#include "autofillnotification.h" #include "autofillnotification.h"

View File

@ -1,6 +1,6 @@
/* ============================================================ /* ============================================================
* Falkon - Qt web browser * Falkon - Qt web browser
* Copyright (C) 2010-2017 David Rosca <nowrep@gmail.com> * Copyright (C) 2010-2018 David Rosca <nowrep@gmail.com>
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -17,12 +17,12 @@
* ============================================================ */ * ============================================================ */
#include "history.h" #include "history.h"
#include "historymodel.h" #include "historymodel.h"
#include "tabbedwebview.h"
#include "browserwindow.h" #include "browserwindow.h"
#include "iconprovider.h" #include "iconprovider.h"
#include "settings.h" #include "settings.h"
#include "mainapplication.h" #include "mainapplication.h"
#include "sqldatabase.h" #include "sqldatabase.h"
#include "webview.h"
#include <QWebEngineProfile> #include <QWebEngineProfile>

View File

@ -333,7 +333,7 @@ void LocationCompleter::switchToTab(BrowserWindow* window, int tab)
window->raise(); window->raise();
} }
else { else {
window->weView()->setFocus(); tabWidget->webTab()->setFocus();
} }
} }

View File

@ -19,7 +19,6 @@
#include "qztools.h" #include "qztools.h"
#include "browserwindow.h" #include "browserwindow.h"
#include "mainapplication.h" #include "mainapplication.h"
#include "tabbedwebview.h"
#include "speeddial.h" #include "speeddial.h"
#include "pluginproxy.h" #include "pluginproxy.h"
#include "plugininterface.h" #include "plugininterface.h"

View File

@ -19,7 +19,6 @@
#include "ui_aboutdialog.h" #include "ui_aboutdialog.h"
#include "browserwindow.h" #include "browserwindow.h"
#include "mainapplication.h" #include "mainapplication.h"
#include "tabbedwebview.h"
#include "webpage.h" #include "webpage.h"
#include "useragentmanager.h" #include "useragentmanager.h"

View File

@ -21,7 +21,6 @@
#include "webtab.h" #include "webtab.h"
#include "toolbutton.h" #include "toolbutton.h"
#include "settings.h" #include "settings.h"
#include "tabbedwebview.h"
#include "mainapplication.h" #include "mainapplication.h"
#include "pluginproxy.h" #include "pluginproxy.h"
#include "iconprovider.h" #include "iconprovider.h"
@ -702,7 +701,7 @@ void TabBar::dropEvent(QDropEvent* event)
} }
} else { } else {
LoadRequest req; LoadRequest req;
WebTab* tab = m_window->weView(index)->webTab(); WebTab* tab = m_tabWidget->webTab(index);
TabDropAction action = tabDropAction(event->pos(), tabRect(index), !mime->hasFormat(MIMETYPE)); TabDropAction action = tabDropAction(event->pos(), tabRect(index), !mime->hasFormat(MIMETYPE));
if (mime->hasUrls()) { if (mime->hasUrls()) {
req = mime->urls().at(0); req = mime->urls().at(0);
@ -711,7 +710,7 @@ void TabBar::dropEvent(QDropEvent* event)
} }
if (action == SelectTab) { if (action == SelectTab) {
if (tab->isRestored() && req.isValid()) { if (tab->isRestored() && req.isValid()) {
tab->webView()->load(req); tab->load(req);
} }
} else if (action == PrependTab || action == AppendTab) { } else if (action == PrependTab || action == AppendTab) {
const int newIndex = action == PrependTab ? index : index + 1; const int newIndex = action == PrependTab ? index : index + 1;

View File

@ -18,7 +18,6 @@
#include "tabmodel.h" #include "tabmodel.h"
#include "webtab.h" #include "webtab.h"
#include "tabwidget.h" #include "tabwidget.h"
#include "tabbedwebview.h"
#include "browserwindow.h" #include "browserwindow.h"
// TabModelMimeData // TabModelMimeData
@ -235,7 +234,7 @@ void TabModel::init()
void TabModel::tabInserted(int index) void TabModel::tabInserted(int index)
{ {
WebTab *tab = m_window->weView(index)->webTab(); WebTab *tab = m_window->tabWidget()->webTab(index);
beginInsertRows(QModelIndex(), index, index); beginInsertRows(QModelIndex(), index, index);
m_tabs.insert(index, tab); m_tabs.insert(index, tab);

View File

@ -175,17 +175,17 @@ void TabWidget::loadSettings()
updateClosedTabsButton(); updateClosedTabsButton();
} }
WebTab* TabWidget::weTab() WebTab* TabWidget::weTab() const
{ {
return weTab(currentIndex()); return weTab(currentIndex());
} }
WebTab* TabWidget::weTab(int index) WebTab* TabWidget::weTab(int index) const
{ {
return qobject_cast<WebTab*>(widget(index)); return qobject_cast<WebTab*>(widget(index));
} }
TabIcon* TabWidget::tabIcon(int index) TabIcon* TabWidget::tabIcon(int index) const
{ {
return weTab(index)->tabIcon(); return weTab(index)->tabIcon();
} }
@ -571,6 +571,11 @@ void TabWidget::reloadTab(int index)
weTab(index)->reload(); weTab(index)->reload();
} }
WebTab *TabWidget::webTab(int index) const
{
return index < 0 ? weTab() : weTab(index);
}
WebTab *TabWidget::lastTab() const WebTab *TabWidget::lastTab() const
{ {
return m_lastTab; return m_lastTab;

View File

@ -83,6 +83,8 @@ public:
int pinnedTabsCount() const; int pinnedTabsCount() const;
int extraReservedWidth() const; int extraReservedWidth() const;
WebTab *webTab(int index = -1) const;
WebTab *lastTab() const; WebTab *lastTab() const;
int lastTabIndex() const; int lastTabIndex() const;
@ -148,9 +150,9 @@ private slots:
void tabWasMoved(int before, int after); void tabWasMoved(int before, int after);
private: private:
WebTab* weTab(); WebTab* weTab() const;
WebTab* weTab(int index); WebTab* weTab(int index) const;
TabIcon* tabIcon(int index); TabIcon* tabIcon(int index) const;
bool validIndex(int index) const; bool validIndex(int index) const;
void updateClosedTabsButton(); void updateClosedTabsButton();

View File

@ -16,7 +16,7 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
* ============================================================ */ * ============================================================ */
#include "searchtoolbar.h" #include "searchtoolbar.h"
#include "tabbedwebview.h" #include "webview.h"
#include "webpage.h" #include "webpage.h"
#include "lineedit.h" #include "lineedit.h"
#include "ui_searchtoolbar.h" #include "ui_searchtoolbar.h"

View File

@ -140,6 +140,7 @@ WebTab::WebTab(QWidget *parent)
m_webView = new TabbedWebView(this); m_webView = new TabbedWebView(this);
m_webView->setPage(new WebPage); m_webView->setPage(new WebPage);
m_webView->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding); m_webView->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding);
setFocusProxy(m_webView);
m_locationBar = new LocationBar(this); m_locationBar = new LocationBar(this);
m_locationBar->setWebView(m_webView); m_locationBar->setWebView(m_webView);
@ -378,6 +379,11 @@ void WebTab::reload()
m_webView->reload(); m_webView->reload();
} }
void WebTab::load(const LoadRequest &request)
{
m_webView->load(request);
}
void WebTab::unload() void WebTab::unload()
{ {
m_savedTab = SavedTab(this); m_savedTab = SavedTab(this);

View File

@ -34,6 +34,7 @@ class WebInspector;
class LocationBar; class LocationBar;
class TabIcon; class TabIcon;
class TabBar; class TabBar;
class LoadRequest;
class FALKON_EXPORT WebTab : public QWidget class FALKON_EXPORT WebTab : public QWidget
{ {
@ -94,6 +95,7 @@ public:
void stop(); void stop();
void reload(); void reload();
void load(const LoadRequest &request);
void unload(); void unload();
bool isLoading() const; bool isLoading() const;

View File

@ -24,7 +24,6 @@
#include "emptynetworkreply.h" #include "emptynetworkreply.h"
#include "tabwidget.h" #include "tabwidget.h"
#include "webtab.h" #include "webtab.h"
#include "tabbedwebview.h"
#include "../config.h" #include "../config.h"
#include <QTranslator> #include <QTranslator>

View File

@ -22,9 +22,9 @@
#include "webtab.h" #include "webtab.h"
#include "tabmodel.h" #include "tabmodel.h"
#include "tabwidget.h"
#include "toolbutton.h" #include "toolbutton.h"
#include "tabtreemodel.h" #include "tabtreemodel.h"
#include "tabbedwebview.h"
#include "browserwindow.h" #include "browserwindow.h"
#include <QListView> #include <QListView>
@ -111,7 +111,7 @@ void VerticalTabsWidget::switchToPreviousTab()
WebTab *VerticalTabsWidget::nextTab() const WebTab *VerticalTabsWidget::nextTab() const
{ {
QModelIndex next; QModelIndex next;
if (m_window->weView()->webTab()->isPinned()) { if (m_window->tabWidget()->webTab()->isPinned()) {
next = m_pinnedView->indexAfter(m_pinnedView->currentIndex()); next = m_pinnedView->indexAfter(m_pinnedView->currentIndex());
if (!next.isValid()) { if (!next.isValid()) {
next = m_normalView->model()->index(0, 0); next = m_normalView->model()->index(0, 0);
@ -128,7 +128,7 @@ WebTab *VerticalTabsWidget::nextTab() const
WebTab *VerticalTabsWidget::previousTab() const WebTab *VerticalTabsWidget::previousTab() const
{ {
QModelIndex previous; QModelIndex previous;
if (m_window->weView()->webTab()->isPinned()) { if (m_window->tabWidget()->webTab()->isPinned()) {
previous = m_pinnedView->indexBefore(m_pinnedView->currentIndex()); previous = m_pinnedView->indexBefore(m_pinnedView->currentIndex());
if (!previous.isValid()) { if (!previous.isValid()) {
previous = m_normalView->model()->index(m_normalView->model()->rowCount() - 1, 0); previous = m_normalView->model()->index(m_normalView->model()->rowCount() - 1, 0);