diff options
-rw-r--r-- | src/mainview.cpp | 8 | ||||
-rw-r--r-- | src/mainview.h | 7 |
2 files changed, 12 insertions, 3 deletions
diff --git a/src/mainview.cpp b/src/mainview.cpp index 335bcfae..1965e321 100644 --- a/src/mainview.cpp +++ b/src/mainview.cpp @@ -704,7 +704,7 @@ void MainView::resizeEvent(QResizeEvent *event) } -void MainView::detachTab(int index) +void MainView::detachTab(int index, MainWindow *toWindow) { if (index < 0) index = currentIndex(); @@ -725,7 +725,11 @@ void MainView::detachTab(int index) UrlBar *bar = _widgetBar->urlBar(index); closeTab(index, false); - MainWindow *w = Application::instance()->newMainWindow(false); + MainWindow *w; + if( toWindow == NULL ) + w = Application::instance()->newMainWindow(false); + else + w = toWindow; w->mainView()->addTab(tab, Application::icon(u), label); w->mainView()->widgetBar()->insertWidget(0, bar); w->mainView()->updateTabBar(); diff --git a/src/mainview.h b/src/mainview.h index 2ece6fe4..cc7eb8da 100644 --- a/src/mainview.h +++ b/src/mainview.h @@ -129,7 +129,12 @@ public slots: void closeTab(int index = -1, bool del = true); void closeOtherTabs(int index = -1); void reloadTab(int index = -1); - void detachTab(int index = -1); + /** + * Detaches tab at @c index to a new window. + * If @c toWindow is not null, the tab is instead + * added to existing MainWindow @c toWindow. + */ + void detachTab(int index = -1, MainWindow *toWindow = NULL); void reloadAllTabs(); void nextTab(); |