From 3ce12bc5e97bfaa842bd6dbaceddbf4e93af67ad Mon Sep 17 00:00:00 2001 From: Richard Stanway Date: Wed, 19 Jan 2022 00:59:54 +0100 Subject: [PATCH] UI: Optimize undo/redo functions with constant references --- UI/undo-stack-obs.cpp | 11 ++++++----- UI/undo-stack-obs.hpp | 6 +++--- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/UI/undo-stack-obs.cpp b/UI/undo-stack-obs.cpp index 1b0d7cc0f..979ea1765 100644 --- a/UI/undo-stack-obs.cpp +++ b/UI/undo-stack-obs.cpp @@ -30,9 +30,10 @@ void undo_stack::clear() ui->actionMainRedo->setDisabled(true); } -void undo_stack::add_action(const QString &name, undo_redo_cb undo, - undo_redo_cb redo, std::string undo_data, - std::string redo_data, bool repeatable) +void undo_stack::add_action(const QString &name, const undo_redo_cb &undo, + const undo_redo_cb &redo, + const std::string &undo_data, + const std::string &redo_data, bool repeatable) { if (!is_enabled()) return; @@ -42,8 +43,6 @@ void undo_stack::add_action(const QString &name, undo_redo_cb undo, undo_items.pop_back(); } - undo_redo_t n = {name, undo_data, redo_data, undo, redo}; - if (repeatable) { repeat_reset_timer.start(); } @@ -54,6 +53,8 @@ void undo_stack::add_action(const QString &name, undo_redo_cb undo, return; } + undo_redo_t n = {name, undo_data, redo_data, undo, redo}; + last_is_repeatable = repeatable; undo_items.push_front(n); clear_redo(); diff --git a/UI/undo-stack-obs.hpp b/UI/undo-stack-obs.hpp index e8e4992d5..67067132e 100644 --- a/UI/undo-stack-obs.hpp +++ b/UI/undo-stack-obs.hpp @@ -53,9 +53,9 @@ public: void pop_disabled(); void clear(); - void add_action(const QString &name, undo_redo_cb undo, - undo_redo_cb redo, std::string undo_data, - std::string redo_data, bool repeatable = false); + void add_action(const QString &name, const undo_redo_cb &undo, + const undo_redo_cb &redo, const std::string &undo_data, + const std::string &redo_data, bool repeatable = false); void undo(); void redo(); };