Krita Source Code Documentation
Loading...
Searching...
No Matches
KisDlgAnimationRenderer.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2016 Boudewijn Rempt <boud@valdyas.org>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6#ifndef DLG_ANIMATIONRENDERERIMAGE
7#define DLG_ANIMATIONRENDERERIMAGE
8
9#include <KoDialog.h>
11
12#include "ui_wdg_animationrenderer.h"
13
14#include <kis_types.h>
15
16
17#include "kritaui_export.h"
18
19class KisDocument;
21class KisConfigWidget;
22class QHBoxLayout;
25
26class WdgAnimationRenderer : public QWidget, public Ui::WdgAnimationRenderer
27{
28 Q_OBJECT
29
30public:
31 WdgAnimationRenderer(QWidget *parent)
32 : QWidget(parent)
33 {
34 setupUi(this);
35 }
36};
37
38class KRITAUI_EXPORT KisDlgAnimationRenderer: public KoDialog
39{
40
41 Q_OBJECT
42
43public:
44
45 KisDlgAnimationRenderer(KisDocument *doc, QWidget *parent = 0);
46 ~KisDlgAnimationRenderer() override;
47
48 KisAnimationRenderingOptions getEncoderOptions() const;
49
50private Q_SLOTS:
51 void selectRenderType(int i);
52 void selectRenderOptions();
57 void sequenceMimeTypeOptionsClicked();
58
59 void slotLockAspectRatioDimensionsWidth(int width);
60 void slotLockAspectRatioDimensionsHeight(int height);
61
62 void slotExportTypeChanged();
63 void setFFmpegPath(const QString& path);
64
65 void frameRateChanged(int framerate);
66
67protected Q_SLOTS:
68
69 void slotButtonClicked(int button) override;
70 void slotDialogAccepted();
71
72
73private:
75 VALID = 1,
77 NOT_A_BINARY = -1,
78 COMPRESSED_FORMAT = -2
79 };
80
81 void initializeRenderSettings(const KisDocument &doc, const KisAnimationRenderingOptions &lastUsedOptions);
82 void ffmpegWarningCheck();
83 FFmpegValidationResult validateFFmpeg(const QString &ffmpegPath);
84
85 static QString defaultVideoFileName(KisDocument *doc, const QString &mimeType);
86
87 static void getDefaultVideoEncoderOptions(const QString &mimeType,
89 const QStringList &availableEncoders,
90 QString *customFFMpegOptionsString,
91 bool *forceHDRVideo);
92
93 static void filterSequenceMimeTypes(QStringList &mimeTypes);
94 static QStringList makeVideoMimeTypesList();
95 QStringList filterMimeTypeListByAvailableEncoders(const QStringList &mimeTypes);
96 static bool imageMimeSupportsHDR(QString &hdr);
97
98 static KisPropertiesConfigurationSP loadLastConfiguration(QString configurationID);
99 static void saveLastUsedConfiguration(QString configurationID, KisPropertiesConfigurationSP config);
100
101private:
104
106 QString ffmpegVersion = "None";
107
108 QStringList ffmpegCodecs = QStringList(); // List of all supported output formats.
109 QMap<QString, QStringList> ffmpegEncoderTypes; // Maps supported output format to available list of encoder(s)
110
111 bool m_wantsRenderWithHDR = false;
112
114};
115
116#endif // DLG_ANIMATIONRENDERERIMAGE
QList< QString > QStringList
QMap< QString, QStringList > ffmpegEncoderTypes
The base class for import and export filters.
A dialog base class with standard buttons and predefined layouts.
Definition KoDialog.h:116
virtual void slotButtonClicked(int button)
Definition KoDialog.cpp:820
WdgAnimationRenderer(QWidget *parent)
@ INVALID
Definition kis_brush.h:31
QString button(const QWheelEvent &ev)