File indexing completed on 2024-04-14 04:46:55

0001 /*
0002     SPDX-FileCopyrightText: 2008 Jean-Baptiste Mardelle <jb@kdenlive.org>
0003     SPDX-FileCopyrightText: 2011 Marco Gittler <marco@gitma.de>
0004 
0005 SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
0006 */
0007 
0008 #pragma once
0009 
0010 #include "definitions.h"
0011 #include "utils/timecode.h"
0012 #include "ui_clipstabilize_ui.h"
0013 #include <QUrl>
0014 #include <unordered_map>
0015 
0016 class AssetParameterModel;
0017 class AssetParameterView;
0018 
0019 class ClipStabilize : public QDialog, public Ui::ClipStabilize_UI
0020 {
0021     Q_OBJECT
0022 
0023 public:
0024     explicit ClipStabilize(const std::vector<QString> &binIds, QString filterName, QWidget *parent = nullptr);
0025     ~ClipStabilize() override;
0026     /** @brief Return the filter parameters, filter name as value of "filter" entry. */
0027     std::unordered_map<QString, QVariant> filterParams() const;
0028     /** @brief Return the destination file or folder. */
0029     QString destination() const;
0030     /** @brief Return the job description. */
0031     QString desc() const;
0032 
0033     /* Return the name of the actual mlt filter used */
0034     QString filterName() const;
0035 
0036 private:
0037     QString m_filtername;
0038     std::vector<QString> m_binIds;
0039     QVBoxLayout *m_vbox;
0040     Timecode m_tc;
0041     std::shared_ptr<AssetParameterModel> m_assetModel;
0042     std::unique_ptr<AssetParameterView> m_view;
0043 
0044 Q_SIGNALS:
0045     void addClip(const QUrl &url);
0046 };