# kmdi Library API Documentation

Overview | Class Hierarchy | Classes | Classes (annotated) | Members | Namespaces | Source Files

# kmdifocuslist.cpp

    00001 /* This file is part of the KDE project
    00002   Copyright (C) 2003 Joseph Wenninger <jowenn@kde.org>
    00003
    00004   This library is free software; you can redistribute it and/or
    00005   modify it under the terms of the GNU Library General Public
    00006   License version 2 as published by the Free Software Foundation.
    00007
    00008   This library is distributed in the hope that it will be useful,
    00009   but WITHOUT ANY WARRANTY; without even the implied warranty of
    00010   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    00011   Library General Public License for more details.
    00012
    00013   You should have received a copy of the GNU Library General Public License
    00014   along with this library; see the file COPYING.LIB.  If not, write to
    00015   the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    00016   Boston, MA 02111-1307, USA.
    00017 */
    00018
    00019 #include "kmdifocuslist.h"
    00020 #include "kmdifocuslist.moc"
    00021 #include <qobjectlist.h>
    00022 #include <kdebug.h>
    00023
    00024 KMdiFocusList::KMdiFocusList( QObject *parent ) : QObject( parent )
    00025 {}
    00026
    00027 KMdiFocusList::~KMdiFocusList()
    00028 {}
    00029
    00030 void KMdiFocusList::addWidgetTree( QWidget* w )
    00031 {
    00032     //this method should never be called twice on the same hierarchy
    00033     m_list.insert( w, w->focusPolicy() );
    00034     w->setFocusPolicy( QWidget::ClickFocus );
    00035     kdDebug( 760 ) << "KMdiFocusList::addWidgetTree: adding toplevel" << endl;
    00036     connect( w, SIGNAL( destroyed( QObject * ) ), this, SLOT( objectHasBeenDestroyed( QObject* ) ) );
    00037     QObjectList *l = w->queryList( "QWidget" );
    00038     QObjectListIt it( *l );
    00039     QObject *obj;
    00040     while ( ( obj = it.current() ) != 0 )
    00041     {
    00042         QWidget * wid = ( QWidget* ) obj;
    00043         m_list.insert( wid, wid->focusPolicy() );
    00044         wid->setFocusPolicy( QWidget::ClickFocus );
    00045         kdDebug( 760 ) << "KMdiFocusList::addWidgetTree: adding widget" << endl;
    00046         connect( wid, SIGNAL( destroyed( QObject * ) ), this, SLOT( objectHasBeenDestroyed( QObject* ) ) );
    00047         ++it;
    00048     }
    00049     delete l;
    00050 }
    00051
    00052 void KMdiFocusList::restore()
    00053 {
    00054 #if (QT_VERSION-0 >= 0x030200)
    00055     for ( QMap<QWidget*, QWidget::FocusPolicy>::const_iterator it = m_list.constBegin();it != m_list.constEnd();++it )
    00056     {
    00057 #else
    00058     for ( QMap<QWidget*, QWidget::FocusPolicy>::iterator it = m_list.begin();it != m_list.end();++it )
    00059     {
    00060 #endif
    00061         it.key() ->setFocusPolicy( it.data() );
    00062     }
    00063     m_list.clear();
    00064 }
    00065
    00066
    00067 void KMdiFocusList::objectHasBeenDestroyed( QObject * o )
    00068 {
    00069     if ( !o || !o->isWidgetType() )
    00070         return ;
    00071     QWidget *w = ( QWidget* ) o;
    00072     m_list.remove( w );
    00073 }
    00074
    00075 // kate: space-indent off; tab-width 4; replace-tabs off; indent-mode csands;

This file is part of the documentation for kmdi Library Version 3.4.1.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Sat Jun 11 20:32:06 2005 by doxygen 1.4.1 written by Dimitri van Heesch, © 1997-2003