1 /* This file is part of the KDE project
2    Copyright (C) 2004 Cedric Pasteur <cedric.pasteur@free.fr>
3    Copyright (C) 2004 Alexander Dymo <cloudtemple@mskat.net>
4    Copyright (C) 2004-2017 Jarosław Staniek <staniek@kde.org>
5 
6    This library is free software; you can redistribute it and/or
7    modify it under the terms of the GNU Library General Public
8    License as published by the Free Software Foundation; either
9    version 2 of the License, or (at your option) any later version.
10 
11    This library is distributed in the hope that it will be useful,
12    but WITHOUT ANY WARRANTY; without even the implied warranty of
13    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14    Library General Public License for more details.
15 
16    You should have received a copy of the GNU Library General Public License
17    along with this library; see the file COPYING.LIB.  If not, write to
18    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
19  * Boston, MA 02110-1301, USA.
20 */
21 
22 #ifndef KPROPERTYSETBUFFER_H
23 #define KPROPERTYSETBUFFER_H
24 
25 #include "KPropertySet.h"
26 
27 /**
28  * @brief A property set's buffer
29  */
30 class KPROPERTYCORE_EXPORT KPropertySetBuffer : public KPropertySet
31 {
32     Q_OBJECT
33 
34 public:
35     KPropertySetBuffer();
36 
37     explicit KPropertySetBuffer(const KPropertySet &set);
38 
39     ~KPropertySetBuffer() override;
40 
41     /*! Intersects with other KPropertySet.*/
42     virtual void intersect(const KPropertySet& set);
43 
44 protected Q_SLOTS:
45     void intersectedChanged(KPropertySet& set, KProperty& prop);
46     void intersectedReset(KPropertySet& set, KProperty& prop);
47 
48 private:
49     void init(const KPropertySet& set);
50 
51     Q_DISABLE_COPY(KPropertySetBuffer)
52     class Private;
53     Private * const d;
54 };
55 
56 #endif
57