Merge pull request #716 from kiwix/issue636

This commit is contained in:
Matthieu Gautier 2021-11-04 10:57:47 +01:00 committed by GitHub
commit 0e0c03e515
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 11 additions and 6 deletions

View File

@ -26,7 +26,7 @@ TabBar::TabBar(QWidget *parent) :
connect(app->getAction(KiwixApp::NewTabAction), &QAction::triggered,
this, [=]() {
this->createNewTab(true);
this->createNewTab(true, false);
auto topWidget = KiwixApp::instance()->getMainWindow()->getTopWidget();
topWidget->getSearchBar().setFocus(Qt::MouseFocusReason);
topWidget->getSearchBar().clear();
@ -127,10 +127,15 @@ void TabBar::setNewTabButton()
setTabButton(idx, QTabBar::RightSide, Q_NULLPTR);
}
ZimView* TabBar::createNewTab(bool setCurrent)
ZimView* TabBar::createNewTab(bool setCurrent, bool adjacentToCurrentTab)
{
auto tab = new ZimView(this, this);
int index = count() - 1; // the last tab is + button, insert before
int index;
if(adjacentToCurrentTab) {
index = currentIndex() + 1;
} else {
index = count() - 1; // for New Tab Button
}
mp_stackedWidget->insertWidget(index, tab);
index = insertTab(index, "");
QToolButton *tb = new QToolButton(this);
@ -146,7 +151,7 @@ void TabBar::openUrl(const QUrl& url, bool newTab)
{
WebView* webView = currentWebView();
if (newTab || !webView) {
webView = createNewTab(true)->getWebView();
webView = createNewTab(true, true)->getWebView();
}
QUITIFNULL(webView);
webView->setUrl(url);

View File

@ -20,7 +20,7 @@ public:
void setContentManagerView(ContentManagerView* view);
void setNewTabButton();
ZimView* createNewTab(bool setCurrent);
ZimView* createNewTab(bool setCurrent, bool adjacentToCurrentTab);
ZimView* currentZimView() {
return qobject_cast<ZimView*>(mp_stackedWidget->currentWidget());

View File

@ -34,7 +34,7 @@ QWebEngineView* WebView::createWindow(QWebEnginePage::WebWindowType type)
|| type==QWebEnginePage::WebBrowserTab )
{
auto tabWidget = KiwixApp::instance()->getTabWidget();
return tabWidget->createNewTab(false)->getWebView();
return tabWidget->createNewTab(false, true)->getWebView();
}
return nullptr;
}