UI: Add undo/redo for context bar text changes
parent
2a0b9d851c
commit
509e44d6ea
|
@ -45,7 +45,7 @@ void SourceToolbar::SaveOldProperties(obs_source_t *source)
|
||||||
obs_data_release(oldSettings);
|
obs_data_release(oldSettings);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SourceToolbar::SetUndoProperties(obs_source_t *source)
|
void SourceToolbar::SetUndoProperties(obs_source_t *source, bool repeatable)
|
||||||
{
|
{
|
||||||
if (!oldData) {
|
if (!oldData) {
|
||||||
blog(LOG_ERROR, "%s: somehow oldData was null.", __FUNCTION__);
|
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(
|
main->undo_s.add_action(
|
||||||
QTStr("Undo.Properties")
|
QTStr("Undo.Properties")
|
||||||
.arg(obs_source_get_name(source)),
|
.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(new_settings);
|
||||||
obs_data_release(curr_settings);
|
obs_data_release(curr_settings);
|
||||||
|
@ -737,8 +737,12 @@ void TextSourceToolbar::on_text_textChanged()
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SaveOldProperties(source);
|
||||||
|
|
||||||
obs_data_t *settings = obs_data_create();
|
obs_data_t *settings = obs_data_create();
|
||||||
obs_data_set_string(settings, "text", QT_TO_UTF8(ui->text->text()));
|
obs_data_set_string(settings, "text", QT_TO_UTF8(ui->text->text()));
|
||||||
obs_source_update(source, settings);
|
obs_source_update(source, settings);
|
||||||
obs_data_release(settings);
|
obs_data_release(settings);
|
||||||
|
|
||||||
|
SetUndoProperties(source, true);
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,7 +25,7 @@ protected:
|
||||||
OBSData oldData;
|
OBSData oldData;
|
||||||
|
|
||||||
void SaveOldProperties(obs_source_t *source);
|
void SaveOldProperties(obs_source_t *source);
|
||||||
void SetUndoProperties(obs_source_t *source);
|
void SetUndoProperties(obs_source_t *source, bool repeatable = false);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
SourceToolbar(QWidget *parent, OBSSource source);
|
SourceToolbar(QWidget *parent, OBSSource source);
|
||||||
|
|
Loading…
Reference in New Issue