UI: Add undo/redo for context bar text changes

master
gxalpha 2021-11-05 21:42:41 +01:00 committed by Jim
parent 2a0b9d851c
commit 509e44d6ea
2 changed files with 7 additions and 3 deletions

View File

@ -45,7 +45,7 @@ void SourceToolbar::SaveOldProperties(obs_source_t *source)
obs_data_release(oldSettings);
}
void SourceToolbar::SetUndoProperties(obs_source_t *source)
void SourceToolbar::SetUndoProperties(obs_source_t *source, bool repeatable)
{
if (!oldData) {
blog(LOG_ERROR, "%s: somehow oldData was null.", __FUNCTION__);
@ -87,7 +87,7 @@ void SourceToolbar::SetUndoProperties(obs_source_t *source)
main->undo_s.add_action(
QTStr("Undo.Properties")
.arg(obs_source_get_name(source)),
undo_redo, undo_redo, undo_data, redo_data);
undo_redo, undo_redo, undo_data, redo_data, repeatable);
obs_data_release(new_settings);
obs_data_release(curr_settings);
@ -737,8 +737,12 @@ void TextSourceToolbar::on_text_textChanged()
return;
}
SaveOldProperties(source);
obs_data_t *settings = obs_data_create();
obs_data_set_string(settings, "text", QT_TO_UTF8(ui->text->text()));
obs_source_update(source, settings);
obs_data_release(settings);
SetUndoProperties(source, true);
}

View File

@ -25,7 +25,7 @@ protected:
OBSData oldData;
void SaveOldProperties(obs_source_t *source);
void SetUndoProperties(obs_source_t *source);
void SetUndoProperties(obs_source_t *source, bool repeatable = false);
public:
SourceToolbar(QWidget *parent, OBSSource source);