summaryrefslogtreecommitdiff
path: root/Userland/Applets/Network
diff options
context:
space:
mode:
authorcreator1creeper1 <creator1creeper1@airmail.cc>2021-12-25 13:50:43 +0100
committerAndreas Kling <kling@serenityos.org>2022-01-03 16:01:42 +0100
commite46f08ff33c4b75acc6d3f54b25d2b462ac60e9f (patch)
tree408ba6d1bbcbd9e4ed8d04768ba193ff28359a3a /Userland/Applets/Network
parentf125d52622110ba5b813498e0d7b1eb705e535ef (diff)
downloadserenity-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.cpp18
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)