digiKam
Loading...
Searching...
No Matches
dconfigdlgmodels_p.h
Go to the documentation of this file.
1
/* ============================================================
2
*
3
* This file is a part of digiKam project
4
* https://www.digikam.org
5
*
6
* Date : 2009-11-03
7
* Description : A dialog base class which can handle multiple pages.
8
*
9
* SPDX-FileCopyrightText: 2009-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
10
* SPDX-FileCopyrightText: 2007 by Matthias Kretz <kretz at kde dot org>
11
*
12
* SPDX-License-Identifier: GPL-2.0-or-later
13
*
14
* ============================================================ */
15
16
#pragma once
17
18
#include "
dconfigdlgmodels.h
"
19
20
namespace
Digikam
21
{
22
23
class
Q_DECL_HIDDEN
DConfigDlgModelPrivate
24
{
25
Q_DECLARE_PUBLIC(
DConfigDlgModel
)
26
27
public
:
28
29
DConfigDlgModelPrivate
() =
default
;
30
virtual
~DConfigDlgModelPrivate
() =
default
;
31
32
protected
:
33
34
DConfigDlgModel
* q_ptr =
nullptr
;
35
36
private
:
37
38
Q_DISABLE_COPY(
DConfigDlgModelPrivate
)
39
};
40
41
// ----------------------------------------------------------------------------
42
43
class
Q_DECL_HIDDEN
PageItem
44
{
45
public
:
46
47
explicit
PageItem
(
DConfigDlgWdgItem
*
const
pageItem,
PageItem
*
const
parent =
nullptr
);
48
~PageItem
();
49
50
void
appendChild(
PageItem
*
const
child);
51
void
insertChild(
int
row,
PageItem
*
const
child);
52
void
removeChild(
int
row);
53
54
PageItem
* child(
int
row);
55
int
childCount()
const
;
56
int
columnCount()
const
;
57
int
row()
const
;
58
PageItem
* parent()
const
;
59
60
DConfigDlgWdgItem
* pageWidgetItem()
const
;
61
62
PageItem
* findChild(
const
DConfigDlgWdgItem
* item);
63
64
void
dump(
int
indent = 0);
65
66
private
:
67
68
DConfigDlgWdgItem
* mPageWidgetItem =
nullptr
;
69
QList<PageItem*> mChildItems;
70
PageItem
* mParentItem =
nullptr
;
71
72
private
:
73
74
// Disable
75
PageItem
(
const
PageItem
&) =
delete
;
76
PageItem
& operator=(
const
PageItem
&) =
delete
;
77
};
78
79
// ----------------------------------------------------------------------------
80
81
class
Q_DECL_HIDDEN
DConfigDlgWdgModelPrivate
:
public
DConfigDlgModelPrivate
82
{
83
Q_DECLARE_PUBLIC(
DConfigDlgWdgModel
)
84
85
protected
:
86
87
DConfigDlgWdgModelPrivate
()
88
: rootItem(new
PageItem
(nullptr, nullptr))
89
{
90
}
91
92
~DConfigDlgWdgModelPrivate
()
93
{
94
delete
rootItem;
95
rootItem =
nullptr
;
96
}
97
98
void
_k_itemChanged
()
99
{
100
Q_Q(
DConfigDlgWdgModel
);
101
102
DConfigDlgWdgItem
*
const
item = qobject_cast<DConfigDlgWdgItem*>(q->sender());
103
104
if
(!item)
105
{
106
return
;
107
}
108
109
const
QModelIndex index = q->index(item);
110
111
if
(!index.isValid())
112
{
113
return
;
114
}
115
116
Q_EMIT q->dataChanged(index, index);
117
}
118
119
void
_k_itemToggled
(
bool
checked)
120
{
121
Q_Q(
DConfigDlgWdgModel
);
122
123
DConfigDlgWdgItem
*
const
item = qobject_cast<DConfigDlgWdgItem*>(q->sender());
124
125
if
(!item)
126
{
127
return
;
128
}
129
130
Q_EMIT q->toggled(item, checked);
131
}
132
133
protected
:
134
135
PageItem
* rootItem =
nullptr
;
136
137
private
:
138
139
// Disable
140
DConfigDlgWdgModelPrivate
(
const
DConfigDlgWdgModelPrivate
&) =
delete
;
141
DConfigDlgWdgModelPrivate
& operator=(
const
DConfigDlgWdgModelPrivate
&) =
delete
;
142
};
143
144
}
// namespace Digikam
Digikam::DConfigDlgModelPrivate
Definition
dconfigdlgmodels_p.h:24
Digikam::DConfigDlgModelPrivate::DConfigDlgModelPrivate
DConfigDlgModelPrivate()=default
Digikam::DConfigDlgModelPrivate::~DConfigDlgModelPrivate
virtual ~DConfigDlgModelPrivate()=default
Digikam::DConfigDlgModel
A base class for a model used by DConfigDlgView.
Definition
dconfigdlgmodels.h:46
Digikam::DConfigDlgWdgItem
Definition
dconfigdlgmodels.h:95
Digikam::DConfigDlgWdgModelPrivate
Definition
dconfigdlgmodels_p.h:82
Digikam::DConfigDlgWdgModelPrivate::_k_itemChanged
void _k_itemChanged()
Definition
dconfigdlgmodels_p.h:98
Digikam::DConfigDlgWdgModelPrivate::DConfigDlgWdgModelPrivate
DConfigDlgWdgModelPrivate()
Definition
dconfigdlgmodels_p.h:87
Digikam::DConfigDlgWdgModelPrivate::~DConfigDlgWdgModelPrivate
~DConfigDlgWdgModelPrivate()
Definition
dconfigdlgmodels_p.h:92
Digikam::DConfigDlgWdgModelPrivate::_k_itemToggled
void _k_itemToggled(bool checked)
Definition
dconfigdlgmodels_p.h:119
Digikam::DConfigDlgWdgModel
Definition
dconfigdlgmodels.h:238
Digikam::PageItem
Definition
dconfigdlgmodels_p.h:44
dconfigdlgmodels.h
Digikam
Definition
datefolderview.cpp:34
core
libs
dialogs
dconfigdlgmodels_p.h
Generated by
1.9.8