aboutsummaryrefslogtreecommitdiff
path: root/src/widgets/BrowserManager.cpp
diff options
context:
space:
mode:
authorAkshay Nair <phenax5@gmail.com>2025-03-09 22:09:09 +0530
committerAkshay Nair <phenax5@gmail.com>2025-03-09 23:41:36 +0530
commit6b1d49e607da16853d1a0f460dbe756538e4790c (patch)
treed5c784e6e568272afbb7530ea5dd752ce835b8fa /src/widgets/BrowserManager.cpp
parent61f99089288138989cf244d174882aa5088b738b (diff)
downloadnull-browser-6b1d49e607da16853d1a0f460dbe756538e4790c.tar.gz
null-browser-6b1d49e607da16853d1a0f460dbe756538e4790c.zip
Add lua integration for command input (web.open, web.tabopen)
Diffstat (limited to 'src/widgets/BrowserManager.cpp')
-rw-r--r--src/widgets/BrowserManager.cpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/widgets/BrowserManager.cpp b/src/widgets/BrowserManager.cpp
index a2390fc..5ac6479 100644
--- a/src/widgets/BrowserManager.cpp
+++ b/src/widgets/BrowserManager.cpp
@@ -16,6 +16,23 @@ BrowserManager::BrowserManager(QWebEngineProfile *profile) : QWidget() {
createNewWebView(BrowserManager::NewtabURL, true);
}
+void BrowserManager::openUrl(QUrl url, OpenType openType) {
+ switch (openType) {
+ case OpenType::OpenUrl:
+ setCurrentUrl(url);
+ break;
+ case OpenType::OpenUrlInTab:
+ createNewWebView(url, true);
+ break;
+ case OpenType::OpenUrlInBgTab:
+ createNewWebView(url, false);
+ break;
+ case OpenType::OpenUrlInWindow:
+ // TODO: impl
+ break;
+ }
+}
+
QWebEngineView *BrowserManager::createNewWebView(QUrl url, bool focus) {
auto webview = new QWebEngineView(profile);
webview->setUrl(url);
@@ -24,6 +41,16 @@ QWebEngineView *BrowserManager::createNewWebView(QUrl url, bool focus) {
connect(webview->page(), &QWebEnginePage::newWindowRequested, this,
&BrowserManager::onNewWebViewRequest);
+ // connect(webview->page(), &QWebEnginePage::windowCloseRequested, this,
+ // [this, webview]() {
+ // for (int i = 0; i <= this->webViewList.length(); i++) {
+ // auto w = this->webViewList.at(0);
+ // printf("::::: %d\n\n", w == webview);
+ // if (w == webview) {
+ // this->closeWebView(i);
+ // }
+ // }
+ // });
if (focus)
focusWebView(webViewList.length() - 1);