1 /* This file is part of the KDE project
2 Copyright (C) 2003 Simon Hausmann <hausmann@kde.org>
4 This program is free software; you can redistribute it and/or
5 modify it under the terms of the GNU General Public
6 License as published by the Free Software Foundation; either
7 version 2 of the License, or (at your option) any later version.
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 General Public License for more details.
14 You should have received a copy of the GNU General Public License
15 along with this program; see the file COPYING. If not, write to
16 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17 Boston, MA 02110-1301, USA.
21 #include "delayedinitializer.h"
22 #include <QtCore/QTimer>
24 #include <QtCore/QEvent>
26 DelayedInitializer::DelayedInitializer( int eventType
, QObject
*parent
, const char *name
)
27 : QObject( parent
), m_eventType( eventType
), m_signalEmitted( false )
29 setObjectName( name
);
30 parent
->installEventFilter( this );
33 bool DelayedInitializer::eventFilter( QObject
*receiver
, QEvent
*event
)
35 if ( m_signalEmitted
|| event
->type() != m_eventType
)
38 m_signalEmitted
= true;
39 receiver
->removeEventFilter( this );
41 // Move the emitting of the event to the end of the eventQueue
42 // so we are absolutely sure the event we get here is handled before
43 // the initialize is fired.
44 QTimer::singleShot( 0, this, SLOT( slotInitialize() ) );
49 void DelayedInitializer::slotInitialize()
55 #include "delayedinitializer.moc"