| |
| |
| #include "tfxattributes.h" |
| #include "tconst.h" |
| |
| |
| |
| TFxAttributes::TFxAttributes() |
| : m_id(0) |
| , m_dagNodePos(TConst::nowhere) |
| , m_enabled(true) |
| , m_speedAware(false) |
| , m_isOpened(false) |
| , m_speed() |
| , m_groupSelector(-1) |
| , m_passiveCacheDataIdx(-1) {} |
| |
| |
| |
| TFxAttributes::~TFxAttributes() {} |
| |
| |
| |
| void TFxAttributes::setDagNodePos(const TPointD &pos) { m_dagNodePos = pos; } |
| |
| |
| |
| int TFxAttributes::setGroupId(int value) { |
| m_groupSelector++; |
| m_groupId.insert(m_groupSelector, value); |
| return m_groupSelector; |
| } |
| |
| |
| |
| void TFxAttributes::setGroupId(int value, int position) { |
| assert(position >= 0 && position <= m_groupId.size()); |
| m_groupId.insert(position, value); |
| if (m_groupSelector + 1 >= position) m_groupSelector++; |
| } |
| |
| |
| |
| int TFxAttributes::getGroupId() { |
| return m_groupId.isEmpty() || m_groupSelector < 0 || |
| m_groupSelector >= m_groupId.size() |
| ? 0 |
| : m_groupId[m_groupSelector]; |
| } |
| |
| |
| |
| QStack<int> TFxAttributes::getGroupIdStack() { return m_groupId; } |
| |
| |
| |
| void TFxAttributes::removeGroupId(int position) { |
| if (!isGrouped()) return; |
| assert(position >= 0 && position <= m_groupId.size()); |
| m_groupId.remove(position); |
| if (m_groupSelector + 1 >= position && m_groupSelector > -1) |
| m_groupSelector--; |
| } |
| |
| |
| |
| int TFxAttributes::removeGroupId() { |
| m_groupId.remove(m_groupSelector); |
| if (m_groupSelector > -1) m_groupSelector--; |
| return m_groupSelector + 1; |
| } |
| |
| |
| |
| bool TFxAttributes::isGrouped() { return !m_groupId.isEmpty(); } |
| |
| |
| |
| bool TFxAttributes::isContainedInGroup(int groupId) { |
| return m_groupId.contains(groupId); |
| } |
| |
| |
| |
| void TFxAttributes::setGroupName(const std::wstring &name, int position) { |
| int groupSelector = position < 0 ? m_groupSelector : position; |
| assert(groupSelector >= 0 && groupSelector <= m_groupName.size()); |
| m_groupName.insert(groupSelector, name); |
| } |
| |
| |
| |
| std::wstring TFxAttributes::getGroupName(bool fromEditor) { |
| int groupSelector = fromEditor ? m_groupSelector + 1 : m_groupSelector; |
| return m_groupName.isEmpty() || groupSelector < 0 || |
| groupSelector >= m_groupName.size() |
| ? L"" |
| : m_groupName[groupSelector]; |
| } |
| |
| |
| |
| QStack<std::wstring> TFxAttributes::getGroupNameStack() { return m_groupName; } |
| |
| |
| |
| int TFxAttributes::removeGroupName(bool fromEditor) { |
| int groupSelector = fromEditor ? m_groupSelector + 1 : m_groupSelector; |
| if (!isGrouped()) return -1; |
| assert(groupSelector >= 0 && groupSelector <= m_groupName.size()); |
| m_groupName.remove(groupSelector); |
| return groupSelector; |
| } |
| |
| |
| |
| void TFxAttributes::removeGroupName(int position) { |
| int groupSelector = position < 0 ? m_groupSelector : position; |
| assert(groupSelector >= 0 && groupSelector <= m_groupName.size()); |
| m_groupName.remove(groupSelector); |
| } |
| |
| |
| |
| bool TFxAttributes::editGroup() { |
| return (m_groupSelector < 0) ? false : (--m_groupSelector, true); |
| } |
| |
| |
| |
| bool TFxAttributes::isGroupEditing() { |
| return isGrouped() && (m_groupSelector == -1); |
| } |
| |
| |
| |
| void TFxAttributes::closeEditingGroup(int groupId) { |
| if (!m_groupId.contains(groupId)) return; |
| m_groupSelector = 0; |
| while (m_groupId[m_groupSelector] != groupId && |
| m_groupSelector < m_groupId.size()) |
| m_groupSelector++; |
| } |
| |
| |
| |
| int TFxAttributes::getEditingGroupId() { |
| if (!isGrouped() || m_groupSelector + 1 >= m_groupId.size()) return -1; |
| return m_groupId[m_groupSelector + 1]; |
| } |
| |
| |
| |
| std::wstring TFxAttributes::getEditingGroupName() { |
| if (!isGrouped() || m_groupSelector + 1 >= m_groupName.size()) return L""; |
| return m_groupName[m_groupSelector + 1]; |
| } |
| |
| |
| |
| void TFxAttributes::removeFromAllGroup() { |
| m_groupId.clear(); |
| m_groupName.clear(); |
| m_groupSelector = -1; |
| } |
| |
| |
| |
| void TFxAttributes::closeAllGroups() { |
| if (isGroupEditing()) m_groupSelector = m_groupId.size() - 1; |
| } |
| |