1 /*
2    SPDX-FileCopyrightText: 2008 Michael Jansen <kde@michael-jansen.biz>
3 
4    SPDX-License-Identifier: LGPL-2.0-or-later
5 */
6 
7 #include "action_group_widget.h"
8 
9 #include "conditions/conditions_widget.h"
10 
11 #include "action_data/action_data_group.h"
12 
ActionGroupWidget(QWidget * parent)13 ActionGroupWidget::ActionGroupWidget(QWidget *parent)
14     : HotkeysWidgetBase(parent)
15     , _conditions(new ConditionsWidget)
16 {
17     extend(_conditions, i18n("Conditions"));
18     connect(_conditions, SIGNAL(changed(bool)), SLOT(slotChanged()));
19 }
20 
~ActionGroupWidget()21 ActionGroupWidget::~ActionGroupWidget()
22 {
23     _conditions = nullptr;
24 }
25 
setActionData(KHotKeys::ActionDataGroup * group)26 void ActionGroupWidget::setActionData(KHotKeys::ActionDataGroup *group)
27 {
28     _data = group;
29 
30     // BUG: conditions copies twice from the original. Once in
31     // setConditionsList and once because of the copyFromObject call below.
32     Q_ASSERT(_conditions);
33     _conditions->setConditionsList(group->conditions());
34 
35     Base::copyFromObject();
36 }
37 
doCopyFromObject()38 void ActionGroupWidget::doCopyFromObject()
39 {
40     Q_ASSERT(data());
41     Base::doCopyFromObject();
42 
43     Q_ASSERT(_conditions);
44     _conditions->copyFromObject();
45 }
46 
doCopyToObject()47 void ActionGroupWidget::doCopyToObject()
48 {
49     Q_ASSERT(data());
50     Base::doCopyToObject();
51 
52     Q_ASSERT(_conditions);
53     _conditions->copyToObject();
54 }
55 
isChanged() const56 bool ActionGroupWidget::isChanged() const
57 {
58     return _conditions->hasChanges() || Base::isChanged();
59 }
60 
61 #include "moc_action_group_widget.cpp"
62