File indexing completed on 2024-05-12 05:06:13
0001 /* 0002 SPDX-FileCopyrightText: 2020 Thomas Baumgart <tbaumgart@kde.org> 0003 SPDX-License-Identifier: GPL-2.0-or-later 0004 */ 0005 0006 #include "selectedobjects.h" 0007 0008 SelectedObjects::SelectedObjects() 0009 { 0010 } 0011 0012 void SelectedObjects::addSelection(SelectedObjects::Object_t type, const QString& id) 0013 { 0014 addSelections(type, QStringList(id)); 0015 } 0016 0017 void SelectedObjects::addSelections(SelectedObjects::Object_t type, const QStringList& ids) 0018 { 0019 for(const auto& id : qAsConst(ids)) { 0020 if (!id.isEmpty()) { 0021 if (!m_selections[type].contains(id)) { 0022 m_selections[type].append(id); 0023 } 0024 } 0025 } 0026 } 0027 0028 void SelectedObjects::removeSelection(SelectedObjects::Object_t type, const QString& id) 0029 { 0030 m_selections[type].removeAll(id); 0031 if (m_selections[type].isEmpty()) { 0032 m_selections.remove(type); 0033 } 0034 } 0035 0036 void SelectedObjects::setSelection(SelectedObjects::Object_t type, const QString& id) 0037 { 0038 setSelection(type, QStringList(id)); 0039 } 0040 0041 void SelectedObjects::setSelection(SelectedObjects::Object_t type, const QStringList& ids) 0042 { 0043 if (ids.isEmpty()) { 0044 m_selections.remove(type); 0045 } else { 0046 m_selections[type] = ids; 0047 } 0048 } 0049 0050 void SelectedObjects::clearSelections(SelectedObjects::Object_t type) 0051 { 0052 m_selections.remove(type); 0053 } 0054 0055 void SelectedObjects::clearSelections() 0056 { 0057 m_selections.clear(); 0058 } 0059 0060 int SelectedObjects::count(SelectedObjects::Object_t type) const 0061 { 0062 return m_selections[type].count(); 0063 } 0064 0065 bool SelectedObjects::isEmpty(SelectedObjects::Object_t type) const 0066 { 0067 return m_selections[type].isEmpty(); 0068 } 0069 0070 QStringList SelectedObjects::selection(SelectedObjects::Object_t type) const 0071 { 0072 return m_selections[type]; 0073 } 0074 0075 QString SelectedObjects::firstSelection(SelectedObjects::Object_t type) const 0076 { 0077 if (!m_selections[type].isEmpty()) { 0078 return m_selections[type].first(); 0079 } 0080 return {}; 0081 } 0082 0083 bool SelectedObjects::isEmpty() const 0084 { 0085 return m_selections.isEmpty(); 0086 } 0087 0088 bool SelectedObjects::operator!=(const SelectedObjects& right) const 0089 { 0090 return m_selections != right.m_selections; 0091 }