Explorar o código

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.
Tim Ledbetter hai 1 ano
pai
achega
f34b1c7a7e
Modificáronse 41 ficheiros con 72 adicións e 85 borrados
  1. 1 13
      Userland/Applications/PixelPaint/ToolPropertiesWidget.cpp
  2. 0 1
      Userland/Applications/PixelPaint/ToolPropertiesWidget.h
  3. 2 2
      Userland/Applications/PixelPaint/Tools/BrushTool.cpp
  4. 1 1
      Userland/Applications/PixelPaint/Tools/BrushTool.h
  5. 2 2
      Userland/Applications/PixelPaint/Tools/BucketTool.cpp
  6. 1 1
      Userland/Applications/PixelPaint/Tools/BucketTool.h
  7. 2 2
      Userland/Applications/PixelPaint/Tools/CloneTool.cpp
  8. 1 1
      Userland/Applications/PixelPaint/Tools/CloneTool.h
  9. 2 2
      Userland/Applications/PixelPaint/Tools/EllipseTool.cpp
  10. 1 1
      Userland/Applications/PixelPaint/Tools/EllipseTool.h
  11. 2 2
      Userland/Applications/PixelPaint/Tools/EraseTool.cpp
  12. 1 1
      Userland/Applications/PixelPaint/Tools/EraseTool.h
  13. 2 2
      Userland/Applications/PixelPaint/Tools/GradientTool.cpp
  14. 1 1
      Userland/Applications/PixelPaint/Tools/GradientTool.h
  15. 2 2
      Userland/Applications/PixelPaint/Tools/GuideTool.cpp
  16. 1 1
      Userland/Applications/PixelPaint/Tools/GuideTool.h
  17. 3 3
      Userland/Applications/PixelPaint/Tools/LassoSelectTool.cpp
  18. 1 1
      Userland/Applications/PixelPaint/Tools/LassoSelectTool.h
  19. 2 2
      Userland/Applications/PixelPaint/Tools/LineTool.cpp
  20. 1 1
      Userland/Applications/PixelPaint/Tools/LineTool.h
  21. 2 2
      Userland/Applications/PixelPaint/Tools/MoveTool.cpp
  22. 1 1
      Userland/Applications/PixelPaint/Tools/MoveTool.h
  23. 2 2
      Userland/Applications/PixelPaint/Tools/PenTool.cpp
  24. 1 1
      Userland/Applications/PixelPaint/Tools/PenTool.h
  25. 2 2
      Userland/Applications/PixelPaint/Tools/PickerTool.cpp
  26. 1 1
      Userland/Applications/PixelPaint/Tools/PickerTool.h
  27. 3 3
      Userland/Applications/PixelPaint/Tools/PolygonalSelectTool.cpp
  28. 1 1
      Userland/Applications/PixelPaint/Tools/PolygonalSelectTool.h
  29. 7 7
      Userland/Applications/PixelPaint/Tools/RectangleSelectTool.cpp
  30. 1 1
      Userland/Applications/PixelPaint/Tools/RectangleSelectTool.h
  31. 2 2
      Userland/Applications/PixelPaint/Tools/RectangleTool.cpp
  32. 1 1
      Userland/Applications/PixelPaint/Tools/RectangleTool.h
  33. 2 2
      Userland/Applications/PixelPaint/Tools/SprayTool.cpp
  34. 1 1
      Userland/Applications/PixelPaint/Tools/SprayTool.h
  35. 3 3
      Userland/Applications/PixelPaint/Tools/TextTool.cpp
  36. 1 1
      Userland/Applications/PixelPaint/Tools/TextTool.h
  37. 1 1
      Userland/Applications/PixelPaint/Tools/Tool.h
  38. 7 7
      Userland/Applications/PixelPaint/Tools/WandSelectTool.cpp
  39. 1 1
      Userland/Applications/PixelPaint/Tools/WandSelectTool.h
  40. 2 2
      Userland/Applications/PixelPaint/Tools/ZoomTool.cpp
  41. 1 1
      Userland/Applications/PixelPaint/Tools/ZoomTool.h

+ 1 - 13
Userland/Applications/PixelPaint/ToolPropertiesWidget.cpp

