From e5c5adcaa7586991a7b43f27907e37820ed1e6dd Mon Sep 17 00:00:00 2001 From: Nikhil Tanwar <2002nikhiltanwar@gmail.com> Date: Wed, 3 Nov 2021 21:55:49 +0530 Subject: [PATCH] Added functionality to open new tabs right after current tab. --- src/tabbar.cpp | 13 +++++++++---- src/tabbar.h | 2 +- src/webview.cpp | 2 +- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/tabbar.cpp b/src/tabbar.cpp index 5327e6f..576b389 100644 --- a/src/tabbar.cpp +++ b/src/tabbar.cpp @@ -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); diff --git a/src/tabbar.h b/src/tabbar.h index e4cb27e..0cebee7 100644 --- a/src/tabbar.h +++ b/src/tabbar.h @@ -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(mp_stackedWidget->currentWidget()); diff --git a/src/webview.cpp b/src/webview.cpp index 4f480b5..4f5493e 100644 --- a/src/webview.cpp +++ b/src/webview.cpp @@ -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; }