aboutsummaryrefslogtreecommitdiff
path: root/src/BrowserManager.cpp
diff options
context:
space:
mode:
authorAkshay Nair <phenax5@gmail.com>2025-03-09 19:47:50 +0530
committerAkshay Nair <phenax5@gmail.com>2025-03-09 19:47:50 +0530
commit61f99089288138989cf244d174882aa5088b738b (patch)
treeea1202b098b92e85b16e670d1c3ea1b86fcaef58 /src/BrowserManager.cpp
parent1e2302be2b47fbeb340db7482ed8476c829a7f66 (diff)
downloadnull-browser-61f99089288138989cf244d174882aa5088b738b.tar.gz
null-browser-61f99089288138989cf244d174882aa5088b738b.zip
Refactor directory structure
Diffstat (limited to 'src/BrowserManager.cpp')
-rw-r--r--src/BrowserManager.cpp124
1 files changed, 0 insertions, 124 deletions
diff --git a/src/BrowserManager.cpp b/src/BrowserManager.cpp
deleted file mode 100644
index ddc6105..0000000
--- a/src/BrowserManager.cpp
+++ /dev/null
@@ -1,124 +0,0 @@
-#include <QStackedLayout>
-#include <QWebEngineNewWindowRequest>
-#include <QWebEngineView>
-
-#include "BrowserManager.hpp"
-
-BrowserManager::BrowserManager(QWebEngineProfile *profile) : QWidget() {
- setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
-
- layout = new QStackedLayout(this);
- layout->setStackingMode(QStackedLayout::StackAll);
- layout->setContentsMargins(0, 0, 0, 0);
-
- this->profile = profile;
-
- createNewWebView(BrowserManager::NewtabURL, true);
-}
-
-QWebEngineView *BrowserManager::createNewWebView(QUrl url, bool focus) {
- auto webview = new QWebEngineView(profile);
- webview->setUrl(url);
- layout->addWidget(webview);
- webViewList.append(webview);
-
- connect(webview->page(), &QWebEnginePage::newWindowRequested, this,
- &BrowserManager::onNewWebViewRequest);
-
- if (focus)
- focusWebView(webViewList.length() - 1);
-
- return webview;
-}
-
-void BrowserManager::onNewWebViewRequest(QWebEngineNewWindowRequest &request) {
- switch (request.destination()) {
- case QWebEngineNewWindowRequest::InNewTab:
- createNewWebView(request.requestedUrl(), true);
- break;
- case QWebEngineNewWindowRequest::InNewBackgroundTab:
- createNewWebView(request.requestedUrl(), false);
- break;
- case QWebEngineNewWindowRequest::InNewWindow:
- // TODO: Impl
- createNewWebView(request.requestedUrl(), true);
- break;
- case QWebEngineNewWindowRequest::InNewDialog:
- // TODO: Impl
- createNewWebView(request.requestedUrl(), true);
- break;
- }
-}
-
-void BrowserManager::nextWebView() {
- if (webViewList.isEmpty())
- return;
- auto index = currentWebViewIndex() + 1;
- auto total = webViewList.length();
- index = index >= total ? index % total : index;
- focusWebView(index);
-}
-
-void BrowserManager::previousWebView() {
- if (webViewList.isEmpty())
- return;
- auto index = currentWebViewIndex() - 1;
- auto total = webViewList.length();
- index = index < 0 ? total + index : index;
- focusWebView(index);
-}
-
-void BrowserManager::closeCurrentWebView() {
- closeWebView(currentWebViewIndex());
-}
-
-void BrowserManager::closeWebView(long index) {
- if (index < 0 || index >= webViewList.length())
- return;
-
- auto webview = webViewList.at(index);
- layout->removeWidget(webview);
- webViewList.removeAt(index);
- disconnect(webview->page());
- webview->deleteLater();
-
- focusWebView(currentWebViewIndex());
-
- if (webViewList.isEmpty()) {
- createNewWebView(BrowserManager::NewtabURL, true);
- }
-}
-
-std::vector<QUrl> BrowserManager::webViewUrls() {
- std::vector<QUrl> urls;
- for (auto &view : webViewList)
- urls.push_back(view->url());
- return urls;
-}
-
-u_int32_t BrowserManager::currentWebViewIndex() {
- return layout->currentIndex();
-}
-u_int32_t BrowserManager::webViewCount() { return webViewList.length(); }
-
-void BrowserManager::focusWebView(long index) {
- if (webViewList.isEmpty())
- return;
-
- index = std::max((long)0, std::min(index, (long)webViewList.length() - 1));
- layout->setCurrentIndex(index);
-}
-
-QUrl BrowserManager::currentUrl() {
- if (currentWebViewIndex() >= webViewList.length())
- return QUrl("about:newtab");
-
- return webViewList.at(currentWebViewIndex())->url();
-}
-
-void BrowserManager::setCurrentUrl(QUrl url) {
- if (currentWebViewIndex() >= webViewList.length())
- return;
-
- webViewList.at(currentWebViewIndex())->setUrl(url);
-}