@@ -22,7 +22,6 @@ ToolPropertiesWidget::ToolPropertiesWidget()
     m_group_box = add<GUI::GroupBox>("Tool properties"sv);
     m_group_box->set_layout<GUI::VerticalBoxLayout>(8);
     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->set_enabled(false);
 }
@@ -33,18 +32,7 @@ void ToolPropertiesWidget::set_active_tool(Tool* tool)
         return;
 
     m_active_tool = tool;
-    auto active_tool_widget_or_error = 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;
-    }
+    m_active_tool_widget = tool->get_properties_widget();
 
     if (!m_tool_widget_stack->is_ancestor_of(*m_active_tool_widget))
         m_tool_widget_stack->add_child(*m_active_tool_widget);

+ 0 - 1
Userland/Applications/PixelPaint/ToolPropertiesWidget.h

@@ -31,7 +31,6 @@ private:
 
     Tool* m_active_tool { nullptr };
     RefPtr<GUI::StackWidget> m_tool_widget_stack;
-    RefPtr<GUI::Widget> m_blank_widget;
     RefPtr<GUI::Label> m_error_label;
     GUI::Widget* m_active_tool_widget { nullptr };
 };

+ 2 - 2
Userland/Applications/PixelPaint/Tools/BrushTool.cpp

@@ -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) {
         auto properties_widget = GUI::Widget::construct();
@@ -348,7 +348,7 @@ ErrorOr<GUI::Widget*> BrushTool::get_properties_widget()
         m_properties_widget = properties_widget;
     }
 
-    return m_properties_widget.ptr();
+    return *m_properties_widget;
 }
 
 NonnullRefPtr<Gfx::Bitmap> BrushTool::build_cursor()

+ 1 - 1
Userland/Applications/PixelPaint/Tools/BrushTool.h

@@ -22,7 +22,7 @@ public:
     virtual void on_mousedown(Layer*, MouseEvent&) override;
     virtual void on_mousemove(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
     {
         if (m_editor && m_editor->scale() != m_scale_last_created_cursor)

+ 2 - 2
Userland/Applications/PixelPaint/Tools/BucketTool.cpp

@@ -61,7 +61,7 @@ void BucketTool::on_mousedown(Layer* layer, MouseEvent& event)
     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) {
         auto properties_widget = GUI::Widget::construct();
@@ -86,7 +86,7 @@ ErrorOr<GUI::Widget*> BucketTool::get_properties_widget()
         m_properties_widget = properties_widget;
     }
 
-    return m_properties_widget.ptr();
+    return *m_properties_widget;
 }
 
 }

+ 1 - 1
Userland/Applications/PixelPaint/Tools/BucketTool.h

@@ -17,7 +17,7 @@ public:
     virtual ~BucketTool() override = default;
 
     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; }
 
 private:

+ 2 - 2
Userland/Applications/PixelPaint/Tools/CloneTool.cpp

@@ -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) {
         auto properties_widget = GUI::Widget::construct();
@@ -168,7 +168,7 @@ ErrorOr<GUI::Widget*> CloneTool::get_properties_widget()
         m_properties_widget = properties_widget;
     }
 
-    return m_properties_widget.ptr();
+    return *m_properties_widget;
 }
 
 Optional<Gfx::IntRect> CloneTool::sample_marker_rect()

+ 1 - 1
Userland/Applications/PixelPaint/Tools/CloneTool.h

@@ -15,7 +15,7 @@ public:
     CloneTool() = 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 bool is_overriding_alt() override { return true; }

+ 2 - 2
Userland/Applications/PixelPaint/Tools/EllipseTool.cpp

@@ -126,7 +126,7 @@ bool EllipseTool::on_keydown(GUI::KeyEvent& event)
     return Tool::on_keydown(event);
 }
 
-ErrorOr<GUI::Widget*> EllipseTool::get_properties_widget()
+NonnullRefPtr<GUI::Widget> EllipseTool::get_properties_widget()
 {
     if (!m_properties_widget) {
         auto properties_widget = GUI::Widget::construct();
@@ -208,7 +208,7 @@ ErrorOr<GUI::Widget*> EllipseTool::get_properties_widget()
         m_properties_widget = properties_widget;
     }
 
-    return m_properties_widget.ptr();
+    return *m_properties_widget;
 }
 
 }

