kmdifocuslist.cpp
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
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 m_list.insert(w,w->focusPolicy());
00033 w->setFocusPolicy(QWidget::ClickFocus);
00034 kdDebug(760)<<"KMdiFocusList::addWidgetTree: adding toplevel"<<endl;
00035 connect(w,SIGNAL(destroyed(QObject *)),this,SLOT(objectHasBeenDestroyed(QObject*)));
00036 QObjectList *l=w->queryList("QWidget");
00037 QObjectListIt it( *l );
00038 QObject *obj;
00039 while ( (obj = it.current()) != 0 ) {
00040 QWidget *wid=(QWidget*)obj;
00041 m_list.insert(wid,wid->focusPolicy());
00042 wid->setFocusPolicy(QWidget::ClickFocus);
00043 kdDebug(760)<<"KMdiFocusList::addWidgetTree: adding widget"<<endl;
00044 connect(wid,SIGNAL(destroyed(QObject *)),this,SLOT(objectHasBeenDestroyed(QObject*)));
00045 ++it;
00046 }
00047 delete l;
00048 }
00049
00050 void KMdiFocusList::restore() {
00051 #if (QT_VERSION-0 >= 0x030200)
00052 for (QMap<QWidget*,QWidget::FocusPolicy>::const_iterator it=m_list.constBegin();it!=m_list.constEnd();++it) {
00053 #else
00054 for (QMap<QWidget*,QWidget::FocusPolicy>::iterator it=m_list.begin();it!=m_list.end();++it) {
00055 #endif
00056 it.key()->setFocusPolicy(it.data());
00057 }
00058 m_list.clear();
00059 }
00060
00061
00062 void KMdiFocusList::objectHasBeenDestroyed(QObject* o) {
00063 if (!o || !o->isWidgetType()) return;
00064 QWidget *w=(QWidget*)o;
00065 m_list.remove(w);
00066 }
This file is part of the documentation for kmdi Library Version 3.3.90.