File indexing completed on 2024-05-26 04:32:39

0001 /*
0002  *  SPDX-FileCopyrightText: 2020 Dmitrii Utkin <loentar@gmail.com>
0003  *
0004  *  SPDX-License-Identifier: LGPL-2.1-only
0005  */
0006 
0007 #ifndef RECORDER_EXPORT_H
0008 #define RECORDER_EXPORT_H
0009 
0010 #include "recorder_format.h"
0011 
0012 #include <QDialog>
0013 
0014 struct RecorderExportSettings;
0015 
0016 class RecorderExport : public QDialog
0017 {
0018     Q_OBJECT
0019 
0020 public:
0021     explicit RecorderExport(RecorderExportSettings *s, QWidget *parent = nullptr);
0022     ~RecorderExport();
0023 
0024     void setup();
0025 
0026 protected:
0027     void closeEvent(QCloseEvent *event) override;
0028 
0029 private Q_SLOTS:
0030     void reject() override;
0031 
0032     // first page
0033     void onButtonBrowseDirectoryClicked();
0034     void onSpinInputFpsValueChanged(int value);
0035     void onSpinFpsValueChanged(int value);
0036     void onCheckResultPreviewToggled(bool checked);
0037     void onFirstFrameSecValueChanged(int value);
0038     void onCheckExtendResultToggled(bool checked);
0039     void onLastFrameSecValueChanged(int value);
0040     void onCheckResizeToggled(bool checked);
0041     void onSpinScaleWidthValueChanged(int value);
0042     void onSpinScaleHeightValueChanged(int value);
0043     void onButtonLockRatioToggled(bool checked);
0044     void onButtonLockFpsToggled(bool checked);
0045     void onButtonBrowseFfmpegClicked();
0046     void onComboProfileIndexChanged(int index);
0047     void onButtonEditProfileClicked();
0048     void onEditVideoPathChanged(const QString &videoFilePath);
0049     void onButtonBrowseExportClicked();
0050     void onButtonExportClicked();
0051     // second page
0052     void onButtonCancelClicked();
0053     // ffmpeg
0054     void onFFMpegStarted();
0055     void onFFMpegFinished();
0056     void onFFMpegFinishedWithError(QString error);
0057     void onFFMpegProgressUpdated(int frameNo);
0058     // third page
0059     void onButtonWatchItClicked();
0060     void onButtonShowInFolderClicked();
0061     void onButtonRemoveSnapshotsClicked();
0062     void onButtonRestartClicked();
0063     void onCleanUpFinished();
0064 
0065 private:
0066      bool eventFilter(QObject *obj, QEvent *event) override;
0067 
0068 private:
0069     Q_DISABLE_COPY(RecorderExport)
0070     class Private;
0071     RecorderExportSettings *settings;
0072     QScopedPointer<Private> d;
0073 };
0074 
0075 #endif // RECORDER_EXPORT_H