18#ifndef MLTXMLCHECKER_H
19#define MLTXMLCHECKER_H
23#include <QStandardItemModel>
25#include <QTemporaryFile>
27#include <QVersionNumber>
28#include <QXmlStreamReader>
29#include <QXmlStreamWriter>
36 enum { ShotcutHashRole = Qt::UserRole + 1 };
38 enum { MissingColumn = 0, ReplacementColumn, ColumnCount };
41 QXmlStreamReader::Error check(
const QString &fileName);
42 QString errorString()
const;
43 bool needsGPU()
const {
return m_needsGPU; }
44 bool needsCPU()
const {
return m_needsCPU; }
45 bool hasEffects()
const {
return m_hasEffects; }
46 bool isCorrected()
const {
return m_isCorrected; }
47 bool isUpdated()
const {
return m_isUpdated; }
48 QTemporaryFile &tempFile()
const {
return *m_tempFile; }
49 QStandardItemModel &unlinkedFilesModel() {
return m_unlinkedFilesModel; }
50 QString shotcutVersion()
const {
return m_shotcutVersion; }
53 typedef QPair<QString, QString> MltProperty;
56 void processProperties();
57 void checkInAndOutPoints();
58 bool checkNumericString(QString &value);
59 bool fixWebVfxPath(QString &resource);
60 bool readResourceProperty(
const QString &name, QString &value);
61 void checkGpuEffects(
const QString &mlt_service);
62 void checkCpuEffects(
const QString &mlt_service);
63 void checkUnlinkedFile(
const QString &mlt_service);
64 bool fixUnlinkedFile(QString &value);
65 void fixStreamIndex(MltProperty &property);
66 bool fixVersion1701WindowsPathBug(QString &value);
67 void checkIncludesSelf(QVector<MltProperty> &properties);
68 void checkLumaAlphaOver(
const QString &mlt_service, QVector<MltProperty> &properties);
69 void checkAudioGain(
const QString &mlt_service, QVector<MltProperty> &properties);
70 void replaceWebVfxCropFilters(QString &mlt_service, QVector<MltProperty> &properties);
71 void replaceWebVfxChoppyFilter(QString &mlt_service, QVector<MltProperty> &properties);
72 void checkForProxy(
const QString &mlt_service, QVector<MltProperty> &properties);
73 bool checkMltVersion();
75 QXmlStreamReader m_xml;
76 QXmlStreamWriter m_newXml;
83 QScopedPointer<QTemporaryFile> m_tempFile;
84 bool m_numericValueChanged;
86 QStandardItemModel m_unlinkedFilesModel;
88 QVector<MltProperty> m_properties;
97 int audio_index, video_index;
103 info.setFile(QString());
109 audio_index = video_index = -1;
111 notProxyMeta =
false;
114 QVersionNumber m_mltVersion;
115 QString m_shotcutVersion;