Action manager for undo of context menu actions

This commit is contained in:
brunoherbelin
2021-03-15 22:55:22 +01:00
parent ecba54196f
commit ce38bf72b8
3 changed files with 14 additions and 6 deletions

View File

@@ -274,7 +274,7 @@ void GeometryView::draw()
s->group(mode_)->rotation_.z = 0;
s->group(mode_)->translation_ = glm::vec3(0.f);
s->touch();
Action::manager().store(std::string("Source Fit."), s->id());
Action::manager().store(s->name() + std::string("Source Fit."), s->id());
}
if (ImGui::Selectable( ICON_FA_VECTOR_SQUARE " Reset" )){
s->group(mode_)->scale_ = glm::vec3(1.f);
@@ -282,23 +282,23 @@ void GeometryView::draw()
s->group(mode_)->crop_ = glm::vec3(1.f);
s->group(mode_)->translation_ = glm::vec3(0.f);
s->touch();
Action::manager().store(std::string("Source Reset."), s->id());
Action::manager().store(s->name() + std::string("Source Reset."), s->id());
}
if (ImGui::Selectable( ICON_FA_CROSSHAIRS " Reset position" )){
s->group(mode_)->translation_ = glm::vec3(0.f);
s->touch();
Action::manager().store(std::string("Source Reset position."), s->id());
Action::manager().store(s->name() + std::string("Source Reset position."), s->id());
}
if (ImGui::Selectable( ICON_FA_COMPASS " Reset rotation" )){
s->group(mode_)->rotation_.z = 0;
s->touch();
Action::manager().store(std::string("Source Reset rotation."), s->id());
Action::manager().store(s->name() + std::string("Source Reset rotation."), s->id());
}
if (ImGui::Selectable( ICON_FA_EXPAND_ALT " Reset aspect ratio" )){
s->group(mode_)->scale_.x = s->group(mode_)->scale_.y;
s->group(mode_)->scale_.x *= s->group(mode_)->crop_.x / s->group(mode_)->crop_.y;
s->touch();
Action::manager().store(std::string("Source aspect ratio."), s->id());
Action::manager().store(s->name() + std::string("Source Reset aspect ratio."), s->id());
}
}
ImGui::EndPopup();

View File

@@ -17,6 +17,7 @@
#include "Decorations.h"
#include "UserInterfaceManager.h"
#include "BoundingBoxVisitor.h"
#include "ActionManager.h"
#include "Log.h"
#include "LayerView.h"
@@ -100,7 +101,7 @@ void LayerView::draw()
if (candidate_flatten_group){
if (ImGui::Selectable( ICON_FA_DOWNLOAD " Flatten" )) {
Mixer::manager().groupSelection();
// Action::manager().store(std::string("Selection Flatten."), Mixer::selection().front()->id());
}
}
else {
@@ -118,6 +119,7 @@ void LayerView::draw()
depth += depth_inc;
(*it)->setDepth(depth);
}
Action::manager().store(std::string("Selection Distribute."), dsl.front()->id());
View::need_deep_update_++;
}
if (ImGui::Selectable( ICON_FA_RULER_HORIZONTAL " Space equally" )){
@@ -128,6 +130,7 @@ void LayerView::draw()
depth += 2.f * LAYER_STEP;
(*it)->setDepth(depth);
}
Action::manager().store(std::string("Selection Space equally."), dsl.front()->id());
View::need_deep_update_++;
}
if (ImGui::Selectable( ICON_FA_EXCHANGE_ALT " Reverse order" )){
@@ -137,6 +140,7 @@ void LayerView::draw()
for (; it != dsl.end(); it++, rit++) {
(*it)->setDepth((*rit)->depth());
}
Action::manager().store(std::string("Selection Reverse order."), dsl.front()->id());
View::need_deep_update_++;
}

View File

@@ -833,19 +833,23 @@ void TextureView::draw()
s->group(mode_)->crop_ = glm::vec3(1.f);
s->group(mode_)->translation_ = glm::vec3(0.f);
s->touch();
Action::manager().store(s->name() + std::string(": Texture Reset."), s->id());
}
if (ImGui::Selectable( ICON_FA_CROSSHAIRS " Reset position" )){
s->group(mode_)->translation_ = glm::vec3(0.f);
s->touch();
Action::manager().store(s->name() + std::string(": Texture Reset position."), s->id());
}
if (ImGui::Selectable( ICON_FA_COMPASS " Reset rotation" )){
s->group(mode_)->rotation_.z = 0;
s->touch();
Action::manager().store(s->name() + std::string(": Texture Reset rotation."), s->id());
}
if (ImGui::Selectable( ICON_FA_EXPAND_ALT " Reset aspect ratio" )){
s->group(mode_)->scale_.x = s->group(mode_)->scale_.y;
s->group(mode_)->scale_.x *= s->group(mode_)->crop_.x / s->group(mode_)->crop_.y;
s->touch();
Action::manager().store(s->name() + std::string(": Texture Reset aspect ratio."), s->id());
}
}
ImGui::PopStyleColor(2);