+ 1 - 1
Userland/Applications/PixelPaint/Tools/EllipseTool.h

@@ -25,7 +25,7 @@ public:
     virtual void on_mouseup(Layer*, MouseEvent&) override;
     virtual void on_second_paint(Layer const*, GUI::PaintEvent&) 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; }
 
 private:

+ 2 - 2
Userland/Applications/PixelPaint/Tools/EraseTool.cpp

@@ -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) {
         auto properties_widget = GUI::Widget::construct();
@@ -135,7 +135,7 @@ ErrorOr<GUI::Widget*> EraseTool::get_properties_widget()
         m_properties_widget = properties_widget;
     }
 
-    return m_properties_widget.ptr();
+    return *m_properties_widget;
 }
 
 NonnullRefPtr<Gfx::Bitmap> EraseTool::build_cursor()

+ 1 - 1
Userland/Applications/PixelPaint/Tools/EraseTool.h

@@ -20,7 +20,7 @@ public:
     EraseTool() = default;
     virtual ~EraseTool() override = default;
 
-    virtual ErrorOr<GUI::Widget*> get_properties_widget() override;
+    virtual NonnullRefPtr<GUI::Widget> get_properties_widget() override;
 
 protected:
     virtual Color color_for(GUI::MouseEvent const& event) override;

+ 2 - 2
Userland/Applications/PixelPaint/Tools/GradientTool.cpp

@@ -198,7 +198,7 @@ void GradientTool::on_tool_activation()
     reset();
 }
 
-ErrorOr<GUI::Widget*> GradientTool::get_properties_widget()
+NonnullRefPtr<GUI::Widget> GradientTool::get_properties_widget()
 {
     if (!m_properties_widget) {
         auto properties_widget = GUI::Widget::construct();
@@ -304,7 +304,7 @@ ErrorOr<GUI::Widget*> GradientTool::get_properties_widget()
         m_properties_widget = properties_widget;
     }
 
-    return m_properties_widget.ptr();
+    return *m_properties_widget;
 }
 
 void GradientTool::rasterize_gradient()

+ 1 - 1
Userland/Applications/PixelPaint/Tools/GradientTool.h

@@ -23,7 +23,7 @@ public:
     virtual void on_primary_color_change(Color) override;
     virtual void on_secondary_color_change(Color) 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 void on_second_paint(Layer const*, GUI::PaintEvent&) override;

+ 2 - 2
Userland/Applications/PixelPaint/Tools/GuideTool.cpp

@@ -176,7 +176,7 @@ void GuideTool::on_tool_activation()
         m_editor->set_guide_visibility(true);
 }
 
-ErrorOr<GUI::Widget*> GuideTool::get_properties_widget()
+NonnullRefPtr<GUI::Widget> GuideTool::get_properties_widget()
 {
     if (!m_properties_widget) {
         auto properties_widget = GUI::Widget::construct();
@@ -202,7 +202,7 @@ ErrorOr<GUI::Widget*> GuideTool::get_properties_widget()
         m_properties_widget = properties_widget;
     }
 
-    return m_properties_widget.ptr();
+    return *m_properties_widget;
 }
 
 }

+ 1 - 1
Userland/Applications/PixelPaint/Tools/GuideTool.h

@@ -27,7 +27,7 @@ public:
 
     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; }
 
 private:

+ 3 - 3
Userland/Applications/PixelPaint/Tools/LassoSelectTool.cpp

@@ -154,10 +154,10 @@ bool LassoSelectTool::on_keydown(GUI::KeyEvent& 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) {
-        return m_properties_widget.ptr();
+        return *m_properties_widget.ptr();
     }
 
     auto properties_widget = GUI::Widget::construct();
@@ -207,7 +207,7 @@ ErrorOr<GUI::Widget*> LassoSelectTool::get_properties_widget()
     };
 
     m_properties_widget = properties_widget;
-    return m_properties_widget.ptr();
+    return *m_properties_widget;
 }
 
 }

+ 1 - 1
Userland/Applications/PixelPaint/Tools/LassoSelectTool.h

