swift
actionitem.cpp
1 // SPDX-FileCopyrightText: Copyright (C) 2015 swift Project Community / Contributors
2 // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1
3 
5 
6 #include <QtAlgorithms>
7 
8 using namespace swift::misc;
9 
10 namespace swift::gui::models
11 {
12  CActionItem::CActionItem(const QString &action, const QString &name, CActionItem *parentItem)
13  : m_action(action), m_actionName(name), m_parentItem(parentItem)
14  {}
15 
16  CActionItem::CActionItem(const QString &action, const QString &name, const QPixmap &icon, CActionItem *parentItem)
17  : m_action(action), m_actionName(name), m_icon(icon), m_parentItem(parentItem)
18  {}
19 
20  CActionItem::CActionItem(const QString &action, const QString &name, CIcons::IconIndex icon,
21  CActionItem *parentItem)
22  : m_action(action), m_actionName(name), m_icon(CIcons::pixmapByIndex(icon)), m_parentItem(parentItem)
23  {}
24 
25  CActionItem::~CActionItem() { qDeleteAll(m_childItems); }
26 
27  void CActionItem::appendChild(CActionItem *item) { m_childItems.append(item); }
28 
29  CActionItem *CActionItem::findChildByName(const QString &name) const
30  {
31  for (auto child : m_childItems)
32  {
33  if (child->getActionName() == name) return child;
34  }
35  return nullptr;
36  }
37 
38  CActionItem *CActionItem::getChildByRow(int row) const { return m_childItems.value(row); }
39 
40  int CActionItem::getChildCount() const { return m_childItems.count(); }
41 
42  bool CActionItem::hasChildren() const { return getChildCount() > 0; }
43 
44  int CActionItem::getColumnCount() const { return 1; }
45 
46  QString CActionItem::getAction() const { return m_action; }
47 
48  QString CActionItem::getActionName() const { return m_actionName; }
49 
50  CActionItem *CActionItem::getParentItem() const { return m_parentItem; }
51 
52  int CActionItem::getRow() const
53  {
54  if (m_parentItem) { return m_parentItem->m_childItems.indexOf(const_cast<CActionItem *>(this)); }
55  return 0;
56  }
57 } // namespace swift::gui::models
One single action item in a tree.
Definition: actionitem.h:19
int getColumnCount() const
Number of columns.
Definition: actionitem.cpp:44
QString getAction() const
Returns the stored action.
Definition: actionitem.cpp:46
int getRow() const
Get row of this item.
Definition: actionitem.cpp:52
bool hasChildren() const
Has children?
Definition: actionitem.cpp:42
int getChildCount() const
Number of children.
Definition: actionitem.cpp:40
void appendChild(CActionItem *child)
Append a new child.
Definition: actionitem.cpp:27
CActionItem * getParentItem() const
Get parent item.
Definition: actionitem.cpp:50
CActionItem * getChildByRow(int row) const
Get child by row.
Definition: actionitem.cpp:38
CActionItem(const QString &action, const QString &name, CActionItem *parentItem=nullptr)
Constructor.
Definition: actionitem.cpp:12
CActionItem * findChildByName(const QString &name) const
Find child by its name.
Definition: actionitem.cpp:29
QString getActionName() const
Get action name.
Definition: actionitem.cpp:48
Standard icons.
Definition: icons.h:25
IconIndex
Index for each icon, allows to send them via DBus, efficiently store them, etc.
Definition: icons.h:32
Models to be used with views, mainly QTableView.
Free functions in swift::misc.