krop's commit fixes my problem in a better way, reverting
[kdepim.git] / kmail / isubject.h
blobe3e511a4059eb4471bc1248edcca85383c1d4ac3
1 /* -*- mode: C++; c-file-style: "gnu" -*-
3 * This file is part of KMail, the KDE mail client.
4 * Copyright (c) 2003 Carsten Burghardt <burghardt@kde.org>
6 * KMail is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License, version 2, as
8 * published by the Free Software Foundation.
10 * KMail is distributed in the hope that it will be useful, but
11 * WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19 * In addition, as a special exception, the copyright holders give
20 * permission to link the code of this program with any edition of
21 * the Qt library by Trolltech AS, Norway (or with modified versions
22 * of Qt that use the same license as Qt), and distribute linked
23 * combinations including the two. You must obey the GNU General
24 * Public License in all respects for all of the code used other than
25 * Qt. If you modify this file, you may extend this exception to
26 * your version of the file, but you are not obligated to do so. If
27 * you do not wish to do so, delete this exception statement from
28 * your version.
31 #ifndef __KMAIL_ISUBJECT_H__
32 #define __KMAIL_ISUBJECT_H__
34 #include "interfaces/observable.h"
35 #include <QVector>
38 namespace KMail {
40 namespace Interface {
41 class Observer;
44 class ISubject : public Interface::Observable {
45 public :
46 virtual ~ISubject();
48 /** \reimp Attach the observer if it is not in the list yet */
49 void attach( Interface::Observer * );
51 /** \reimp Detach the observer */
52 void detach( Interface::Observer * );
54 /** \reimp Notify all observers ( call observer->update() ) */
55 void notify();
57 private:
58 QVector<Interface::Observer*> mObserverList;
61 } // namespace KMail
63 #endif // __KMAIL_ISUBJECT_H__