@@ -25,7 +25,7 @@ public:
     virtual void on_mousemove(Layer*, MouseEvent& event) override;
     virtual bool on_keydown(GUI::KeyEvent&) 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; }
 
 private:

+ 2 - 2
Userland/Applications/PixelPaint/Tools/LineTool.cpp

@@ -119,7 +119,7 @@ bool LineTool::on_keydown(GUI::KeyEvent& event)
     return Tool::on_keydown(event);
 }
 
-ErrorOr<GUI::Widget*> LineTool::get_properties_widget()
+NonnullRefPtr<GUI::Widget> LineTool::get_properties_widget()
 {
     if (!m_properties_widget) {
         auto properties_widget = GUI::Widget::construct();
@@ -158,7 +158,7 @@ ErrorOr<GUI::Widget*> LineTool::get_properties_widget()
         m_properties_widget = properties_widget;
     }
 
-    return m_properties_widget.ptr();
+    return *m_properties_widget;
 }
 
 }

+ 1 - 1
Userland/Applications/PixelPaint/Tools/LineTool.h

@@ -23,7 +23,7 @@ public:
     virtual void on_mouseup(Layer*, MouseEvent&) override;
     virtual void on_second_paint(Layer const*, GUI::PaintEvent&) 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; }
 
     void draw_using(GUI::Painter&, Gfx::IntPoint start_position, Gfx::IntPoint end_position, Color color, int thickness);

+ 2 - 2
Userland/Applications/PixelPaint/Tools/MoveTool.cpp

@@ -289,7 +289,7 @@ Variant<Gfx::StandardCursor, NonnullRefPtr<Gfx::Bitmap const>> MoveTool::cursor(
     return Gfx::StandardCursor::Move;
 }
 
-ErrorOr<GUI::Widget*> MoveTool::get_properties_widget()
+NonnullRefPtr<GUI::Widget> MoveTool::get_properties_widget()
 {
     if (!m_properties_widget) {
         auto properties_widget = GUI::Widget::construct();
@@ -319,7 +319,7 @@ ErrorOr<GUI::Widget*> MoveTool::get_properties_widget()
         m_properties_widget = properties_widget;
     }
 
-    return m_properties_widget.ptr();
+    return *m_properties_widget;
 }
 
 void MoveTool::toggle_selection_mode()

+ 1 - 1
Userland/Applications/PixelPaint/Tools/MoveTool.h

@@ -35,7 +35,7 @@ public:
     virtual bool on_keydown(GUI::KeyEvent&) override;
     virtual void on_keyup(GUI::KeyEvent&) 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 bool is_overriding_alt() override { return true; }
     LayerSelectionMode layer_selection_mode() const { return m_layer_selection_mode; }

+ 2 - 2
Userland/Applications/PixelPaint/Tools/PenTool.cpp

@@ -35,7 +35,7 @@ void PenTool::draw_line(Gfx::Bitmap& bitmap, Gfx::Color color, Gfx::IntPoint sta
     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) {
         auto properties_widget = GUI::Widget::construct();
@@ -60,7 +60,7 @@ ErrorOr<GUI::Widget*> PenTool::get_properties_widget()
         m_properties_widget = properties_widget;
     }
 
-    return m_properties_widget.ptr();
+    return *m_properties_widget;
 }
 
 }

+ 1 - 1
Userland/Applications/PixelPaint/Tools/PenTool.h

@@ -19,7 +19,7 @@ public:
     PenTool();
     virtual ~PenTool() override = default;
     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:
     virtual void draw_point(Gfx::Bitmap& bitmap, Gfx::Color color, Gfx::IntPoint point) override;

+ 2 - 2
Userland/Applications/PixelPaint/Tools/PickerTool.cpp

@@ -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);
 }
 
-ErrorOr<GUI::Widget*> PickerTool::get_properties_widget()
+NonnullRefPtr<GUI::Widget> PickerTool::get_properties_widget()
 {
     if (!m_properties_widget) {
         auto properties_widget = GUI::Widget::construct();
@@ -55,7 +55,7 @@ ErrorOr<GUI::Widget*> PickerTool::get_properties_widget()
         m_properties_widget = properties_widget;
     }
 
-    return m_properties_widget.ptr();
+    return *m_properties_widget;
 }
 
 }

