delay a few things on startup, such as setting the visibility mode, which ensures...
[personal-kdebase.git] / apps / konqueror / src / delayedinitializer.cpp
blobe6327f294236413683eeee7f9bd816d9a7c8c910
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>
23 //Added by qt3to4:
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 )
36 return false;
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() ) );
46 return false;
49 void DelayedInitializer::slotInitialize()
51 emit initialize();
52 deleteLater();
55 #include "delayedinitializer.moc"
57 /* vim: et sw=4