~ubuntu-branches/ubuntu/precise/konsole/precise-proposed

« back to all changes in this revision

Viewing changes to src/ViewSplitter.cpp

  • Committer: Package Import Robot
  • Author(s): Jonathan Riddell
  • Date: 2011-12-16 13:14:43 UTC
  • mto: This revision was merged to the branch mainline in revision 8.
  • Revision ID: package-import@ubuntu.com-20111216131443-rhdplbmmuxntat3k
Tags: upstream-4.7.90
ImportĀ upstreamĀ versionĀ 4.7.90

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
/*
2
2
    This file is part of the Konsole Terminal.
3
 
    
 
3
 
4
4
    Copyright 2006-2008 Robert Knight <robertknight@gmail.com>
5
5
 
6
6
    This program is free software; you can redistribute it and/or modify
26
26
#include <QtGui/QKeyEvent>
27
27
 
28
28
// KDE
29
 
#include "kdebug.h"
 
29
#include <KDebug>
30
30
 
31
31
// Konsole
32
32
#include "ViewContainer.h"
74
74
ViewSplitter* ViewSplitter::activeSplitter()
75
75
{
76
76
    QWidget* widget = focusWidget() ? focusWidget() : this;
77
 
    
 
77
 
78
78
    ViewSplitter* splitter = 0;
79
79
 
80
80
    while ( !splitter && widget )
90
90
void ViewSplitter::registerContainer( ViewContainer* container )
91
91
{
92
92
    _containers << container;
93
 
    connect( container , SIGNAL(destroyed(ViewContainer*)) , this , SLOT( containerDestroyed(ViewContainer*) ) );
94
 
    connect( container , SIGNAL(empty(ViewContainer*)) , this , SLOT( containerEmpty(ViewContainer*) ) );
 
93
    connect( container , SIGNAL(destroyed(ViewContainer*)) , this , SLOT(containerDestroyed(ViewContainer*)) );
 
94
    connect( container , SIGNAL(empty(ViewContainer*)) , this , SLOT(containerEmpty(ViewContainer*)) );
95
95
}
96
96
 
97
97
void ViewSplitter::unregisterContainer( ViewContainer* container )
140
140
                                 Qt::Orientation containerOrientation )
141
141
{
142
142
   ViewSplitter* splitter = activeSplitter();   
143
 
    
 
143
 
144
144
    if ( splitter->count() < 2 || 
145
145
         containerOrientation == splitter->orientation() ||
146
146
         !_recursiveSplitting )
150
150
 
151
151
        if ( splitter->orientation() != containerOrientation )
152
152
            splitter->setOrientation( containerOrientation );
153
 
        
 
153
 
154
154
        splitter->updateSizes();
155
155
    }
156
156
    else
160
160
 
161
161
        ViewContainer* oldContainer = splitter->activeContainer();
162
162
        int oldContainerIndex = splitter->indexOf(oldContainer->containerWidget());
163
 
     
 
163
 
164
164
        splitter->unregisterContainer(oldContainer);   
165
 
      
 
165
 
166
166
        newSplitter->registerContainer(oldContainer);
167
167
        newSplitter->registerContainer(container);
168
 
        
 
168
 
169
169
        newSplitter->addWidget(oldContainer->containerWidget());
170
170
        newSplitter->addWidget(container->containerWidget());
171
171
        newSplitter->setOrientation(containerOrientation); 
180
180
void ViewSplitter::containerEmpty(ViewContainer* /*object*/)
181
181
{
182
182
    QListIterator<ViewContainer*> containerIter(_containers);
183
 
    
 
183
 
184
184
    int children = 0;
185
185
    while (containerIter.hasNext())
186
186
    {
194
194
void ViewSplitter::containerDestroyed(ViewContainer* object)
195
195
{
196
196
    Q_ASSERT( _containers.contains(object) );
197
 
    
 
197
 
198
198
    _containers.removeAll(object);
199
199
 
200
200
    if ( count() == 0 )
238
238
void ViewSplitter::setActiveContainer(ViewContainer* container)
239
239
{
240
240
    QWidget* activeView = container->activeView();
241
 
    
 
241
 
242
242
    if ( activeView )
243
243
        activeView->setFocus( Qt::OtherFocusReason );
244
244
}
248
248
   if ( QWidget* focusW = focusWidget() )
249
249
   {
250
250
        ViewContainer* focusContainer = 0;
251
 
        
 
251
 
252
252
        while ( focusW != 0 )
253
253
        {
254
254
            QListIterator<ViewContainer*> containerIter(_containers);
255
255
            while (containerIter.hasNext())
256
256
            {
257
257
                ViewContainer* nextContainer = containerIter.next();
258
 
                             
 
258
 
259
259
                if (nextContainer->containerWidget() == focusW)
260
260
                {
261
261
                    focusContainer = nextContainer;
268
268
        if ( focusContainer )
269
269
            return focusContainer;
270
270
   }
271
 
    
 
271
 
272
272
   QList<ViewSplitter*> splitters = findChildren<ViewSplitter*>();
273
273
 
274
274
   if (splitters.count() > 0)