File indexing completed on 2024-05-05 04:54:18

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 &){};