KTutorial
0.5.1
|
00001 /*************************************************************************** 00002 * Copyright (C) 2010 by Daniel Calviño Sánchez <danxuliu@gmail.com> * 00003 * Copyright (C) 2012 by Daniel Calviño Sánchez <danxuliu@gmail.com> * 00004 * * 00005 * This program is free software; you can redistribute it and/or modify * 00006 * it under the terms of the GNU General Public License as published by * 00007 * the Free Software Foundation; either version 2 of the License, or * 00008 * (at your option) any later version. * 00009 * * 00010 * This program is distributed in the hope that it will be useful, * 00011 * but WITHOUT ANY WARRANTY; without even the implied warranty of * 00012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 00013 * GNU General Public License for more details. * 00014 * * 00015 * You should have received a copy of the GNU General Public License * 00016 * along with this program; If not, see <http://www.gnu.org/licenses/>. * 00017 ***************************************************************************/ 00018 00019 #include "EventSpy.h" 00020 00021 #include <QEvent> 00022 00023 namespace ktutorial { 00024 namespace editorsupport { 00025 00026 //public: 00027 00028 EventSpy::EventSpy(QObject* parent /*= 0*/): QObject(parent) { 00029 } 00030 00031 void EventSpy::addObjectToSpy(QObject* object) { 00032 object->installEventFilter(this); 00033 00034 foreach (QObject* child, object->children()) { 00035 addObjectToSpy(child); 00036 } 00037 } 00038 00039 //protected: 00040 00041 bool EventSpy::eventFilter(QObject* object, QEvent* event) { 00042 emit eventReceived(object, event); 00043 00044 if (event->type() == QEvent::ChildAdded) { 00045 addObjectToSpy(static_cast<QChildEvent*>(event)->child()); 00046 } 00047 00048 return false; 00049 } 00050 00051 } 00052 }