Changeset View
Changeset View
Standalone View
Standalone View
src/ViewContainer.cpp
Context not available. | |||||
48 | #include "DetachableTabBar.h" | 48 | #include "DetachableTabBar.h" | ||
---|---|---|---|---|---|
49 | #include "TerminalDisplay.h" | 49 | #include "TerminalDisplay.h" | ||
50 | #include "ViewSplitter.h" | 50 | #include "ViewSplitter.h" | ||
51 | #include "MainWindow.h" | ||||
52 | #include "Session.h" | ||||
51 | 53 | | |||
52 | // TODO Perhaps move everything which is Konsole-specific into different files | 54 | // TODO Perhaps move everything which is Konsole-specific into different files | ||
53 | 55 | | |||
Context not available. | |||||
158 | 160 | | |||
159 | void TabbedViewContainer::moveTabToWindow(int index, QWidget *window) | 161 | void TabbedViewContainer::moveTabToWindow(int index, QWidget *window) | ||
160 | { | 162 | { | ||
161 | // TODO: Fix Detaching. | 163 | auto splitter = viewSplitterAt(index); | ||
162 | /* | 164 | auto manager = window->findChild<ViewManager*>(); | ||
163 | const int id = terminalAt(index)->sessionController()->identifier(); | 165 | | ||
164 | // This one line here will be removed as soon as I finish my new split handling. | 166 | QHash<TerminalDisplay*, Session*> sessionsMap = _connectedViewManager->forgetAll(splitter); | ||
165 | // it's hacky but it works. | 167 | | ||
166 | const auto widgets = window->findChildren<TabbedViewContainer*>(); | 168 | foreach(TerminalDisplay* terminal, splitter->getTerminalDisplays()) { | ||
167 | const auto currentPos = QCursor::pos(); | 169 | manager->attachView(terminal, sessionsMap[terminal]); | ||
168 | for(const auto dropWidget : widgets) { | | |||
169 | if (dropWidget->rect().contains(dropWidget->mapFromGlobal(currentPos))) { | | |||
170 | emit dropWidget->moveViewRequest(-1, id); | | |||
171 | removeView(terminalAt(index)); | | |||
172 | } | | |||
173 | } | 170 | } | ||
174 | */ | 171 | auto container = manager->activeContainer(); | ||
172 | container->addSplitter(splitter); | ||||
173 | | ||||
174 | auto controller = splitter->activeTerminalDisplay()->sessionController(); | ||||
175 | container->currentSessionControllerChanged(controller); | ||||
176 | | ||||
177 | forgetView(splitter); | ||||
175 | } | 178 | } | ||
176 | 179 | | |||
177 | void TabbedViewContainer::konsoleConfigChanged() | 180 | void TabbedViewContainer::konsoleConfigChanged() | ||
Context not available. |