File indexing completed on 2024-05-19 08:45:30
0001 /* 0002 SPDX-FileCopyrightText: 2017 Nicolas Carion 0003 SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0004 */ 0005 0006 #include "transitionlistwidget.hpp" 0007 #include "../model/transitiontreemodel.hpp" 0008 #include "assets/assetlist/view/asseticonprovider.hpp" 0009 #include "core.h" 0010 #include "dialogs/profilesdialog.h" 0011 #include "mainwindow.h" 0012 #include "mltconnection.h" 0013 #include "transitions/transitionlist/model/transitionfilter.hpp" 0014 #include "transitions/transitionsrepository.hpp" 0015 0016 #include <QHeaderView> 0017 #include <knewstuff_version.h> 0018 0019 TransitionListWidget::TransitionListWidget(QWidget *parent) 0020 : AssetListWidget(false, parent) 0021 { 0022 m_model = TransitionTreeModel::construct(true, this); 0023 m_proxyModel = std::make_unique<TransitionFilter>(this); 0024 m_proxyModel->setSourceModel(m_model.get()); 0025 m_proxyModel->setSortRole(AssetTreeModel::NameRole); 0026 m_proxyModel->sort(0, Qt::AscendingOrder); 0027 m_effectsTree->setModel(m_proxyModel.get()); 0028 m_effectsTree->setColumnHidden(1, true); 0029 m_effectsTree->setColumnHidden(2, true); 0030 m_effectsTree->setColumnHidden(3, true); 0031 m_effectsTree->header()->setStretchLastSection(true); 0032 QItemSelectionModel *sel = m_effectsTree->selectionModel(); 0033 connect(sel, &QItemSelectionModel::currentChanged, this, &AssetListWidget::updateAssetInfo); 0034 } 0035 0036 TransitionListWidget::~TransitionListWidget() {} 0037 0038 bool TransitionListWidget::isAudio(const QString &assetId) const 0039 { 0040 return TransitionsRepository::get()->isAudio(assetId); 0041 } 0042 0043 QString TransitionListWidget::getMimeType(const QString &assetId) const 0044 { 0045 Q_UNUSED(assetId); 0046 return QStringLiteral("kdenlive/composition"); 0047 } 0048 0049 void TransitionListWidget::setFilterType(const QString &type) 0050 { 0051 if (type == "favorites") { 0052 static_cast<TransitionFilter *>(m_proxyModel.get())->setFilterType(true, AssetListType::AssetType::Favorites); 0053 } else if (type == "transition") { 0054 static_cast<TransitionFilter *>(m_proxyModel.get())->setFilterType(true, AssetListType::AssetType::VideoTransition); 0055 } else { 0056 static_cast<TransitionFilter *>(m_proxyModel.get())->setFilterType(false, AssetListType::AssetType::Favorites); 0057 } 0058 } 0059 0060 void TransitionListWidget::refreshLumas() 0061 { 0062 MltConnection::refreshLumas(); 0063 // TODO: refresh currently displayed trans ? 0064 } 0065 0066 void TransitionListWidget::reloadCustomEffectIx(const QModelIndex &) {} 0067 0068 void TransitionListWidget::reloadCustomEffect(const QString &) {} 0069 0070 void TransitionListWidget::reloadTemplates() {} 0071 0072 void TransitionListWidget::editCustomAsset(const QModelIndex &) {} 0073 0074 void TransitionListWidget::exportCustomEffect(const QModelIndex &){};