+ 1 - 1
Userland/Applications/PixelPaint/Tools/PickerTool.h

@@ -21,7 +21,7 @@ public:
     virtual void on_mouseup(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; }
 
 private:

+ 3 - 3
Userland/Applications/PixelPaint/Tools/PolygonalSelectTool.cpp

@@ -184,10 +184,10 @@ bool PolygonalSelectTool::on_keydown(GUI::KeyEvent& 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)
-        return m_properties_widget.ptr();
+        return *m_properties_widget.ptr();
 
     auto properties_widget = GUI::Widget::construct();
     properties_widget->set_layout<GUI::VerticalBoxLayout>();
@@ -236,7 +236,7 @@ ErrorOr<GUI::Widget*> PolygonalSelectTool::get_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

+ 1 - 1
Userland/Applications/PixelPaint/Tools/PolygonalSelectTool.h

@@ -22,7 +22,7 @@ public:
     virtual void on_mousemove(Layer*, MouseEvent& event) override;
     virtual bool on_keydown(GUI::KeyEvent&) 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 Gfx::IntPoint point_position_to_preferred_cell(Gfx::FloatPoint position) const override;
 

+ 7 - 7
Userland/Applications/PixelPaint/Tools/RectangleSelectTool.cpp

@@ -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>());
 }
 
-ErrorOr<GUI::Widget*> RectangleSelectTool::get_properties_widget()
+NonnullRefPtr<GUI::Widget> RectangleSelectTool::get_properties_widget()
 {
     if (m_properties_widget) {
-        return m_properties_widget.ptr();
+        return *m_properties_widget.ptr();
     }
 
     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++) {
         switch ((Selection::MergeMode)i) {
         case Selection::MergeMode::Set:
-            TRY(m_merge_mode_names.try_append("Set"));
+            m_merge_mode_names.append("Set");
             break;
         case Selection::MergeMode::Add:
-            TRY(m_merge_mode_names.try_append("Add"));
+            m_merge_mode_names.append("Add");
             break;
         case Selection::MergeMode::Subtract:
-            TRY(m_merge_mode_names.try_append("Subtract"));
+            m_merge_mode_names.append("Subtract");
             break;
         case Selection::MergeMode::Intersect:
-            TRY(m_merge_mode_names.try_append("Intersect"));
+            m_merge_mode_names.append("Intersect");
             break;
         default:
             VERIFY_NOT_REACHED();
@@ -219,7 +219,7 @@ ErrorOr<GUI::Widget*> RectangleSelectTool::get_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

+ 1 - 1
Userland/Applications/PixelPaint/Tools/RectangleSelectTool.h

@@ -26,7 +26,7 @@ public:
     virtual bool on_keydown(GUI::KeyEvent&) override;
     virtual void on_keyup(GUI::KeyEvent&) 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 Gfx::IntPoint point_position_to_preferred_cell(Gfx::FloatPoint position) const override;
 

+ 2 - 2
Userland/Applications/PixelPaint/Tools/RectangleTool.cpp

@@ -140,7 +140,7 @@ bool RectangleTool::on_keydown(GUI::KeyEvent& event)
     return Tool::on_keydown(event);
 }
 
-ErrorOr<GUI::Widget*> RectangleTool::get_properties_widget()
+NonnullRefPtr<GUI::Widget> RectangleTool::get_properties_widget()
 {
     if (!m_properties_widget) {
         auto properties_widget = GUI::Widget::construct();
@@ -258,7 +258,7 @@ ErrorOr<GUI::Widget*> RectangleTool::get_properties_widget()
         m_properties_widget = properties_widget;
     }
 
-    return m_properties_widget.ptr();
+    return *m_properties_widget;
 }
 
 }

+ 1 - 1
Userland/Applications/PixelPaint/Tools/RectangleTool.h

@@ -24,7 +24,7 @@ public:
     virtual void on_mouseup(Layer*, MouseEvent&) override;
     virtual void on_second_paint(Layer const*, GUI::PaintEvent&) 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; }
 
 private:

