File indexing completed on 2024-05-12 04:54:25
0001 /* 0002 SPDX-FileCopyrightText: 2017 Nicolas Carion 0003 SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0004 */ 0005 0006 #include "transitionfilter.hpp" 0007 #include "abstractmodel/treeitem.hpp" 0008 #include "assets/assetlist/model/assettreemodel.hpp" 0009 0010 TransitionFilter::TransitionFilter(QObject *parent) 0011 : AssetFilter(parent) 0012 { 0013 m_type_enabled = false; 0014 } 0015 0016 void TransitionFilter::setFilterType(bool enabled, AssetListType::AssetType type) 0017 { 0018 m_type_enabled = enabled; 0019 m_type_value = type; 0020 invalidateFilter(); 0021 } 0022 0023 void TransitionFilter::reloadFilterOnFavorite() 0024 { 0025 if (m_type_enabled && m_type_value == AssetListType::AssetType::Favorites) { 0026 invalidateFilter(); 0027 } 0028 } 0029 0030 bool TransitionFilter::filterType(const std::shared_ptr<TreeItem> &item) const 0031 { 0032 auto itemType = item->dataColumn(AssetTreeModel::TypeCol).value<AssetListType::AssetType>(); 0033 if (itemType == AssetListType::AssetType::Hidden) { 0034 return false; 0035 } 0036 if (!m_type_enabled) { 0037 return true; 0038 } 0039 if (m_type_value == AssetListType::AssetType::Favorites) { 0040 return item->dataColumn(AssetTreeModel::FavCol).toBool(); 0041 } 0042 if (m_type_value == AssetListType::AssetType::VideoTransition) { 0043 return itemType == m_type_value || itemType == AssetListType::AssetType::AudioTransition; 0044 } 0045 return itemType == m_type_value; 0046 } 0047 0048 bool TransitionFilter::applyAll(std::shared_ptr<TreeItem> item) const 0049 { 0050 return filterName(item) && filterType(item); 0051 }