diff options
Diffstat (limited to 'kexi/core/kexievents.cpp')
-rw-r--r-- | kexi/core/kexievents.cpp | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/kexi/core/kexievents.cpp b/kexi/core/kexievents.cpp new file mode 100644 index 00000000..2cafe2d3 --- /dev/null +++ b/kexi/core/kexievents.cpp @@ -0,0 +1,92 @@ +/* This file is part of the KDE project + Copyright (C) 2004 Cedric Pasteur <cedric.pasteur@free.fr> + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. +*/ + +#include "kexievents.h" + +Event::Event(QObject *sender, const QCString &signal, + QObject *receiver, const QCString &slot) +{ + m_sender = sender; + m_receiver = receiver; + m_slot = slot; + m_signal = signal; +} + +Event::Event(QObject *sender, const QCString &signal, + const QCString &functionName) +{ + m_sender = sender; + m_signal = signal; + m_slot = functionName; +} + +void +EventList::addEvent(Event *event) +{ + if(event) + append(event); +} + +void +EventList::addEvent(QObject *sender, const QCString &signal, QObject *receiver, const QCString &slot) +{ + Event *ev = new Event(sender, signal, receiver, slot); + append(ev); +} + +void +EventList::addEvent(QObject *sender, const QCString &signal, const QCString &function) +{ + Event *ev = new Event(sender, signal, function); + append(ev); +} + +void +EventList::removeEvent(Event *event) +{ + if(!event) return; + remove(event); + delete event; +} + +EventList* +EventList::allEventsForObject(QObject *widget) +{ + if(!widget) return 0; + + EventList *l = new EventList(); + EventList::ConstIterator endIt = constEnd(); + for(EventList::ConstIterator it = constBegin(); it != endIt; ++it) { + if( ((*it)->sender() == widget) || ( (*it)->receiver() == widget) ) + l->addEvent(*it); + } + + return l; +} + +void +EventList::removeAllEventsForObject(QObject *widget) +{ + EventList::ConstIterator endIt = constEnd(); + for(EventList::ConstIterator it = constBegin(); it != endIt; ++it) { + if( ((*it)->sender() == widget) || ( (*it)->receiver() == widget) ) + removeEvent(*it); + } +} + |