1 | /* |
2 | This file is part of the KDE project |
3 | Copyright (C) 2008 by Dmitry Suzdalev <dimsuz@gmail.com> |
4 | |
5 | This program is free software; you can redistribute it and/or |
6 | modify it under the terms of the GNU General Public |
7 | License as published by the Free Software Foundation; either |
8 | version 2 of the License, or (at your option) any later version. |
9 | |
10 | This program is distributed in the hope that it will be useful, |
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
13 | General Public License for more details. |
14 | |
15 | You should have received a copy of the GNU General Public License |
16 | along with this program; see the file COPYING. If not, write to |
17 | the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
18 | Boston, MA 02110-1301, USA. |
19 | */ |
20 | #include "actionstreewidget.h" |
21 | #include <KDebug> |
22 | |
23 | ActionsTreeWidget::ActionsTreeWidget(QWidget* parent) |
24 | : QTreeWidget(parent), m_actionsChanged(-1), m_modified(false) |
25 | { |
26 | // these signals indicate that something was changed in actions tree |
27 | |
28 | connect(this, SIGNAL(itemChanged(QTreeWidgetItem*,int)), SLOT(onItemChanged())); |
29 | QAbstractItemModel *treeModel = model(); |
30 | if (treeModel) |
31 | { |
32 | connect(treeModel, SIGNAL(rowsInserted(QModelIndex,int,int)), SLOT(onItemChanged())); |
33 | connect(treeModel, SIGNAL(rowsRemoved(QModelIndex,int,int)), SLOT(onItemChanged())); |
34 | } |
35 | } |
36 | |
37 | void ActionsTreeWidget::onItemChanged() |
38 | { |
39 | setActionsChanged(true); |
40 | } |
41 | |
42 | void ActionsTreeWidget::resetModifiedState() |
43 | { |
44 | m_modified = false; |
45 | m_actionsChanged = -1; |
46 | } |
47 | |
48 | void ActionsTreeWidget::setActionsChanged(int isChanged) |
49 | { |
50 | Q_UNUSED(isChanged) |
51 | |
52 | if (!m_modified) |
53 | { |
54 | m_actionsChanged = m_actionsChanged ? 1 : 0; |
55 | m_modified = true; |
56 | emit changed(); |
57 | } |
58 | } |
59 | |
60 | int ActionsTreeWidget::actionsChanged() const |
61 | { |
62 | return m_actionsChanged; |
63 | } |
64 | |
65 | |