From 0af3b281067878ef75cf83ab3e5fa87233ba502c Mon Sep 17 00:00:00 2001
From: Tobias Schmidt <tobias.schmidt@unibas.ch>
Date: Tue, 17 May 2011 17:05:26 +0200
Subject: [PATCH] MeasureTool: add button to clear all measurements

---
 modules/gui/src/CMakeLists.txt        | 1 +
 modules/gui/src/tools/measure_tool.cc | 7 +++++++
 modules/gui/src/tools/measure_tool.hh | 6 ++++++
 3 files changed, 14 insertions(+)

diff --git a/modules/gui/src/CMakeLists.txt b/modules/gui/src/CMakeLists.txt
index 9ec4e834b..bbf5c38ad 100644
--- a/modules/gui/src/CMakeLists.txt
+++ b/modules/gui/src/CMakeLists.txt
@@ -389,6 +389,7 @@ tools/tool_bar.hh
 tools/tool_option.hh
 tools/tool_manager.hh
 tools/tool_options_widget.hh
+tools/measure_tool.hh
 tools/tool_options_win.hh
 )
 if (ENABLE_IMG)
diff --git a/modules/gui/src/tools/measure_tool.cc b/modules/gui/src/tools/measure_tool.cc
index 0039fcdf3..79de57b96 100644
--- a/modules/gui/src/tools/measure_tool.cc
+++ b/modules/gui/src/tools/measure_tool.cc
@@ -56,6 +56,8 @@ MeasureTool::MeasureTool()
   opts->AddOption(col_blue);
   ToolOptionFloat* line_width(new ToolOptionFloat("line_width", "Line Width", 4, 0.1, 10.0));
   opts->AddOption(line_width);
+  ToolOptionButton* clear_button(new ToolOptionButton("clear_button", "Clear", this, SLOT(ClearMeasurements())));
+  opts->AddOption(clear_button);
   mode_=meas_mode->GetValue();
 }
 
@@ -108,6 +110,11 @@ void MeasureTool::Click(const MouseEvent& event)
   scene.RequestRedraw();
 }
 
+void MeasureTool::ClearMeasurements()
+{
+  ml_.clear();
+}
+
 void MeasureTool::RenderGL()
 {
   glDisable(GL_LIGHTING);
diff --git a/modules/gui/src/tools/measure_tool.hh b/modules/gui/src/tools/measure_tool.hh
index 0fd655a6a..86effde21 100644
--- a/modules/gui/src/tools/measure_tool.hh
+++ b/modules/gui/src/tools/measure_tool.hh
@@ -28,6 +28,7 @@
 #include <ost/gfx/color.hh>
 
 #include <QList>
+#include <QWidget>
 namespace ost { namespace gui {
 
 class DLLEXPORT_OST_GUI Measurement {
@@ -62,8 +63,10 @@ typedef std::vector<Measurement> MeasurementList;
 
 
 class DLLEXPORT_OST_GUI MeasureTool : public Tool {
+  Q_OBJECT
 public:
   MeasureTool();
+  virtual ~MeasureTool() {};
   
   int GetMeasureMode();
   virtual void Click(const MouseEvent& event);
@@ -75,6 +78,9 @@ public:
 
   void RenderGL();
 
+public slots:
+  void ClearMeasurements();
+
 private:
   int num_clicks_;
   int mode_;
-- 
GitLab