summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mainview.cpp8
-rw-r--r--src/mainview.h7
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();