File indexing completed on 2024-06-23 04:26:31

0001 /*
0002  *  SPDX-FileCopyrightText: 2019 Shi Yan <billconan@gmail.net>
0003  *  SPDX-FileCopyrightText: 2020 Dmitrii Utkin <loentar@gmail.com>
0004  *
0005  *  SPDX-License-Identifier: LGPL-2.0-or-later
0006  */
0007 
0008 #ifndef _RECORDER_DOCK_H_
0009 #define _RECORDER_DOCK_H_
0010 
0011 #include <QScroller>
0012 #include <QDockWidget>
0013 #include <KoCanvasObserverBase.h>
0014 
0015 
0016 class KisMainWindow;
0017 struct RecorderExportSettings;
0018 
0019 class RecorderDockerDock : public QDockWidget, public KoCanvasObserverBase
0020 {
0021     Q_OBJECT
0022 public:
0023     RecorderDockerDock();
0024     ~RecorderDockerDock();
0025     QString observerName() override
0026     {
0027         return "RecorderDockerDock";
0028     }
0029     void setCanvas(KoCanvasBase *canvas) override;
0030     void unsetCanvas() override;
0031 
0032 private Q_SLOTS:
0033     void onMainWindowIsBeingCreated(KisMainWindow *window);
0034 
0035     void onRecordIsolateLayerModeToggled(bool checked);
0036     void onAutoRecordToggled(bool checked);
0037     void onRealTimeCaptureModeToggled(bool checked);
0038     void onCaptureIntervalChanged(double interval);
0039     void onVideoFPSChanged(double interval);
0040     void onQualityChanged(int value);
0041     void onFormatChanged(int format);
0042     void onResolutionChanged(int resolution);
0043     void onThreadsChanged(int threads);
0044     void onManageRecordingsButtonClicked();
0045     void onSelectRecordFolderButtonClicked();
0046     void onRecordButtonToggled(bool checked);
0047     void onExportButtonClicked();
0048 
0049     void onWriterStarted();
0050     void onWriterStopped();
0051     void onUpdateRecIndicator();
0052     void onActiveRecording(bool valueWasIncreased);
0053     void onPausedTimeout();
0054     void onWriterFrameWriteFailed();
0055     void onRecorderStopWarning();
0056     void onLowPerformanceWarning();
0057     void onWarningTimeout();
0058 
0059     void slotScrollerStateChanged(QScroller::State state);
0060 
0061 private:
0062     Q_DISABLE_COPY(RecorderDockerDock)
0063     class Private;
0064     RecorderExportSettings *const exportSettings;
0065     Private *const d;
0066 };
0067 
0068 #endif