| 217 | } |
| 218 | |
| 219 | void Session::removeView(TerminalDisplay * widget) |
| 220 | { |
| 221 | _views.removeAll(widget); |
| 222 | |
| 223 | disconnect(widget,0,this,0); |
| 224 | |
| 225 | if ( _emulation != 0 ) { |
| 226 | // disconnect |
| 227 | // - key presses signals from widget |
| 228 | // - mouse activity signals from widget |
| 229 | // - string sending signals from widget |
| 230 | // |
| 231 | // ... and any other signals connected in addView() |
| 232 | disconnect( widget, 0, _emulation, 0); |
| 233 | |
| 234 | // disconnect state change signals emitted by emulation |
| 235 | disconnect( _emulation , 0 , widget , 0); |
| 236 | } |
| 237 | |
| 238 | // close the session automatically when the last view is removed |
| 239 | if ( _views.count() == 0 ) { |
| 240 | close(); |
| 241 | } |
| 242 | } |
| 243 | |
| 244 | void Session::run() |
| 245 | { |