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 }