+ 2 - 2
Userland/Applications/PixelPaint/Tools/SprayTool.cpp

@@ -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) {
         auto properties_widget = GUI::Widget::construct();
@@ -132,7 +132,7 @@ ErrorOr<GUI::Widget*> SprayTool::get_properties_widget()
         m_properties_widget = properties_widget;
     }
 
-    return m_properties_widget.ptr();
+    return *m_properties_widget;
 }
 
 }

+ 1 - 1
Userland/Applications/PixelPaint/Tools/SprayTool.h

@@ -22,7 +22,7 @@ public:
     virtual void on_mousedown(Layer*, MouseEvent&) override;
     virtual void on_mouseup(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; }
 
 private:

+ 3 - 3
Userland/Applications/PixelPaint/Tools/TextTool.cpp

@@ -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)
-        return m_properties_widget.ptr();
+        return *m_properties_widget.ptr();
 
     auto properties_widget = GUI::Widget::construct();
     properties_widget->set_layout<GUI::VerticalBoxLayout>();
@@ -128,7 +128,7 @@ ErrorOr<GUI::Widget*> TextTool::get_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)

+ 1 - 1
Userland/Applications/PixelPaint/Tools/TextTool.h

@@ -41,7 +41,7 @@ public:
     virtual void on_primary_color_change(Color) override;
     virtual void on_tool_deactivation() 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:
     virtual StringView tool_name() const override { return "Text Tool"sv; }

+ 1 - 1
Userland/Applications/PixelPaint/Tools/Tool.h

@@ -67,7 +67,7 @@ public:
     virtual void on_secondary_color_change(Color) { }
     virtual void on_tool_activation() { }
     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 Gfx::IntPoint point_position_to_preferred_cell(Gfx::FloatPoint position) const { return position.to_type<int>(); }
 

+ 7 - 7
Userland/Applications/PixelPaint/Tools/WandSelectTool.cpp

@@ -66,10 +66,10 @@ void WandSelectTool::on_mousedown(Layer* layer, MouseEvent& event)
     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) {
-        return m_properties_widget.ptr();
+        return *m_properties_widget.ptr();
     }
 
     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++) {
         switch ((Selection::MergeMode)i) {
         case Selection::MergeMode::Set:
-            TRY(m_merge_mode_names.try_append("Set"));
+            m_merge_mode_names.append("Set");
             break;
         case Selection::MergeMode::Add:
-            TRY(m_merge_mode_names.try_append("Add"));
+            m_merge_mode_names.append("Add");
             break;
         case Selection::MergeMode::Subtract:
-            TRY(m_merge_mode_names.try_append("Subtract"));
+            m_merge_mode_names.append("Subtract");
             break;
         case Selection::MergeMode::Intersect:
-            TRY(m_merge_mode_names.try_append("Intersect"));
+            m_merge_mode_names.append("Intersect");
             break;
         default:
             VERIFY_NOT_REACHED();
@@ -132,7 +132,7 @@ ErrorOr<GUI::Widget*> WandSelectTool::get_properties_widget()
     };
 
     m_properties_widget = properties_widget;
-    return m_properties_widget.ptr();
+    return *m_properties_widget;
 }
 
 }

+ 1 - 1
Userland/Applications/PixelPaint/Tools/WandSelectTool.h

@@ -23,7 +23,7 @@ public:
 
     virtual void on_mousedown(Layer*, MouseEvent& event) 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; }
 
 private:

+ 2 - 2
Userland/Applications/PixelPaint/Tools/ZoomTool.cpp

@@ -23,7 +23,7 @@ void ZoomTool::on_mousedown(Layer*, MouseEvent& event)
     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) {
         auto properties_widget = GUI::Widget::construct();
@@ -48,7 +48,7 @@ ErrorOr<GUI::Widget*> ZoomTool::get_properties_widget()
         m_properties_widget = properties_widget;
     }
 
-    return m_properties_widget.ptr();
+    return *m_properties_widget;
 }
 
 }

+ 1 - 1
Userland/Applications/PixelPaint/Tools/ZoomTool.h

@@ -18,7 +18,7 @@ public:
     virtual ~ZoomTool() override = default;
 
     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; }
 
 private: