Mercurial > hg > orthanc-stone
changeset 2361:521fbb596148 refactoring
cont
| author | Sebastien Jodogne <s.jodogne@gmail.com> |
|---|---|
| date | Thu, 08 Oct 2026 11:51:01 +0200 |
| parents | 1fb8828effa1 |
| children | fd6db8542d10 |
| files | OrthancStone/Sources/Scene2DViewport/EditAngleMeasureCommand.cpp OrthancStone/Sources/Scene2DViewport/EditAngleMeasureCommand.h OrthancStone/Sources/Scene2DViewport/EditLineMeasureCommand.cpp OrthancStone/Sources/Scene2DViewport/EditLineMeasureCommand.h OrthancStone/Sources/Scene2DViewport/MeasureCommands.cpp OrthancStone/Sources/Scene2DViewport/MeasureCommands.h |
| diffstat | 6 files changed, 52 insertions(+), 69 deletions(-) [+] |
line wrap: on
line diff
--- a/OrthancStone/Sources/Scene2DViewport/EditAngleMeasureCommand.cpp Thu Oct 08 11:11:36 2026 +0200 +++ b/OrthancStone/Sources/Scene2DViewport/EditAngleMeasureCommand.cpp Thu Oct 08 11:51:01 2026 +0200 @@ -24,31 +24,29 @@ namespace OrthancStone { - EditAngleMeasureCommand::EditAngleMeasureCommand( - boost::shared_ptr<MeasureTool> measureTool, - boost::weak_ptr<IViewport> viewport) - : EditMeasureCommand(measureTool, viewport) - , measureTool_(measureTool) + EditAngleMeasureCommand::EditAngleMeasureCommand(const boost::shared_ptr<MeasureTool>& measureTool, + boost::weak_ptr<IViewport> viewport) : + EditMeasureCommand(measureTool, viewport) { } void EditAngleMeasureCommand::SetCenter(ScenePoint2D scenePos) { - dynamic_cast<AngleMeasureTool&>(*measureTool_).SetCenter(scenePos); - SetMementoModified(measureTool_->CreateMemento()); + dynamic_cast<AngleMeasureTool&>(GetMeasureTool()).SetCenter(scenePos); + SetMementoModified(GetMeasureTool().CreateMemento()); } void EditAngleMeasureCommand::SetSide1End(ScenePoint2D scenePos) { - dynamic_cast<AngleMeasureTool&>(*measureTool_).SetSide1End(scenePos); - SetMementoModified(measureTool_->CreateMemento()); + dynamic_cast<AngleMeasureTool&>(GetMeasureTool()).SetSide1End(scenePos); + SetMementoModified(GetMeasureTool().CreateMemento()); } void EditAngleMeasureCommand::SetSide2End(ScenePoint2D scenePos) { - dynamic_cast<AngleMeasureTool&>(*measureTool_).SetSide2End(scenePos); - SetMementoModified(measureTool_->CreateMemento()); + dynamic_cast<AngleMeasureTool&>(GetMeasureTool()).SetSide2End(scenePos); + SetMementoModified(GetMeasureTool().CreateMemento()); } }
--- a/OrthancStone/Sources/Scene2DViewport/EditAngleMeasureCommand.h Thu Oct 08 11:11:36 2026 +0200 +++ b/OrthancStone/Sources/Scene2DViewport/EditAngleMeasureCommand.h Thu Oct 08 11:51:01 2026 +0200 @@ -29,9 +29,8 @@ { public: /** Ctor sets end of side 1*/ - EditAngleMeasureCommand( - boost::shared_ptr<MeasureTool> measureTool, - boost::weak_ptr<IViewport> viewport); + EditAngleMeasureCommand(const boost::shared_ptr<MeasureTool>& measureTool, + boost::weak_ptr<IViewport> viewport); /** This method sets center*/ void SetCenter(ScenePoint2D scenePos); @@ -41,12 +40,5 @@ /** This method sets end of side 2*/ void SetSide2End(ScenePoint2D scenePos); - - private: - virtual boost::shared_ptr<MeasureTool> GetMeasureTool() ORTHANC_OVERRIDE - { - return measureTool_; - } - boost::shared_ptr<MeasureTool> measureTool_; }; }
--- a/OrthancStone/Sources/Scene2DViewport/EditLineMeasureCommand.cpp Thu Oct 08 11:11:36 2026 +0200 +++ b/OrthancStone/Sources/Scene2DViewport/EditLineMeasureCommand.cpp Thu Oct 08 11:51:01 2026 +0200 @@ -24,25 +24,23 @@ namespace OrthancStone { - EditLineMeasureCommand::EditLineMeasureCommand( - boost::shared_ptr<MeasureTool> measureTool, - boost::weak_ptr<IViewport> viewport) - : EditMeasureCommand(measureTool, viewport) - , measureTool_(measureTool) + EditLineMeasureCommand::EditLineMeasureCommand(const boost::shared_ptr<MeasureTool>& measureTool, + boost::weak_ptr<IViewport> viewport) : + EditMeasureCommand(measureTool, viewport) { } void EditLineMeasureCommand::SetStart(ScenePoint2D scenePos) { - dynamic_cast<LineMeasureTool&>(*measureTool_).SetStart(scenePos); - SetMementoModified(measureTool_->CreateMemento()); + dynamic_cast<LineMeasureTool&>(GetMeasureTool()).SetStart(scenePos); + SetMementoModified(GetMeasureTool().CreateMemento()); } void EditLineMeasureCommand::SetEnd(ScenePoint2D scenePos) { - dynamic_cast<LineMeasureTool&>(*measureTool_).SetEnd(scenePos); - SetMementoModified(measureTool_->CreateMemento()); + dynamic_cast<LineMeasureTool&>(GetMeasureTool()).SetEnd(scenePos); + SetMementoModified(GetMeasureTool().CreateMemento()); } }
--- a/OrthancStone/Sources/Scene2DViewport/EditLineMeasureCommand.h Thu Oct 08 11:11:36 2026 +0200 +++ b/OrthancStone/Sources/Scene2DViewport/EditLineMeasureCommand.h Thu Oct 08 11:51:01 2026 +0200 @@ -28,18 +28,10 @@ class EditLineMeasureCommand : public EditMeasureCommand { public: - EditLineMeasureCommand( - boost::shared_ptr<MeasureTool> measureTool, - boost::weak_ptr<IViewport> viewport); + EditLineMeasureCommand(const boost::shared_ptr<MeasureTool>& measureTool, + boost::weak_ptr<IViewport> viewport); void SetStart(ScenePoint2D scenePos); void SetEnd(ScenePoint2D scenePos); - - private: - virtual boost::shared_ptr<MeasureTool> GetMeasureTool() ORTHANC_OVERRIDE - { - return measureTool_; - } - boost::shared_ptr<MeasureTool> measureTool_; }; }
--- a/OrthancStone/Sources/Scene2DViewport/MeasureCommands.cpp Thu Oct 08 11:11:36 2026 +0200 +++ b/OrthancStone/Sources/Scene2DViewport/MeasureCommands.cpp Thu Oct 08 11:51:01 2026 +0200 @@ -70,15 +70,15 @@ { std::unique_ptr<IViewport::ILock> lock(GetViewportLock()); // simply disable the measure tool upon undo - GetMeasureTool()->Disable(); - lock->GetController().RemoveMeasureTool(GetMeasureTool()); + measureTool_->Disable(); + lock->GetController().RemoveMeasureTool(measureTool_); } void DeleteMeasureCommand::Undo() { std::unique_ptr<IViewport::ILock> lock(GetViewportLock()); - GetMeasureTool()->Enable(); - lock->GetController().AddMeasureTool(GetMeasureTool()); + measureTool_->Enable(); + lock->GetController().AddMeasureTool(measureTool_); } DeleteMeasureCommand::~DeleteMeasureCommand() @@ -87,41 +87,49 @@ // we thus leave it as is } - DeleteMeasureCommand::DeleteMeasureCommand(boost::shared_ptr<MeasureTool> measureTool, + DeleteMeasureCommand::DeleteMeasureCommand(const boost::shared_ptr<MeasureTool>& measureTool, boost::weak_ptr<IViewport> viewport) : MeasureCommand(viewport), measureTool_(measureTool), mementoModified_(measureTool->CreateMemento()), mementoOriginal_(measureTool->CreateMemento()) { - std::unique_ptr<IViewport::ILock> lock(GetViewportLock()); - measureTool_->Disable(); - lock->GetController().RemoveMeasureTool(measureTool_); + if (!measureTool) + { + throw Orthanc::OrthancException(Orthanc::ErrorCode_NullPointer); + } + + { + std::unique_ptr<IViewport::ILock> lock(GetViewportLock()); + measureTool_->Disable(); + lock->GetController().RemoveMeasureTool(measureTool_); + } } - EditMeasureCommand::EditMeasureCommand(boost::shared_ptr<MeasureTool> measureTool, + EditMeasureCommand::EditMeasureCommand(const boost::shared_ptr<MeasureTool>& measureTool, boost::weak_ptr<IViewport> viewport) : MeasureCommand(viewport), + measureTool_(measureTool), mementoModified_(measureTool->CreateMemento()), mementoOriginal_(measureTool->CreateMemento()) { - } - - EditMeasureCommand::~EditMeasureCommand() - { + if (!measureTool) + { + throw Orthanc::OrthancException(Orthanc::ErrorCode_NullPointer); + } } void EditMeasureCommand::Undo() { // simply disable the measure tool upon undo assert(mementoOriginal_.get() != NULL); - GetMeasureTool()->SetMemento(*mementoOriginal_); + GetMeasureTool().SetMemento(*mementoOriginal_); } void EditMeasureCommand::Redo() { assert(mementoModified_.get() != NULL); - GetMeasureTool()->SetMemento(*mementoModified_); + GetMeasureTool().SetMemento(*mementoModified_); } const MeasureTool::IMemento& EditMeasureCommand::GetMementoOriginal() const
--- a/OrthancStone/Sources/Scene2DViewport/MeasureCommands.h Thu Oct 08 11:11:36 2026 +0200 +++ b/OrthancStone/Sources/Scene2DViewport/MeasureCommands.h Thu Oct 08 11:51:01 2026 +0200 @@ -81,8 +81,7 @@ class EditMeasureCommand : public MeasureCommand { private: - /** Must be implemented by the subclasses that edit the actual tool */ - virtual boost::shared_ptr<MeasureTool> GetMeasureTool() = 0; + boost::shared_ptr<MeasureTool> measureTool_; /** This memento is updated by the subclasses upon modifications */ std::unique_ptr<MeasureTool::IMemento> mementoModified_; @@ -91,14 +90,17 @@ std::unique_ptr<MeasureTool::IMemento> mementoOriginal_; protected: + MeasureTool& GetMeasureTool() const + { + return *measureTool_; + } + void SetMementoModified(MeasureTool::IMemento* memento); // takes ownership public: - EditMeasureCommand(boost::shared_ptr<MeasureTool> measureTool, + EditMeasureCommand(const boost::shared_ptr<MeasureTool>& measureTool, boost::weak_ptr<IViewport> viewport); - virtual ~EditMeasureCommand(); - virtual void Undo() ORTHANC_OVERRIDE; virtual void Redo() ORTHANC_OVERRIDE; @@ -106,16 +108,10 @@ const MeasureTool::IMemento& GetMementoOriginal() const; }; - + class DeleteMeasureCommand : public MeasureCommand { private: - /** Must be implemented by the subclasses that edit the actual tool */ - virtual boost::shared_ptr<MeasureTool> GetMeasureTool() - { - return measureTool_; - } - boost::shared_ptr<MeasureTool> measureTool_; /** This memento is updated by the subclasses upon modifications */ @@ -128,7 +124,7 @@ void SetMementoModified(MeasureTool::IMemento* memento); // takes ownership public: - DeleteMeasureCommand(boost::shared_ptr<MeasureTool> measureTool, + DeleteMeasureCommand(const boost::shared_ptr<MeasureTool>& measureTool, boost::weak_ptr<IViewport> viewport); virtual ~DeleteMeasureCommand(); @@ -140,4 +136,3 @@ const MeasureTool::IMemento& GetMementoOriginal() const; }; } -
