File indexing completed on 2024-04-21 08:41:16

0001 /*
0002     SPDX-FileCopyrightText: 2008 Jean-Baptiste Mardelle <jb@kdenlive.org>
0003     SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
0004 */
0005 
0006 #pragma once
0007 
0008 #include <QVBoxLayout>
0009 #include <QWizard>
0010 #include <QWizardPage>
0011 
0012 class KMessageWidget;
0013 class QTemporaryFile;
0014 
0015 class MyWizardPage : public QWizardPage
0016 {
0017 public:
0018     explicit MyWizardPage(QWidget *parent = nullptr);
0019     void setComplete(bool complete);
0020     bool isComplete() const override;
0021     bool m_isComplete{false};
0022 };
0023 
0024 class Wizard : public QWizard
0025 {
0026     Q_OBJECT
0027 public:
0028     explicit Wizard(bool autoClose, QWidget *parent = nullptr);
0029     void installExtraMimes(const QString &baseName, const QStringList &globs);
0030     void runUpdateMimeDatabase();
0031     void adjustSettings();
0032     bool isOk() const;
0033     bool checkHwEncoder(const QString &name, const QStringList &args, const QTemporaryFile &file);
0034     void testHwEncoders();
0035     static const QString fixKdenliveRenderPath();
0036     static void slotCheckPrograms(QString &infos, QString &warnings, QString &errors);
0037     static QStringList codecs();
0038     static const QString getHWCodecFriendlyName();
0039 
0040 private:
0041     QVBoxLayout *m_startLayout;
0042     MyWizardPage *m_page;
0043     KMessageWidget *m_errorWidget;
0044     bool m_systemCheckIsOk;
0045     bool m_brokenModule;
0046     QString m_errors;
0047     QString m_warnings;
0048     QString m_infos;
0049     void checkMltComponents();
0050     void checkMissingCodecs();
0051     void updateHwStatus();
0052 
0053 private Q_SLOTS:
0054     void slotCheckMlt();
0055     void slotOpenManual();
0056 };