Fixed textbox and screenshot tool issues related to new tool system
This commit is contained in:
parent
c2301ae9f5
commit
c8d8a349aa
4 changed files with 16 additions and 10 deletions
|
|
@ -309,6 +309,11 @@ void DrawingProgram::update() {
|
|||
compCache.test_rebuild(components.client_list());
|
||||
}
|
||||
|
||||
void DrawingProgram::switch_to_tool_ptr(std::unique_ptr<DrawingProgramToolBase> newTool) {
|
||||
drawTool->switch_tool(newTool->get_type());
|
||||
drawTool = std::move(newTool);
|
||||
}
|
||||
|
||||
void DrawingProgram::switch_to_tool(DrawingProgramToolType newToolType) {
|
||||
if(newToolType != drawTool->get_type()) {
|
||||
drawTool->switch_tool(drawTool->get_type());
|
||||
|
|
|
|||
|
|
@ -52,6 +52,7 @@ class DrawingProgram {
|
|||
Vector4f* get_foreground_color_ptr();
|
||||
|
||||
void switch_to_tool(DrawingProgramToolType newToolType);
|
||||
void switch_to_tool_ptr(std::unique_ptr<DrawingProgramToolBase> newTool);
|
||||
private:
|
||||
void client_erase_set(std::unordered_set<CollabListType::ObjectInfoPtr> erasedComponents); // The set might be modified while this is being called, so dont pass by reference
|
||||
|
||||
|
|
|
|||
|
|
@ -79,10 +79,11 @@ void ScreenshotTool::gui_toolbox() {
|
|||
t.open_file_selector("Export", {setExtensionFilter}, [setExtensionFilter, w = make_weak_ptr(drawP.world.main.world)](const std::filesystem::path& p, const auto& e) {
|
||||
auto world = w.lock();
|
||||
// NOTE: CHANGE THIS
|
||||
//if(world) {
|
||||
// world->drawProg.screenshotTool.controls.screenshotSavePath = force_extension_on_path(p, setExtensionFilter.extensions);
|
||||
// world->drawProg.screenshotTool.controls.setToTakeScreenshot = true;
|
||||
//}
|
||||
if(world && world->drawProg.drawTool->get_type() == DrawingProgramToolType::SCREENSHOT) {
|
||||
ScreenshotTool* screenshotTool = static_cast<ScreenshotTool*>(world->drawProg.drawTool.get());
|
||||
screenshotTool->controls.screenshotSavePath = force_extension_on_path(p, setExtensionFilter.extensions);
|
||||
screenshotTool->controls.setToTakeScreenshot = true;
|
||||
}
|
||||
}, "screenshot", true);
|
||||
#endif
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@
|
|||
#include "../CollabTextBox/CollabTextBox.hpp"
|
||||
#include <cereal/types/vector.hpp>
|
||||
#include <memory>
|
||||
#include "EditTool.hpp"
|
||||
|
||||
TextBoxTool::TextBoxTool(DrawingProgram& initDrawP):
|
||||
DrawingProgramToolBase(initDrawP)
|
||||
|
|
@ -62,12 +63,10 @@ void TextBoxTool::tool_update() {
|
|||
controls.intermediateItem->d.p2 = cwise_vec_max(controls.endAt, controls.startAt);
|
||||
controls.intermediateItem->lastUpdateTime = std::chrono::steady_clock::now();
|
||||
if(!drawP.controls.leftClickHeld) {
|
||||
auto i = controls.intermediateItem;
|
||||
commit();
|
||||
// NOTE: CHANGE THIS
|
||||
//drawP.controls.selectedTool = DrawingProgram::TOOL_EDIT;
|
||||
//drawP.controls.previousSelected = DrawingProgram::TOOL_EDIT;
|
||||
//drawP.editTool.edit_start(i);
|
||||
auto editTool = std::make_unique<EditTool>(drawP);
|
||||
editTool->edit_start(controls.intermediateItem);
|
||||
drawP.switch_to_tool_ptr(std::move(editTool));
|
||||
return;
|
||||
}
|
||||
else {
|
||||
controls.intermediateItem->client_send_update(drawP);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue