PlasmaActivities

model_updaters.h
1/*
2 SPDX-FileCopyrightText: 2012 Ivan Cukic <ivan.cukic(at)kde.org>
3
4 SPDX-License-Identifier: GPL-2.0-or-later
5*/
6
7#ifndef KACTIVITIES_MODEL_UPDATERS_H
8#define KACTIVITIES_MODEL_UPDATERS_H
9
10// -----------------------------------------
11// RAII classes for model updates ----------
12// -----------------------------------------
13
14// clang-format off
15#define DECLARE_RAII_MODEL_UPDATERS(Class) \
16 template <typename T> class _model_reset { \
17 T *model; \
18 \
19 public: \
20 _model_reset(T *m) : model(m) \
21 { \
22 model->beginResetModel(); \
23 } \
24 ~_model_reset() \
25 { \
26 model->endResetModel(); \
27 } \
28 }; \
29 template <typename T> class _model_insert { \
30 T *model; \
31 \
32 public: \
33 _model_insert(T *m, const QModelIndex &parent, int first, int last) \
34 : model(m) \
35 { \
36 model->beginInsertRows(parent, first, last); \
37 } \
38 ~_model_insert() \
39 { \
40 model->endInsertRows(); \
41 } \
42 }; \
43 template <typename T> class _model_remove { \
44 T *model; \
45 \
46 public: \
47 _model_remove(T *m, const QModelIndex &parent, int first, int last) \
48 : model(m) \
49 { \
50 model->beginRemoveRows(parent, first, last); \
51 } \
52 ~_model_remove() \
53 { \
54 model->endRemoveRows(); \
55 } \
56 }; \
57 typedef _model_reset<Class> model_reset; \
58 typedef _model_remove<Class> model_remove; \
59 typedef _model_insert<Class> model_insert;
60
61// -----------------------------------------
62
63#endif // KACTIVITIES_MODEL_UPDATERS_H
64
This file is part of the KDE documentation.
Documentation copyright © 1996-2025 The KDE developers.
Generated on Fri Feb 28 2025 12:01:06 by doxygen 1.13.2 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.