Merge pull request #3426 from Programatic/undo_redo

UI: Implement Undo/Redo System
This commit is contained in:
Jim 2021-03-30 03:16:24 -07:00 • committed by GitHub
commit 5d87f3c00b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
31 changed files with 2061 additions and 61 deletions

View file

@ -36,6 +36,7 @@
#include "window-basic-about.hpp"
#include "auth-base.hpp"
#include "log-viewer.hpp"
#include "undo-stack-obs.hpp"
#include <obs-frontend-internal.hpp>
@ -156,6 +157,7 @@ class OBSBasic : public OBSMainWindow {
friend class OBSBasicPreview;
friend class OBSBasicStatusBar;
friend class OBSBasicSourceSelect;
friend class OBSBasicTransform;
friend class OBSBasicSettings;
friend class Auth;
friend class AutoConfig;
@ -166,6 +168,7 @@ class OBSBasic : public OBSMainWindow {
friend class ExtraBrowsersDelegate;
friend class DeviceCaptureToolbar;
friend class DeviceToolbarPropertiesThread;
friend class OBSBasicSourceSelect;
friend struct BasicOutputHandler;
friend struct OBSStudioAPI;
@ -220,6 +223,9 @@ private:
QPointer<QTimer> cpuUsageTimer;
QPointer<QTimer> diskFullTimer;
QPointer<QTimer> nudge_timer;
bool recent_nudge = false;
os_cpu_usage_info_t *cpuUsageInfo = nullptr;
OBSService service;
@ -308,6 +314,7 @@ private:
void UploadLog(const char *subdir, const char *file, const bool crash);
void Save(const char *file);
void LoadData(obs_data_t *data, const char *file);
void Load(const char *file);
void InitHotkeys();
@ -609,6 +616,10 @@ public slots:
void UnpauseRecording();
private slots:
void on_actionMainUndo_triggered();
void on_actionMainRedo_triggered();
void AddSceneItem(OBSSceneItem item);
void AddScene(OBSSource source);
void RemoveScene(OBSSource source);
@ -741,6 +752,7 @@ private:
OBSSource prevFTBSource = nullptr;
public:
undo_stack undo_s;
OBSSource GetProgramSource();
OBSScene GetCurrentScene();