mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 00:42:44 +00:00 
			
		
		
		
	PixelPaint: Make tool properties widget construction non-fallible
`Tool::get_properties_widget()` now also returns a NNRP to a widget rather than a raw pointer.
This commit is contained in:
		
							parent
							
								
									5df88dab07
								
							
						
					
					
						commit
						f34b1c7a7e
					
				
					 41 changed files with 72 additions and 85 deletions
				
			
		|  | @ -22,7 +22,6 @@ ToolPropertiesWidget::ToolPropertiesWidget() | ||||||
|     m_group_box = add<GUI::GroupBox>("Tool properties"sv); |     m_group_box = add<GUI::GroupBox>("Tool properties"sv); | ||||||
|     m_group_box->set_layout<GUI::VerticalBoxLayout>(8); |     m_group_box->set_layout<GUI::VerticalBoxLayout>(8); | ||||||
|     m_tool_widget_stack = m_group_box->add<GUI::StackWidget>(); |     m_tool_widget_stack = m_group_box->add<GUI::StackWidget>(); | ||||||
|     m_blank_widget = m_tool_widget_stack->add<GUI::Widget>(); |  | ||||||
|     m_error_label = m_tool_widget_stack->add<GUI::Label>(); |     m_error_label = m_tool_widget_stack->add<GUI::Label>(); | ||||||
|     m_error_label->set_enabled(false); |     m_error_label->set_enabled(false); | ||||||
| } | } | ||||||
|  | @ -33,18 +32,7 @@ void ToolPropertiesWidget::set_active_tool(Tool* tool) | ||||||
|         return; |         return; | ||||||
| 
 | 
 | ||||||
|     m_active_tool = tool; |     m_active_tool = tool; | ||||||
|     auto active_tool_widget_or_error = tool->get_properties_widget(); |     m_active_tool_widget = tool->get_properties_widget(); | ||||||
|     if (active_tool_widget_or_error.is_error()) { |  | ||||||
|         m_active_tool_widget = nullptr; |  | ||||||
|         m_error_label->set_text(String::formatted("Error creating tool properties: {}", active_tool_widget_or_error.release_error()).release_value_but_fixme_should_propagate_errors()); |  | ||||||
|         m_tool_widget_stack->set_active_widget(m_error_label); |  | ||||||
|         return; |  | ||||||
|     } |  | ||||||
|     m_active_tool_widget = active_tool_widget_or_error.release_value(); |  | ||||||
|     if (m_active_tool_widget == nullptr) { |  | ||||||
|         m_tool_widget_stack->set_active_widget(m_blank_widget); |  | ||||||
|         return; |  | ||||||
|     } |  | ||||||
| 
 | 
 | ||||||
|     if (!m_tool_widget_stack->is_ancestor_of(*m_active_tool_widget)) |     if (!m_tool_widget_stack->is_ancestor_of(*m_active_tool_widget)) | ||||||
|         m_tool_widget_stack->add_child(*m_active_tool_widget); |         m_tool_widget_stack->add_child(*m_active_tool_widget); | ||||||
|  |  | ||||||
|  | @ -31,7 +31,6 @@ private: | ||||||
| 
 | 
 | ||||||
