Changeset View
Changeset View
Standalone View
Standalone View
app/session.cpp
Context not available. | |||||
26 | 26 | | |||
---|---|---|---|---|---|
27 | int Session::m_availableSessionId = 0; | 27 | int Session::m_availableSessionId = 0; | ||
28 | 28 | | |||
29 | Session::Session(SessionType type, QWidget* parent) : QObject(parent) | 29 | Session::Session(SessionType type, QString dir, QWidget* parent) : QObject(parent) | ||
30 | { | 30 | { | ||
31 | m_sessionId = m_availableSessionId; | 31 | m_sessionId = m_availableSessionId; | ||
32 | m_availableSessionId++; | 32 | m_availableSessionId++; | ||
Context not available. | |||||
38 | m_baseSplitter = new Splitter(Qt::Horizontal, parent); | 38 | m_baseSplitter = new Splitter(Qt::Horizontal, parent); | ||
39 | connect(m_baseSplitter, SIGNAL(destroyed()), this, SLOT(prepareShutdown())); | 39 | connect(m_baseSplitter, SIGNAL(destroyed()), this, SLOT(prepareShutdown())); | ||
40 | 40 | | |||
41 | setupSession(type); | 41 | setupSession(type, dir); | ||
42 | } | 42 | } | ||
43 | 43 | | |||
44 | Session::~Session() | 44 | Session::~Session() | ||
Context not available. | |||||
48 | emit destroyed(m_sessionId); | 48 | emit destroyed(m_sessionId); | ||
49 | } | 49 | } | ||
50 | 50 | | |||
51 | void Session::setupSession(SessionType type) | 51 | void Session::setupSession(SessionType type, QString dir) | ||
52 | { | 52 | { | ||
53 | switch (type) | 53 | switch (type) | ||
54 | { | 54 | { | ||
55 | case Single: | 55 | case Single: | ||
56 | { | 56 | { | ||
57 | Terminal* terminal = addTerminal(m_baseSplitter); | 57 | Terminal* terminal = addTerminal(m_baseSplitter, dir); | ||
58 | setActiveTerminal(terminal->id()); | 58 | setActiveTerminal(terminal->id()); | ||
59 | 59 | | |||
60 | break; | 60 | break; | ||
Context not available. | |||||
64 | { | 64 | { | ||
65 | int splitterWidth = m_baseSplitter->width(); | 65 | int splitterWidth = m_baseSplitter->width(); | ||
66 | 66 | | |||
67 | Terminal* terminal = addTerminal(m_baseSplitter); | 67 | Terminal* terminal = addTerminal(m_baseSplitter, dir); | ||
68 | addTerminal(m_baseSplitter); | 68 | addTerminal(m_baseSplitter, dir); | ||
69 | 69 | | |||
70 | QList<int> newSplitterSizes; | 70 | QList<int> newSplitterSizes; | ||
71 | newSplitterSizes << (splitterWidth / 2) << (splitterWidth / 2); | 71 | newSplitterSizes << (splitterWidth / 2) << (splitterWidth / 2); | ||
Context not available. | |||||
88 | 88 | | |||
89 | int splitterHeight = m_baseSplitter->height(); | 89 | int splitterHeight = m_baseSplitter->height(); | ||
90 | 90 | | |||
91 | Terminal* terminal = addTerminal(m_baseSplitter); | 91 | Terminal* terminal = addTerminal(m_baseSplitter, dir); | ||
92 | addTerminal(m_baseSplitter); | 92 | addTerminal(m_baseSplitter, dir); | ||
93 | 93 | | |||
94 | QList<int> newSplitterSizes; | 94 | QList<int> newSplitterSizes; | ||
95 | newSplitterSizes << (splitterHeight / 2) << (splitterHeight / 2); | 95 | newSplitterSizes << (splitterHeight / 2) << (splitterHeight / 2); | ||
Context not available. | |||||
119 | Splitter* lowerSplitter = new Splitter(Qt::Horizontal, m_baseSplitter); | 119 | Splitter* lowerSplitter = new Splitter(Qt::Horizontal, m_baseSplitter); | ||
120 | connect(lowerSplitter, SIGNAL(destroyed()), this, SLOT(cleanup())); | 120 | connect(lowerSplitter, SIGNAL(destroyed()), this, SLOT(cleanup())); | ||
121 | 121 | | |||
122 | Terminal* terminal = addTerminal(upperSplitter); | 122 | Terminal* terminal = addTerminal(upperSplitter, dir); | ||
123 | addTerminal(upperSplitter); | 123 | addTerminal(upperSplitter, dir); | ||
124 | 124 | | |||
125 | addTerminal(lowerSplitter); | 125 | addTerminal(lowerSplitter, dir); | ||
126 | addTerminal(lowerSplitter); | 126 | addTerminal(lowerSplitter, dir); | ||
127 | 127 | | |||
128 | QList<int> newSplitterSizes; | 128 | QList<int> newSplitterSizes; | ||
129 | newSplitterSizes << (splitterHeight / 2) << (splitterHeight / 2); | 129 | newSplitterSizes << (splitterHeight / 2) << (splitterHeight / 2); | ||
Context not available. | |||||
147 | 147 | | |||
148 | default: | 148 | default: | ||
149 | { | 149 | { | ||
150 | addTerminal(m_baseSplitter); | 150 | addTerminal(m_baseSplitter, dir); | ||
151 | 151 | | |||
152 | break; | 152 | break; | ||
153 | } | 153 | } | ||
154 | } | 154 | } | ||
155 | } | 155 | } | ||
156 | 156 | | |||
157 | Terminal* Session::addTerminal(QWidget* parent) | 157 | Terminal* Session::addTerminal(QWidget* parent, QString dir) | ||
158 | { | 158 | { | ||
159 | Terminal* terminal = new Terminal(parent); | 159 | Terminal* terminal = new Terminal(parent, dir); | ||
160 | connect(terminal, SIGNAL(activated(int)), this, SLOT(setActiveTerminal(int))); | 160 | connect(terminal, SIGNAL(activated(int)), this, SLOT(setActiveTerminal(int))); | ||
161 | connect(terminal, SIGNAL(manuallyActivated(Terminal*)), this, SIGNAL(terminalManuallyActivated(Terminal*))); | 161 | connect(terminal, SIGNAL(manuallyActivated(Terminal*)), this, SIGNAL(terminalManuallyActivated(Terminal*))); | ||
162 | connect(terminal, SIGNAL(titleChanged(int,QString)), this, SLOT(setTitle(int,QString))); | 162 | connect(terminal, SIGNAL(titleChanged(int,QString)), this, SLOT(setTitle(int,QString))); | ||
Context not available. | |||||
276 | int Session::split(Terminal* terminal, Qt::Orientation orientation) | 276 | int Session::split(Terminal* terminal, Qt::Orientation orientation) | ||
277 | { | 277 | { | ||
278 | Splitter* splitter = static_cast<Splitter*>(terminal->splitter()); | 278 | Splitter* splitter = static_cast<Splitter*>(terminal->splitter()); | ||
279 | 279 | QString currrntPath = m_terminals[activeTerminalId()]->getCurrentWorkingDirectory(); | |||
280 | if (splitter->count() == 1) | 280 | if (splitter->count() == 1) | ||
281 | { | 281 | { | ||
282 | int splitterWidth = splitter->width(); | 282 | int splitterWidth = splitter->width(); | ||
Context not available. | |||||
284 | if (splitter->orientation() != orientation) | 284 | if (splitter->orientation() != orientation) | ||
285 | splitter->setOrientation(orientation); | 285 | splitter->setOrientation(orientation); | ||
286 | 286 | | |||
287 | terminal = addTerminal(splitter); | 287 | terminal = addTerminal(splitter, currrntPath); | ||
288 | 288 | | |||
289 | QList<int> newSplitterSizes; | 289 | QList<int> newSplitterSizes; | ||
290 | newSplitterSizes << (splitterWidth / 2) << (splitterWidth / 2); | 290 | newSplitterSizes << (splitterWidth / 2) << (splitterWidth / 2); | ||
Context not available. | |||||
310 | 310 | | |||
311 | terminal->setSplitter(newSplitter); | 311 | terminal->setSplitter(newSplitter); | ||
312 | 312 | | |||
313 | terminal = addTerminal(newSplitter); | 313 | terminal = addTerminal(newSplitter, currrntPath); | ||
314 | 314 | | |||
315 | splitter->setSizes(splitterSizes); | 315 | splitter->setSizes(splitterSizes); | ||
316 | QList<int> newSplitterSizes; | 316 | QList<int> newSplitterSizes; | ||
Context not available. |