diff options
author | creator1creeper1 <creator1creeper1@airmail.cc> | 2021-12-25 13:50:43 +0100 |
---|---|---|
committer | Andreas Kling <kling@serenityos.org> | 2022-01-03 16:01:42 +0100 |
commit | e46f08ff33c4b75acc6d3f54b25d2b462ac60e9f (patch) | |
tree | 408ba6d1bbcbd9e4ed8d04768ba193ff28359a3a /Userland/Applets/Network | |
parent | f125d52622110ba5b813498e0d7b1eb705e535ef (diff) | |
download | serenity-e46f08ff33c4b75acc6d3f54b25d2b462ac60e9f.zip |
Applets/Network: Propagate errors using custom try_create
We now move-construct the bitmaps into the NetworkWidget.
Diffstat (limited to 'Userland/Applets/Network')
-rw-r--r-- | Userland/Applets/Network/main.cpp | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/Userland/Applets/Network/main.cpp b/Userland/Applets/Network/main.cpp index 9e3d38085f..35fcbf6695 100644 --- a/Userland/Applets/Network/main.cpp +++ b/Userland/Applets/Network/main.cpp @@ -20,10 +20,20 @@ #include <stdio.h> class NetworkWidget final : public GUI::ImageWidget { - C_OBJECT(NetworkWidget); + C_OBJECT_ABSTRACT(NetworkWidget) + +public: + static ErrorOr<NonnullRefPtr<NetworkWidget>> try_create(bool notifications) + { + NonnullRefPtr<Gfx::Bitmap> connected_icon = TRY(Gfx::Bitmap::try_load_from_file("/res/icons/16x16/network.png")); + NonnullRefPtr<Gfx::Bitmap> disconnected_icon = TRY(Gfx::Bitmap::try_load_from_file("/res/icons/16x16/network-disconnected.png")); + return adopt_nonnull_ref_or_enomem(new (nothrow) NetworkWidget(notifications, move(connected_icon), move(disconnected_icon))); + } private: - NetworkWidget(bool notifications) + NetworkWidget(bool notifications, NonnullRefPtr<Gfx::Bitmap> connected_icon, NonnullRefPtr<Gfx::Bitmap> disconnected_icon) + : m_connected_icon(move(connected_icon)) + , m_disconnected_icon(move(disconnected_icon)) { m_notifications = notifications; update_widget(); @@ -153,8 +163,8 @@ private: String m_adapter_info; bool m_connected = false; bool m_notifications = true; - RefPtr<Gfx::Bitmap> m_connected_icon = Gfx::Bitmap::try_load_from_file("/res/icons/16x16/network.png").release_value_but_fixme_should_propagate_errors(); - RefPtr<Gfx::Bitmap> m_disconnected_icon = Gfx::Bitmap::try_load_from_file("/res/icons/16x16/network-disconnected.png").release_value_but_fixme_should_propagate_errors(); + NonnullRefPtr<Gfx::Bitmap> m_connected_icon; + NonnullRefPtr<Gfx::Bitmap> m_disconnected_icon; }; ErrorOr<int> serenity_main(Main::Arguments arguments) |