|     Tool* m_active_tool { nullptr }; |     Tool* m_active_tool { nullptr }; | ||||||
|     RefPtr<GUI::StackWidget> m_tool_widget_stack; |     RefPtr<GUI::StackWidget> m_tool_widget_stack; | ||||||
|     RefPtr<GUI::Widget> m_blank_widget; |  | ||||||
|     RefPtr<GUI::Label> m_error_label; |     RefPtr<GUI::Label> m_error_label; | ||||||
|     GUI::Widget* m_active_tool_widget { nullptr }; |     GUI::Widget* m_active_tool_widget { nullptr }; | ||||||
| }; | }; | ||||||
|  |  | ||||||
|  | @ -197,7 +197,7 @@ void BrushTool::draw_line(Gfx::Bitmap& bitmap, Gfx::Color color, Gfx::IntPoint s | ||||||
|     } |     } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| ErrorOr<GUI::Widget*> BrushTool::get_properties_widget() | NonnullRefPtr<GUI::Widget> BrushTool::get_properties_widget() | ||||||
| { | { | ||||||
|     if (!m_properties_widget) { |     if (!m_properties_widget) { | ||||||
|         auto properties_widget = GUI::Widget::construct(); |         auto properties_widget = GUI::Widget::construct(); | ||||||
|  | @ -348,7 +348,7 @@ ErrorOr<GUI::Widget*> BrushTool::get_properties_widget() | ||||||
|         m_properties_widget = properties_widget; |         m_properties_widget = properties_widget; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     return m_properties_widget.ptr(); |     return *m_properties_widget; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| NonnullRefPtr<Gfx::Bitmap> BrushTool::build_cursor() | NonnullRefPtr<Gfx::Bitmap> BrushTool::build_cursor() | ||||||
|  |  | ||||||
|  | @ -22,7 +22,7 @@ public: | ||||||
|     virtual void on_mousedown(Layer*, MouseEvent&) override; |     virtual void on_mousedown(Layer*, MouseEvent&) override; | ||||||
|     virtual void on_mousemove(Layer*, MouseEvent&) override; |     virtual void on_mousemove(Layer*, MouseEvent&) override; | ||||||
|     virtual void on_mouseup(Layer*, MouseEvent&) override; |     virtual void on_mouseup(Layer*, MouseEvent&) override; | ||||||
|     virtual ErrorOr<GUI::Widget*> get_properties_widget() override; |     virtual NonnullRefPtr<GUI::Widget> get_properties_widget() override; | ||||||
|     virtual Variant<Gfx::StandardCursor, NonnullRefPtr<Gfx::Bitmap const>> cursor() override |     virtual Variant<Gfx::StandardCursor, NonnullRefPtr<Gfx::Bitmap const>> cursor() override | ||||||
|     { |     { | ||||||
|         if (m_editor && m_editor->scale() != m_scale_last_created_cursor) |         if (m_editor && m_editor->scale() != m_scale_last_created_cursor) | ||||||
|  |  | ||||||
|  | @ -61,7 +61,7 @@ void BucketTool::on_mousedown(Layer* layer, MouseEvent& event) | ||||||
|     m_editor->did_complete_action(tool_name()); |     m_editor->did_complete_action(tool_name()); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| ErrorOr<GUI::Widget*> BucketTool::get_properties_widget() | NonnullRefPtr<GUI::Widget> BucketTool::get_properties_widget() | ||||||
| { | { | ||||||
|     if (!m_properties_widget) { |     if (!m_properties_widget) { | ||||||
|         auto properties_widget = GUI::Widget::construct(); |         auto properties_widget = GUI::Widget::construct(); | ||||||
|  | @ -86,7 +86,7 @@ ErrorOr<GUI::Widget*> BucketTool::get_properties_widget() | ||||||
|         m_properties_widget = properties_widget; |         m_properties_widget = properties_widget; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     return m_properties_widget.ptr(); |     return *m_properties_widget; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -17,7 +17,7 @@ public: | ||||||
|     virtual ~BucketTool() override = default; |     virtual ~BucketTool() override = default; | ||||||
| 
 | 
 | ||||||
|     virtual void on_mousedown(Layer*, MouseEvent&) override; |     virtual void on_mousedown(Layer*, MouseEvent&) override; | ||||||
|     virtual ErrorOr<GUI::Widget*> get_properties_widget() override; |     virtual NonnullRefPtr<GUI::Widget> get_properties_widget() override; | ||||||
|     virtual Variant<Gfx::StandardCursor, NonnullRefPtr<Gfx::Bitmap const>> cursor() override { return m_cursor; } |     virtual Variant<Gfx::StandardCursor, NonnullRefPtr<Gfx::Bitmap const>> cursor() override { return m_cursor; } | ||||||
| 
 | 
 | ||||||
| private: | private: | ||||||
|  |  | ||||||
|  | @ -125,7 +125,7 @@ void CloneTool::on_keyup(GUI::KeyEvent& event) | ||||||
|     } |     } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| ErrorOr<GUI::Widget*> CloneTool::get_properties_widget() | NonnullRefPtr<GUI::Widget> CloneTool::get_properties_widget() | ||||||
| { | { | ||||||
|     if (!m_properties_widget) { |     if (!m_properties_widget) { | ||||||
|         auto properties_widget = GUI::Widget::construct(); |         auto properties_widget = GUI::Widget::construct(); | ||||||
|  | @ -168,7 +168,7 @@ ErrorOr<GUI::Widget*> CloneTool::get_properties_widget() | ||||||
|         m_properties_widget = properties_widget; |         m_properties_widget = properties_widget; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     return m_properties_widget.ptr(); |     return *m_properties_widget; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| Optional<Gfx::IntRect> CloneTool::sample_marker_rect() | Optional<Gfx::IntRect> CloneTool::sample_marker_rect() | ||||||
|  |  | ||||||
|  | @ -15,7 +15,7 @@ public: | ||||||
|     CloneTool() = default; |     CloneTool() = default; | ||||||
|     virtual ~CloneTool() override = default; |     virtual ~CloneTool() override = default; | ||||||
| 
 | 
 | ||||||
|     virtual ErrorOr<GUI::Widget*> get_properties_widget() override; |     virtual NonnullRefPtr<GUI::Widget> get_properties_widget() override; | ||||||
|     virtual Variant<Gfx::StandardCursor, NonnullRefPtr<Gfx::Bitmap const>> cursor() override; |     virtual Variant<Gfx::StandardCursor, NonnullRefPtr<Gfx::Bitmap const>> cursor() override; | ||||||
| 
 | 
 | ||||||
|     virtual bool is_overriding_alt() override { return true; } |     virtual bool is_overriding_alt() override { return true; } | ||||||
|  |  | ||||||
|  | @ -126,7 +126,7 @@ bool EllipseTool::on_keydown(GUI::KeyEvent& event) | ||||||
|     return Tool::on_keydown(event); |     return Tool::on_keydown(event); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| ErrorOr<GUI::Widget*> EllipseTool::get_properties_widget() | NonnullRefPtr<GUI::Widget> EllipseTool::get_properties_widget() | ||||||
| { | { | ||||||
|     if (!m_properties_widget) { |     if (!m_properties_widget) { | ||||||
|         auto properties_widget = GUI::Widget::construct(); |         auto properties_widget = GUI::Widget::construct(); | ||||||
|  | @ -208,7 +208,7 @@ ErrorOr<GUI::Widget*> EllipseTool::get_properties_widget() | ||||||
|         m_properties_widget = properties_widget; |         m_properties_widget = properties_widget; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     return m_properties_widget.ptr(); |     return *m_properties_widget; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -25,7 +25,7 @@ public: | ||||||
|     virtual void on_mouseup(Layer*, MouseEvent&) override; |     virtual void on_mouseup(Layer*, MouseEvent&) override; | ||||||
|     virtual void on_second_paint(Layer const*, GUI::PaintEvent&) override; |     virtual void on_second_paint(Layer const*, GUI::PaintEvent&) override; | ||||||
|     virtual bool on_keydown(GUI::KeyEvent&) override; |     virtual bool on_keydown(GUI::KeyEvent&) override; | ||||||
|     virtual ErrorOr<GUI::Widget*> get_properties_widget() override; |     virtual NonnullRefPtr<GUI::Widget> get_properties_widget() override; | ||||||
|     virtual Variant<Gfx::StandardCursor, NonnullRefPtr<Gfx::Bitmap const>> cursor() override { return Gfx::StandardCursor::Crosshair; } |     virtual Variant<Gfx::StandardCursor, NonnullRefPtr<Gfx::Bitmap const>> cursor() override { return Gfx::StandardCursor::Crosshair; } | ||||||
| 
 | 
 | ||||||
| private: | private: | ||||||
|  |  | ||||||
|  | @ -54,7 +54,7 @@ void EraseTool::draw_point(Gfx::Bitmap& bitmap, Gfx::Color color, Gfx::IntPoint | ||||||
|     } |     } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| ErrorOr<GUI::Widget*> EraseTool::get_properties_widget() | NonnullRefPtr<GUI::Widget> EraseTool::get_properties_widget() | ||||||
| { | { | ||||||
|     if (!m_properties_widget) { |     if (!m_properties_widget) { | ||||||
|         auto properties_widget = GUI::Widget::construct(); |         auto properties_widget = GUI::Widget::construct(); | ||||||
|  | @ -135,7 +135,7 @@ ErrorOr<GUI::Widget*> EraseTool::get_properties_widget() | ||||||
|         m_properties_widget = properties_widget; |         m_properties_widget = properties_widget; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     return m_properties_widget.ptr(); |     return *m_properties_widget; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| NonnullRefPtr<Gfx::Bitmap> EraseTool::build_cursor() | NonnullRefPtr<Gfx::Bitmap> EraseTool::build_cursor() | ||||||
|  |  | ||||||
|  | @ -20,7 +20,7 @@ public: | ||||||
|     EraseTool() = default; |     EraseTool() = default; | ||||||
|     virtual ~EraseTool() override = default; |     virtual ~EraseTool() override = default; | ||||||
| 
 | 
 | ||||||
|     virtual ErrorOr<GUI::Widget*> get_properties_widget() override; |     virtual NonnullRefPtr<GUI::Widget> get_properties_widget() override; | ||||||
| 
 | 
 | ||||||
| protected: | protected: | ||||||
|     virtual Color color_for(GUI::MouseEvent const& event) override; |     virtual Color color_for(GUI::MouseEvent const& event) override; | ||||||
|  |  | ||||||
|  | @ -198,7 +198,7 @@ void GradientTool::on_tool_activation() | ||||||
|     reset(); |     reset(); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| ErrorOr<GUI::Widget*> GradientTool::get_properties_widget() | NonnullRefPtr<GUI::Widget> GradientTool::get_properties_widget() | ||||||
| { | { | ||||||
|     if (!m_properties_widget) { |     if (!m_properties_widget) { | ||||||
|         auto properties_widget = GUI::Widget::construct(); |         auto properties_widget = GUI::Widget::construct(); | ||||||
|  | @ -304,7 +304,7 @@ ErrorOr<GUI::Widget*> GradientTool::get_properties_widget() | ||||||
|         m_properties_widget = properties_widget; |         m_properties_widget = properties_widget; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     return m_properties_widget.ptr(); |     return *m_properties_widget; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void GradientTool::rasterize_gradient() | void GradientTool::rasterize_gradient() | ||||||
|  |  | ||||||
|  | @ -23,7 +23,7 @@ public: | ||||||
|     virtual void on_primary_color_change(Color) override; |     virtual void on_primary_color_change(Color) override; | ||||||
|     virtual void on_secondary_color_change(Color) override; |     virtual void on_secondary_color_change(Color) override; | ||||||
|     virtual void on_tool_activation() override; |     virtual void on_tool_activation() override; | ||||||
|     virtual ErrorOr<GUI::Widget*> get_properties_widget() override; |     virtual NonnullRefPtr<GUI::Widget> get_properties_widget() override; | ||||||
| 
 | 
 | ||||||
|     virtual Variant<Gfx::StandardCursor, NonnullRefPtr<Gfx::Bitmap const>> cursor() override; |     virtual Variant<Gfx::StandardCursor, NonnullRefPtr<Gfx::Bitmap const>> cursor() override; | ||||||
|     virtual void on_second_paint(Layer const*, GUI::PaintEvent&) override; |     virtual void on_second_paint(Layer const*, GUI::PaintEvent&) override; | ||||||
|  |  | ||||||
|  | @ -176,7 +176,7 @@ void GuideTool::on_tool_activation() | ||||||
|         m_editor->set_guide_visibility(true); |         m_editor->set_guide_visibility(true); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| ErrorOr<GUI::Widget*> GuideTool::get_properties_widget() | NonnullRefPtr<GUI::Widget> GuideTool::get_properties_widget() | ||||||
| { | { | ||||||
|     if (!m_properties_widget) { |     if (!m_properties_widget) { | ||||||
|         auto properties_widget = GUI::Widget::construct(); |         auto properties_widget = GUI::Widget::construct(); | ||||||
|  | @ -202,7 +202,7 @@ ErrorOr<GUI::Widget*> GuideTool::get_properties_widget() | ||||||
|         m_properties_widget = properties_widget; |         m_properties_widget = properties_widget; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     return m_properties_widget.ptr(); |     return *m_properties_widget; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -27,7 +27,7 @@ public: | ||||||
| 
 | 
 | ||||||
|     virtual void on_tool_activation() override; |     virtual void on_tool_activation() override; | ||||||
| 
 | 
 | ||||||
|     virtual ErrorOr<GUI::Widget*> get_properties_widget() override; |     virtual NonnullRefPtr<GUI::Widget> get_properties_widget() override; | ||||||
|     virtual Variant<Gfx::StandardCursor, NonnullRefPtr<Gfx::Bitmap const>> cursor() override { return Gfx::StandardCursor::Crosshair; } |     virtual Variant<Gfx::StandardCursor, NonnullRefPtr<Gfx::Bitmap const>> cursor() override { return Gfx::StandardCursor::Crosshair; } | ||||||
| 
 | 
 | ||||||
| private: | private: | ||||||
|  |  | ||||||
|  | @ -154,10 +154,10 @@ bool LassoSelectTool::on_keydown(GUI::KeyEvent& key_event) | ||||||
|     return Tool::on_keydown(key_event); |     return Tool::on_keydown(key_event); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| ErrorOr<GUI::Widget*> LassoSelectTool::get_properties_widget() | NonnullRefPtr<GUI::Widget> LassoSelectTool::get_properties_widget() | ||||||
| { | { | ||||||
|     if (m_properties_widget) { |     if (m_properties_widget) { | ||||||
|         return m_properties_widget.ptr(); |         return *m_properties_widget.ptr(); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     auto properties_widget = GUI::Widget::construct(); |     auto properties_widget = GUI::Widget::construct(); | ||||||
|  | @ -207,7 +207,7 @@ ErrorOr<GUI::Widget*> LassoSelectTool::get_properties_widget() | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     m_properties_widget = properties_widget; |     m_properties_widget = properties_widget; | ||||||
|     return m_properties_widget.ptr(); |     return *m_properties_widget; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -25,7 +25,7 @@ public: | ||||||
|     virtual void on_mousemove(Layer*, MouseEvent& event) override; |     virtual void on_mousemove(Layer*, MouseEvent& event) override; | ||||||
|     virtual bool on_keydown(GUI::KeyEvent&) override; |     virtual bool on_keydown(GUI::KeyEvent&) override; | ||||||
|     virtual void on_second_paint(Layer const*, GUI::PaintEvent&) override; |     virtual void on_second_paint(Layer const*, GUI::PaintEvent&) override; | ||||||
|     virtual ErrorOr<GUI::Widget*> get_properties_widget() override; |     virtual NonnullRefPtr<GUI::Widget> get_properties_widget() override; | ||||||
|     virtual Variant<Gfx::StandardCursor, NonnullRefPtr<Gfx::Bitmap const>> cursor() override { return Gfx::StandardCursor::Crosshair; } |     virtual Variant<Gfx::StandardCursor, NonnullRefPtr<Gfx::Bitmap const>> cursor() override { return Gfx::StandardCursor::Crosshair; } | ||||||
| 
 | 
 | ||||||
| private: | private: | ||||||
|  |  | ||||||
|  | @ -119,7 +119,7 @@ bool LineTool::on_keydown(GUI::KeyEvent& event) | ||||||
|     return Tool::on_keydown(event); |     return Tool::on_keydown(event); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| ErrorOr<GUI::Widget*> LineTool::get_properties_widget() | NonnullRefPtr<GUI::Widget> LineTool::get_properties_widget() | ||||||
| { | { | ||||||
|     if (!m_properties_widget) { |     if (!m_properties_widget) { | ||||||
|         auto properties_widget = GUI::Widget::construct(); |         auto properties_widget = GUI::Widget::construct(); | ||||||
|  | @ -158,7 +158,7 @@ ErrorOr<GUI::Widget*> LineTool::get_properties_widget() | ||||||
|         m_properties_widget = properties_widget; |         m_properties_widget = properties_widget; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     return m_properties_widget.ptr(); |     return *m_properties_widget; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -23,7 +23,7 @@ public: | ||||||
|     virtual void on_mouseup(Layer*, MouseEvent&) override; |     virtual void on_mouseup(Layer*, MouseEvent&) override; | ||||||
|     virtual void on_second_paint(Layer const*, GUI::PaintEvent&) override; |     virtual void on_second_paint(Layer const*, GUI::PaintEvent&) override; | ||||||
|     virtual bool on_keydown(GUI::KeyEvent&) override; |     virtual bool on_keydown(GUI::KeyEvent&) override; | ||||||
|     virtual ErrorOr<GUI::Widget*> get_properties_widget() override; |     virtual NonnullRefPtr<GUI::Widget> get_properties_widget() override; | ||||||
|     virtual Variant<Gfx::StandardCursor, NonnullRefPtr<Gfx::Bitmap const>> cursor() override { return Gfx::StandardCursor::Crosshair; } |     virtual Variant<Gfx::StandardCursor, NonnullRefPtr<Gfx::Bitmap const>> cursor() override { return Gfx::StandardCursor::Crosshair; } | ||||||
| 
 | 
 | ||||||
|     void draw_using(GUI::Painter&, Gfx::IntPoint start_position, Gfx::IntPoint end_position, Color color, int thickness); |     void draw_using(GUI::Painter&, Gfx::IntPoint start_position, Gfx::IntPoint end_position, Color color, int thickness); | ||||||
|  |  | ||||||
|  | @ -289,7 +289,7 @@ Variant<Gfx::StandardCursor, NonnullRefPtr<Gfx::Bitmap const>> MoveTool::cursor( | ||||||
|     return Gfx::StandardCursor::Move; |     return Gfx::StandardCursor::Move; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| ErrorOr<GUI::Widget*> MoveTool::get_properties_widget() | NonnullRefPtr<GUI::Widget> MoveTool::get_properties_widget() | ||||||
| { | { | ||||||
|     if (!m_properties_widget) { |     if (!m_properties_widget) { | ||||||
|         auto properties_widget = GUI::Widget::construct(); |         auto properties_widget = GUI::Widget::construct(); | ||||||
|  | @ -319,7 +319,7 @@ ErrorOr<GUI::Widget*> MoveTool::get_properties_widget() | ||||||
|         m_properties_widget = properties_widget; |         m_properties_widget = properties_widget; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     return m_properties_widget.ptr(); |     return *m_properties_widget; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void MoveTool::toggle_selection_mode() | void MoveTool::toggle_selection_mode() | ||||||
|  |  | ||||||
|  | @ -35,7 +35,7 @@ public: | ||||||
|     virtual bool on_keydown(GUI::KeyEvent&) override; |     virtual bool on_keydown(GUI::KeyEvent&) override; | ||||||
|     virtual void on_keyup(GUI::KeyEvent&) override; |     virtual void on_keyup(GUI::KeyEvent&) override; | ||||||
|     virtual void on_second_paint(Layer const*, GUI::PaintEvent&) override; |     virtual void on_second_paint(Layer const*, GUI::PaintEvent&) override; | ||||||
|     virtual ErrorOr<GUI::Widget*> get_properties_widget() override; |     virtual NonnullRefPtr<GUI::Widget> get_properties_widget() override; | ||||||
|     virtual Variant<Gfx::StandardCursor, NonnullRefPtr<Gfx::Bitmap const>> cursor() override; |     virtual Variant<Gfx::StandardCursor, NonnullRefPtr<Gfx::Bitmap const>> cursor() override; | ||||||
|     virtual bool is_overriding_alt() override { return true; } |     virtual bool is_overriding_alt() override { return true; } | ||||||
|     LayerSelectionMode layer_selection_mode() const { return m_layer_selection_mode; } |     LayerSelectionMode layer_selection_mode() const { return m_layer_selection_mode; } | ||||||
|  |  | ||||||
|  | @ -35,7 +35,7 @@ void PenTool::draw_line(Gfx::Bitmap& bitmap, Gfx::Color color, Gfx::IntPoint sta | ||||||
|     painter.draw_line(start, end, color, size()); |     painter.draw_line(start, end, color, size()); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| ErrorOr<GUI::Widget*> PenTool::get_properties_widget() | NonnullRefPtr<GUI::Widget> PenTool::get_properties_widget() | ||||||
| { | { | ||||||
|     if (!m_properties_widget) { |     if (!m_properties_widget) { | ||||||
|         auto properties_widget = GUI::Widget::construct(); |         auto properties_widget = GUI::Widget::construct(); | ||||||
|  | @ -60,7 +60,7 @@ ErrorOr<GUI::Widget*> PenTool::get_properties_widget() | ||||||
|         m_properties_widget = properties_widget; |         m_properties_widget = properties_widget; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     return m_properties_widget.ptr(); |     return *m_properties_widget; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -19,7 +19,7 @@ public: | ||||||
|     PenTool(); |     PenTool(); | ||||||
|     virtual ~PenTool() override = default; |     virtual ~PenTool() override = default; | ||||||
|     virtual Variant<Gfx::StandardCursor, NonnullRefPtr<Gfx::Bitmap const>> cursor() override { return Gfx::StandardCursor::Crosshair; } |     virtual Variant<Gfx::StandardCursor, NonnullRefPtr<Gfx::Bitmap const>> cursor() override { return Gfx::StandardCursor::Crosshair; } | ||||||
|     virtual ErrorOr<GUI::Widget*> get_properties_widget() override; |     virtual NonnullRefPtr<GUI::Widget> get_properties_widget() override; | ||||||
| 
 | 
 | ||||||
| protected: | protected: | ||||||
|     virtual void draw_point(Gfx::Bitmap& bitmap, Gfx::Color color, Gfx::IntPoint point) override; |     virtual void draw_point(Gfx::Bitmap& bitmap, Gfx::Color color, Gfx::IntPoint point) override; | ||||||
|  |  | ||||||
|  | @ -41,7 +41,7 @@ void PickerTool::on_mousemove(Layer* layer, MouseEvent& event) | ||||||
|     m_editor->set_editor_color_to_color_at_mouse_position(layer_event, m_sample_all_layers); |     m_editor->set_editor_color_to_color_at_mouse_position(layer_event, m_sample_all_layers); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| ErrorOr<GUI::Widget*> PickerTool::get_properties_widget() | NonnullRefPtr<GUI::Widget> PickerTool::get_properties_widget() | ||||||
| { | { | ||||||
|     if (!m_properties_widget) { |     if (!m_properties_widget) { | ||||||
|         auto properties_widget = GUI::Widget::construct(); |         auto properties_widget = GUI::Widget::construct(); | ||||||
|  | @ -55,7 +55,7 @@ ErrorOr<GUI::Widget*> PickerTool::get_properties_widget() | ||||||
|         m_properties_widget = properties_widget; |         m_properties_widget = properties_widget; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     return m_properties_widget.ptr(); |     return *m_properties_widget; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -21,7 +21,7 @@ public: | ||||||
|     virtual void on_mouseup(Layer*, MouseEvent&) override; |     virtual void on_mouseup(Layer*, MouseEvent&) override; | ||||||
|     virtual void on_mousemove(Layer*, MouseEvent&) override; |     virtual void on_mousemove(Layer*, MouseEvent&) override; | ||||||
| 
 | 
 | ||||||
|     virtual ErrorOr<GUI::Widget*> get_properties_widget() override; |     virtual NonnullRefPtr<GUI::Widget> get_properties_widget() override; | ||||||
|     virtual Variant<Gfx::StandardCursor, NonnullRefPtr<Gfx::Bitmap const>> cursor() override { return Gfx::StandardCursor::Eyedropper; } |     virtual Variant<Gfx::StandardCursor, NonnullRefPtr<Gfx::Bitmap const>> cursor() override { return Gfx::StandardCursor::Eyedropper; } | ||||||
| 
 | 
 | ||||||
| private: | private: | ||||||
|  |  | ||||||
|  | @ -184,10 +184,10 @@ bool PolygonalSelectTool::on_keydown(GUI::KeyEvent& key_event) | ||||||
|     return Tool::on_keydown(key_event); |     return Tool::on_keydown(key_event); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| ErrorOr<GUI::Widget*> PolygonalSelectTool::get_properties_widget() | NonnullRefPtr<GUI::Widget> PolygonalSelectTool::get_properties_widget() | ||||||
| { | { | ||||||
|     if (m_properties_widget) |     if (m_properties_widget) | ||||||
|         return m_properties_widget.ptr(); |         return *m_properties_widget.ptr(); | ||||||
| 
 | 
 | ||||||
|     auto properties_widget = GUI::Widget::construct(); |     auto properties_widget = GUI::Widget::construct(); | ||||||
|     properties_widget->set_layout<GUI::VerticalBoxLayout>(); |     properties_widget->set_layout<GUI::VerticalBoxLayout>(); | ||||||
|  | @ -236,7 +236,7 @@ ErrorOr<GUI::Widget*> PolygonalSelectTool::get_properties_widget() | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     m_properties_widget = properties_widget; |     m_properties_widget = properties_widget; | ||||||
|     return m_properties_widget.ptr(); |     return *m_properties_widget; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| Gfx::IntPoint PolygonalSelectTool::point_position_to_preferred_cell(Gfx::FloatPoint position) const | Gfx::IntPoint PolygonalSelectTool::point_position_to_preferred_cell(Gfx::FloatPoint position) const | ||||||
|  |  | ||||||
|  | @ -22,7 +22,7 @@ public: | ||||||
|     virtual void on_mousemove(Layer*, MouseEvent& event) override; |     virtual void on_mousemove(Layer*, MouseEvent& event) override; | ||||||
|     virtual bool on_keydown(GUI::KeyEvent&) override; |     virtual bool on_keydown(GUI::KeyEvent&) override; | ||||||
|     virtual void on_second_paint(Layer const*, GUI::PaintEvent&) override; |     virtual void on_second_paint(Layer const*, GUI::PaintEvent&) override; | ||||||
|     virtual ErrorOr<GUI::Widget*> get_properties_widget() override; |     virtual NonnullRefPtr<GUI::Widget> get_properties_widget() override; | ||||||
|     virtual Variant<Gfx::StandardCursor, NonnullRefPtr<Gfx::Bitmap const>> cursor() override { return Gfx::StandardCursor::Crosshair; } |     virtual Variant<Gfx::StandardCursor, NonnullRefPtr<Gfx::Bitmap const>> cursor() override { return Gfx::StandardCursor::Crosshair; } | ||||||
|     virtual Gfx::IntPoint point_position_to_preferred_cell(Gfx::FloatPoint position) const override; |     virtual Gfx::IntPoint point_position_to_preferred_cell(Gfx::FloatPoint position) const override; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -151,10 +151,10 @@ void RectangleSelectTool::on_second_paint(Layer const*, GUI::PaintEvent& event) | ||||||
|     m_editor->draw_marching_ants(painter, rect_in_editor.to_rounded<int>()); |     m_editor->draw_marching_ants(painter, rect_in_editor.to_rounded<int>()); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| ErrorOr<GUI::Widget*> RectangleSelectTool::get_properties_widget() | NonnullRefPtr<GUI::Widget> RectangleSelectTool::get_properties_widget() | ||||||
| { | { | ||||||
|     if (m_properties_widget) { |     if (m_properties_widget) { | ||||||
|         return m_properties_widget.ptr(); |         return *m_properties_widget.ptr(); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     auto properties_widget = GUI::Widget::construct(); |     auto properties_widget = GUI::Widget::construct(); | ||||||
|  | @ -191,16 +191,16 @@ ErrorOr<GUI::Widget*> RectangleSelectTool::get_properties_widget() | ||||||
|     for (int i = 0; i < (int)Selection::MergeMode::__Count; i++) { |     for (int i = 0; i < (int)Selection::MergeMode::__Count; i++) { | ||||||
|         switch ((Selection::MergeMode)i) { |         switch ((Selection::MergeMode)i) { | ||||||
|         case Selection::MergeMode::Set: |         case Selection::MergeMode::Set: | ||||||
|             TRY(m_merge_mode_names.try_append("Set")); |             m_merge_mode_names.append("Set"); | ||||||
|             break; |             break; | ||||||
|         case Selection::MergeMode::Add: |         case Selection::MergeMode::Add: | ||||||
|             TRY(m_merge_mode_names.try_append("Add")); |             m_merge_mode_names.append("Add"); | ||||||
|             break; |             break; | ||||||
|         case Selection::MergeMode::Subtract: |         case Selection::MergeMode::Subtract: | ||||||
|             TRY(m_merge_mode_names.try_append("Subtract")); |             m_merge_mode_names.append("Subtract"); | ||||||
|             break; |             break; | ||||||
|         case Selection::MergeMode::Intersect: |         case Selection::MergeMode::Intersect: | ||||||
|             TRY(m_merge_mode_names.try_append("Intersect")); |             m_merge_mode_names.append("Intersect"); | ||||||
|             break; |             break; | ||||||
|         default: |         default: | ||||||
|             VERIFY_NOT_REACHED(); |             VERIFY_NOT_REACHED(); | ||||||
|  | @ -219,7 +219,7 @@ ErrorOr<GUI::Widget*> RectangleSelectTool::get_properties_widget() | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     m_properties_widget = properties_widget; |     m_properties_widget = properties_widget; | ||||||
|     return m_properties_widget.ptr(); |     return *m_properties_widget; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| Gfx::IntPoint RectangleSelectTool::point_position_to_preferred_cell(Gfx::FloatPoint position) const | Gfx::IntPoint RectangleSelectTool::point_position_to_preferred_cell(Gfx::FloatPoint position) const | ||||||
|  |  | ||||||
|  | @ -26,7 +26,7 @@ public: | ||||||
|     virtual bool on_keydown(GUI::KeyEvent&) override; |     virtual bool on_keydown(GUI::KeyEvent&) override; | ||||||
|     virtual void on_keyup(GUI::KeyEvent&) override; |     virtual void on_keyup(GUI::KeyEvent&) override; | ||||||
|     virtual void on_second_paint(Layer const*, GUI::PaintEvent&) override; |     virtual void on_second_paint(Layer const*, GUI::PaintEvent&) override; | ||||||
|     virtual ErrorOr<GUI::Widget*> get_properties_widget() override; |     virtual NonnullRefPtr<GUI::Widget> get_properties_widget() override; | ||||||
|     virtual Variant<Gfx::StandardCursor, NonnullRefPtr<Gfx::Bitmap const>> cursor() override { return Gfx::StandardCursor::Crosshair; } |     virtual Variant<Gfx::StandardCursor, NonnullRefPtr<Gfx::Bitmap const>> cursor() override { return Gfx::StandardCursor::Crosshair; } | ||||||
|     virtual Gfx::IntPoint point_position_to_preferred_cell(Gfx::FloatPoint position) const override; |     virtual Gfx::IntPoint point_position_to_preferred_cell(Gfx::FloatPoint position) const override; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -140,7 +140,7 @@ bool RectangleTool::on_keydown(GUI::KeyEvent& event) | ||||||
|     return Tool::on_keydown(event); |     return Tool::on_keydown(event); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| ErrorOr<GUI::Widget*> RectangleTool::get_properties_widget() | NonnullRefPtr<GUI::Widget> RectangleTool::get_properties_widget() | ||||||
| { | { | ||||||
|     if (!m_properties_widget) { |     if (!m_properties_widget) { | ||||||
|         auto properties_widget = GUI::Widget::construct(); |         auto properties_widget = GUI::Widget::construct(); | ||||||
|  | @ -258,7 +258,7 @@ ErrorOr<GUI::Widget*> RectangleTool::get_properties_widget() | ||||||
|         m_properties_widget = properties_widget; |         m_properties_widget = properties_widget; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     return m_properties_widget.ptr(); |     return *m_properties_widget; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -24,7 +24,7 @@ public: | ||||||
|     virtual void on_mouseup(Layer*, MouseEvent&) override; |     virtual void on_mouseup(Layer*, MouseEvent&) override; | ||||||
|     virtual void on_second_paint(Layer const*, GUI::PaintEvent&) override; |     virtual void on_second_paint(Layer const*, GUI::PaintEvent&) override; | ||||||
|     virtual bool on_keydown(GUI::KeyEvent&) override; |     virtual bool on_keydown(GUI::KeyEvent&) override; | ||||||
|     virtual ErrorOr<GUI::Widget*> get_properties_widget() override; |     virtual NonnullRefPtr<GUI::Widget> get_properties_widget() override; | ||||||
|     virtual Variant<Gfx::StandardCursor, NonnullRefPtr<Gfx::Bitmap const>> cursor() override { return Gfx::StandardCursor::Crosshair; } |     virtual Variant<Gfx::StandardCursor, NonnullRefPtr<Gfx::Bitmap const>> cursor() override { return Gfx::StandardCursor::Crosshair; } | ||||||
| 
 | 
 | ||||||
| private: | private: | ||||||
|  |  | ||||||
|  | @ -90,7 +90,7 @@ void SprayTool::on_mouseup(Layer*, MouseEvent&) | ||||||
|     } |     } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| ErrorOr<GUI::Widget*> SprayTool::get_properties_widget() | NonnullRefPtr<GUI::Widget> SprayTool::get_properties_widget() | ||||||
| { | { | ||||||
|     if (!m_properties_widget) { |     if (!m_properties_widget) { | ||||||
|         auto properties_widget = GUI::Widget::construct(); |         auto properties_widget = GUI::Widget::construct(); | ||||||
|  | @ -132,7 +132,7 @@ ErrorOr<GUI::Widget*> SprayTool::get_properties_widget() | ||||||
|         m_properties_widget = properties_widget; |         m_properties_widget = properties_widget; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     return m_properties_widget.ptr(); |     return *m_properties_widget; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -22,7 +22,7 @@ public: | ||||||
|     virtual void on_mousedown(Layer*, MouseEvent&) override; |     virtual void on_mousedown(Layer*, MouseEvent&) override; | ||||||
|     virtual void on_mouseup(Layer*, MouseEvent&) override; |     virtual void on_mouseup(Layer*, MouseEvent&) override; | ||||||
|     virtual void on_mousemove(Layer*, MouseEvent&) override; |     virtual void on_mousemove(Layer*, MouseEvent&) override; | ||||||
|     virtual ErrorOr<GUI::Widget*> get_properties_widget() override; |     virtual NonnullRefPtr<GUI::Widget> get_properties_widget() override; | ||||||
|     virtual Variant<Gfx::StandardCursor, NonnullRefPtr<Gfx::Bitmap const>> cursor() override { return Gfx::StandardCursor::Crosshair; } |     virtual Variant<Gfx::StandardCursor, NonnullRefPtr<Gfx::Bitmap const>> cursor() override { return Gfx::StandardCursor::Crosshair; } | ||||||
| 
 | 
 | ||||||
| private: | private: | ||||||
|  |  | ||||||
|  | @ -103,10 +103,10 @@ void TextTool::on_mousedown(Layer*, MouseEvent& event) | ||||||
|     } |     } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| ErrorOr<GUI::Widget*> TextTool::get_properties_widget() | NonnullRefPtr<GUI::Widget> TextTool::get_properties_widget() | ||||||
| { | { | ||||||
|     if (m_properties_widget) |     if (m_properties_widget) | ||||||
|         return m_properties_widget.ptr(); |         return *m_properties_widget.ptr(); | ||||||
| 
 | 
 | ||||||
|     auto properties_widget = GUI::Widget::construct(); |     auto properties_widget = GUI::Widget::construct(); | ||||||
|     properties_widget->set_layout<GUI::VerticalBoxLayout>(); |     properties_widget->set_layout<GUI::VerticalBoxLayout>(); | ||||||
|  | @ -128,7 +128,7 @@ ErrorOr<GUI::Widget*> TextTool::get_properties_widget() | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     m_properties_widget = properties_widget; |     m_properties_widget = properties_widget; | ||||||
|     return m_properties_widget.ptr(); |     return *m_properties_widget; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void TextTool::on_second_paint(Layer const* layer, GUI::PaintEvent& event) | void TextTool::on_second_paint(Layer const* layer, GUI::PaintEvent& event) | ||||||
|  |  | ||||||
|  | @ -41,7 +41,7 @@ public: | ||||||
|     virtual void on_primary_color_change(Color) override; |     virtual void on_primary_color_change(Color) override; | ||||||
|     virtual void on_tool_deactivation() override; |     virtual void on_tool_deactivation() override; | ||||||
|     virtual Variant<Gfx::StandardCursor, NonnullRefPtr<Gfx::Bitmap const>> cursor() override; |     virtual Variant<Gfx::StandardCursor, NonnullRefPtr<Gfx::Bitmap const>> cursor() override; | ||||||
|     virtual ErrorOr<GUI::Widget*> get_properties_widget() override; |     virtual NonnullRefPtr<GUI::Widget> get_properties_widget() override; | ||||||
| 
 | 
 | ||||||
| private: | private: | ||||||
|     virtual StringView tool_name() const override { return "Text Tool"sv; } |     virtual StringView tool_name() const override { return "Text Tool"sv; } | ||||||
|  |  | ||||||
|  | @ -67,7 +67,7 @@ public: | ||||||
|     virtual void on_secondary_color_change(Color) { } |     virtual void on_secondary_color_change(Color) { } | ||||||
|     virtual void on_tool_activation() { } |     virtual void on_tool_activation() { } | ||||||
|     virtual void on_tool_deactivation() { } |     virtual void on_tool_deactivation() { } | ||||||
|     virtual ErrorOr<GUI::Widget*> get_properties_widget() { return nullptr; } |     virtual NonnullRefPtr<GUI::Widget> get_properties_widget() { return GUI::Widget::construct(); } | ||||||
|     virtual Variant<Gfx::StandardCursor, NonnullRefPtr<Gfx::Bitmap const>> cursor() { return Gfx::StandardCursor::None; } |     virtual Variant<Gfx::StandardCursor, NonnullRefPtr<Gfx::Bitmap const>> cursor() { return Gfx::StandardCursor::None; } | ||||||
|     virtual Gfx::IntPoint point_position_to_preferred_cell(Gfx::FloatPoint position) const { return position.to_type<int>(); } |     virtual Gfx::IntPoint point_position_to_preferred_cell(Gfx::FloatPoint position) const { return position.to_type<int>(); } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -66,10 +66,10 @@ void WandSelectTool::on_mousedown(Layer* layer, MouseEvent& event) | ||||||
|     m_editor->did_complete_action(tool_name()); |     m_editor->did_complete_action(tool_name()); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| ErrorOr<GUI::Widget*> WandSelectTool::get_properties_widget() | NonnullRefPtr<GUI::Widget> WandSelectTool::get_properties_widget() | ||||||
| { | { | ||||||
|     if (m_properties_widget) { |     if (m_properties_widget) { | ||||||
|         return m_properties_widget.ptr(); |         return *m_properties_widget.ptr(); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     auto properties_widget = GUI::Widget::construct(); |     auto properties_widget = GUI::Widget::construct(); | ||||||
|  | @ -104,16 +104,16 @@ ErrorOr<GUI::Widget*> WandSelectTool::get_properties_widget() | ||||||
|     for (int i = 0; i < (int)Selection::MergeMode::__Count; i++) { |     for (int i = 0; i < (int)Selection::MergeMode::__Count; i++) { | ||||||
|         switch ((Selection::MergeMode)i) { |         switch ((Selection::MergeMode)i) { | ||||||
|         case Selection::MergeMode::Set: |         case Selection::MergeMode::Set: | ||||||
|             TRY(m_merge_mode_names.try_append("Set")); |             m_merge_mode_names.append("Set"); | ||||||
|             break; |             break; | ||||||
|         case Selection::MergeMode::Add: |         case Selection::MergeMode::Add: | ||||||
|             TRY(m_merge_mode_names.try_append("Add")); |             m_merge_mode_names.append("Add"); | ||||||
|             break; |             break; | ||||||
|         case Selection::MergeMode::Subtract: |         case Selection::MergeMode::Subtract: | ||||||
|             TRY(m_merge_mode_names.try_append("Subtract")); |             m_merge_mode_names.append("Subtract"); | ||||||
|             break; |             break; | ||||||
|         case Selection::MergeMode::Intersect: |         case Selection::MergeMode::Intersect: | ||||||
|             TRY(m_merge_mode_names.try_append("Intersect")); |             m_merge_mode_names.append("Intersect"); | ||||||
|             break; |             break; | ||||||
|         default: |         default: | ||||||
|             VERIFY_NOT_REACHED(); |             VERIFY_NOT_REACHED(); | ||||||
|  | @ -132,7 +132,7 @@ ErrorOr<GUI::Widget*> WandSelectTool::get_properties_widget() | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     m_properties_widget = properties_widget; |     m_properties_widget = properties_widget; | ||||||
|     return m_properties_widget.ptr(); |     return *m_properties_widget; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -23,7 +23,7 @@ public: | ||||||
| 
 | 
 | ||||||
|     virtual void on_mousedown(Layer*, MouseEvent& event) override; |     virtual void on_mousedown(Layer*, MouseEvent& event) override; | ||||||
|     virtual bool on_keydown(GUI::KeyEvent&) override; |     virtual bool on_keydown(GUI::KeyEvent&) override; | ||||||
|     virtual ErrorOr<GUI::Widget*> get_properties_widget() override; |     virtual NonnullRefPtr<GUI::Widget> get_properties_widget() override; | ||||||
|     virtual Variant<Gfx::StandardCursor, NonnullRefPtr<Gfx::Bitmap const>> cursor() override { return Gfx::StandardCursor::Crosshair; } |     virtual Variant<Gfx::StandardCursor, NonnullRefPtr<Gfx::Bitmap const>> cursor() override { return Gfx::StandardCursor::Crosshair; } | ||||||
| 
 | 
 | ||||||
| private: | private: | ||||||
|  |  | ||||||
|  | @ -23,7 +23,7 @@ void ZoomTool::on_mousedown(Layer*, MouseEvent& event) | ||||||
|     m_editor->scale_centered(new_scale, raw_event.position()); |     m_editor->scale_centered(new_scale, raw_event.position()); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| ErrorOr<GUI::Widget*> ZoomTool::get_properties_widget() | NonnullRefPtr<GUI::Widget> ZoomTool::get_properties_widget() | ||||||
| { | { | ||||||
|     if (!m_properties_widget) { |     if (!m_properties_widget) { | ||||||
|         auto properties_widget = GUI::Widget::construct(); |         auto properties_widget = GUI::Widget::construct(); | ||||||
|  | @ -48,7 +48,7 @@ ErrorOr<GUI::Widget*> ZoomTool::get_properties_widget() | ||||||
|         m_properties_widget = properties_widget; |         m_properties_widget = properties_widget; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     return m_properties_widget.ptr(); |     return *m_properties_widget; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -18,7 +18,7 @@ public: | ||||||
|     virtual ~ZoomTool() override = default; |     virtual ~ZoomTool() override = default; | ||||||
| 
 | 
 | ||||||
|     virtual void on_mousedown(Layer*, MouseEvent&) override; |     virtual void on_mousedown(Layer*, MouseEvent&) override; | ||||||
|     virtual ErrorOr<GUI::Widget*> get_properties_widget() override; |     virtual NonnullRefPtr<GUI::Widget> get_properties_widget() override; | ||||||
|     virtual Variant<Gfx::StandardCursor, NonnullRefPtr<Gfx::Bitmap const>> cursor() override { return Gfx::StandardCursor::Zoom; } |     virtual Variant<Gfx::StandardCursor, NonnullRefPtr<Gfx::Bitmap const>> cursor() override { return Gfx::StandardCursor::Zoom; } | ||||||
| 
 | 
 | ||||||
| private: | private: | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Tim Ledbetter
						Tim Ledbetter