File indexing completed on 2024-04-28 15:39:41
0001 // SPDX-FileCopyrightText: 2014-2022 Jesper K. Pedersen <blackie@kde.org> 0002 // 0003 // SPDX-License-Identifier: GPL-2.0-or-later 0004 0005 #include "DiscoveryModel.h" 0006 #include "Action.h" 0007 #include "Types.h" 0008 0009 namespace RemoteControl 0010 { 0011 0012 DiscoveryModel::DiscoveryModel(QObject *parent) 0013 : ThumbnailModel(parent) 0014 { 0015 } 0016 0017 int DiscoveryModel::count() const 0018 { 0019 return m_count; 0020 } 0021 0022 void DiscoveryModel::setImages(const QList<int> &images) 0023 { 0024 m_allImages = images; 0025 resetImages(); 0026 } 0027 0028 void DiscoveryModel::setCurrentSelection(const QList<int> &selection, const QList<int> &allImages) 0029 { 0030 ThumbnailModel::setImages(selection); 0031 m_allImages = allImages; 0032 } 0033 0034 void DiscoveryModel::setCurrentAction(DiscoverAction *action) 0035 { 0036 m_action = action; 0037 } 0038 0039 void DiscoveryModel::setCount(int count) 0040 { 0041 if (m_count != count) { 0042 m_count = count; 0043 Q_EMIT countChanged(); 0044 resetImages(); 0045 } 0046 } 0047 0048 void DiscoveryModel::resetImages() 0049 { 0050 if (m_count == 0 || m_allImages.isEmpty()) 0051 return; 0052 0053 QList<int> result = m_allImages; 0054 std::random_shuffle(result.begin(), result.end()); 0055 result = result.mid(0, m_count); 0056 result.push_front(DISCOVERYID); 0057 ThumbnailModel::setImages(result); 0058 m_action->setCurrentSelection(result, m_allImages); 0059 } 0060 0061 } // namespace RemoteControl 0062 0063 #include "moc_DiscoveryModel.cpp"