[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [falkon] src/lib: Detach WebTab when removing tab
From: David Rosca <null () kde ! org>
Date: 2018-01-31 20:10:36
Message-ID: E1egyiK-0002Fo-MS () code ! kde ! org
[Download RAW message or body]
Git commit 1b473ac5808ac6d516b41734c08a20712316986e by David Rosca.
Committed on 31/01/2018 at 19:56.
Pushed by drosca into branch 'master'.
Detach WebTab when removing tab
That way tab is removed from parent and children before
it is removed from tabbar.
M +1 -1 src/lib/tabwidget/tabwidget.cpp
M +9 -14 src/lib/webtab/webtab.cpp
M +0 -1 src/lib/webtab/webtab.h
https://commits.kde.org/falkon/1b473ac5808ac6d516b41734c08a20712316986e
diff --git a/src/lib/tabwidget/tabwidget.cpp b/src/lib/tabwidget/tabwidget.cpp
index 791b3772..d7484f32 100644
--- a/src/lib/tabwidget/tabwidget.cpp
+++ b/src/lib/tabwidget/tabwidget.cpp
@@ -441,7 +441,7 @@ void TabWidget::closeTab(int index)
m_lastBackgroundTabIndex = -1;
- removeTab(index);
+ webTab->detach();
webTab->deleteLater();
updateClosedTabsButton();
diff --git a/src/lib/webtab/webtab.cpp b/src/lib/webtab/webtab.cpp
index 25b23408..40ecd778 100644
--- a/src/lib/webtab/webtab.cpp
+++ b/src/lib/webtab/webtab.cpp
@@ -177,19 +177,6 @@ WebTab::WebTab(BrowserWindow* window)
});
}
-WebTab::~WebTab()
-{
- if (m_parentTab) {
- m_parentTab->m_childTabs.removeOne(this);
- emit m_parentTab->childTabRemoved(this);
- }
-
- const auto childTabs = m_childTabs; // modified in loop
- for (WebTab *child : childTabs) {
- child->setParentTab(nullptr);
- }
-}
-
TabbedWebView* WebTab::webView() const
{
return m_webView;
@@ -293,7 +280,15 @@ void WebTab::detach()
Q_ASSERT(m_tabBar);
// Remove parent tab
- setParentTab(nullptr);
+ if (m_parentTab) {
+ m_parentTab->m_childTabs.removeOne(this);
+ emit m_parentTab->childTabRemoved(this);
+ }
+ // Remove from child tabs
+ const auto childTabs = m_childTabs;
+ for (WebTab *child : childTabs) {
+ child->setParentTab(nullptr);
+ }
// Remove icon from tab
m_tabBar->setTabButton(tabIndex(), m_tabBar->iconButtonPosition(), nullptr);
diff --git a/src/lib/webtab/webtab.h b/src/lib/webtab/webtab.h
index 903d82aa..17001abd 100644
--- a/src/lib/webtab/webtab.h
+++ b/src/lib/webtab/webtab.h
@@ -59,7 +59,6 @@ public:
};
explicit WebTab(BrowserWindow* window);
- ~WebTab();
TabbedWebView* webView() const;
LocationBar* locationBar() const;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic