File indexing completed on 2024-04-28 16:54:22

0001 /*
0002     SPDX-FileCopyrightText: 2008 Dmitry Suzdalev <dimsuz@gmail.com>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 #include "actionstreewidget.h"
0007 
0008 ActionsTreeWidget::ActionsTreeWidget(QWidget *parent)
0009     : QTreeWidget(parent)
0010     , m_actionsChanged(-1)
0011     , m_modified(false)
0012 {
0013     // these signals indicate that something was changed in actions tree
0014 
0015     connect(this, &ActionsTreeWidget::itemChanged, this, &ActionsTreeWidget::onItemChanged);
0016     QAbstractItemModel *treeModel = model();
0017     if (treeModel) {
0018         connect(treeModel, &QAbstractItemModel::rowsInserted, this, &ActionsTreeWidget::onItemChanged);
0019         connect(treeModel, &QAbstractItemModel::rowsRemoved, this, &ActionsTreeWidget::onItemChanged);
0020     }
0021     setProperty("kcfg_propertyNotify", true);
0022 }
0023 
0024 void ActionsTreeWidget::onItemChanged()
0025 {
0026     setActionsChanged(true);
0027 }
0028 
0029 void ActionsTreeWidget::resetModifiedState()
0030 {
0031     m_modified = false;
0032     m_actionsChanged = -1;
0033 }
0034 
0035 void ActionsTreeWidget::setActionsChanged(int isChanged)
0036 {
0037     Q_UNUSED(isChanged)
0038 
0039     if (!m_modified) {
0040         m_actionsChanged = m_actionsChanged ? 1 : 0;
0041         m_modified = true;
0042         Q_EMIT changed();
0043     }
0044 }
0045 
0046 int ActionsTreeWidget::actionsChanged() const
0047 {
0048     return m_actionsChanged;
0049 }