Quellcode durchsuchen

SystemMonitor: Remove all remaining naked "new" usage

Andreas Kling vor 5 Jahren
Ursprung
Commit
f57cc5873c

+ 3 - 1
Applications/SystemMonitor/GraphWidget.h

@@ -2,8 +2,8 @@
 #include <LibGUI/GFrame.h>
 
 class GraphWidget final : public GFrame {
+    C_OBJECT(GraphWidget)
 public:
-    explicit GraphWidget(GWidget* parent);
     virtual ~GraphWidget() override;
 
     void set_max(int max) { m_max = max; }
@@ -15,6 +15,8 @@ public:
     Function<String(int value, int max)> text_formatter;
 
 private:
+    explicit GraphWidget(GWidget* parent);
+
     virtual void paint_event(GPaintEvent&) override;
 
     int m_max { 100 };

+ 1 - 0
Applications/SystemMonitor/MemoryStatsWidget.h

@@ -7,6 +7,7 @@ class GLabel;
 class GraphWidget;
 
 class MemoryStatsWidget final : public GWidget {
+    C_OBJECT(MemoryStatsWidget)
 public:
     MemoryStatsWidget(GraphWidget& graph, GWidget* parent);
     virtual ~MemoryStatsWidget() override;

+ 1 - 1
Applications/SystemMonitor/NetworkStatisticsWidget.h

@@ -8,10 +8,10 @@ class GTableView;
 class NetworkStatisticsWidget final : public GWidget {
     C_OBJECT(NetworkStatisticsWidget)
 public:
-    explicit NetworkStatisticsWidget(GWidget* parent = nullptr);
     virtual ~NetworkStatisticsWidget() override;
 
 private:
+    explicit NetworkStatisticsWidget(GWidget* parent = nullptr);
     void update_models();
 
     ObjectPtr<GTableView> m_adapter_table_view;

+ 2 - 1
Applications/SystemMonitor/ProcessFileDescriptorMapWidget.h

@@ -7,12 +7,13 @@ class GTableView;
 class ProcessFileDescriptorMapWidget final : public GWidget {
     C_OBJECT(ProcessFileDescriptorMapWidget);
 public:
-    explicit ProcessFileDescriptorMapWidget(GWidget* parent);
     virtual ~ProcessFileDescriptorMapWidget() override;
 
     void set_pid(pid_t);
 
 private:
+    explicit ProcessFileDescriptorMapWidget(GWidget* parent);
+
     ObjectPtr<GTableView> m_table_view;
     pid_t m_pid { -1 };
 };

+ 1 - 1
Applications/SystemMonitor/ProcessMemoryMapWidget.h

@@ -7,12 +7,12 @@ class GTableView;
 class ProcessMemoryMapWidget final : public GWidget {
     C_OBJECT(ProcessMemoryMapWidget);
 public:
-    explicit ProcessMemoryMapWidget(GWidget* parent);
     virtual ~ProcessMemoryMapWidget() override;
 
     void set_pid(pid_t);
 
 private:
+    explicit ProcessMemoryMapWidget(GWidget* parent);
     ObjectPtr<GTableView> m_table_view;
     pid_t m_pid { -1 };
 };

+ 4 - 1
Applications/SystemMonitor/ProcessTableView.h

@@ -8,8 +8,8 @@ class GraphWidget;
 class ProcessModel;
 
 class ProcessTableView final : public GTableView {
+    C_OBJECT(ProcessTableView)
 public:
-    ProcessTableView(GraphWidget&, GWidget* parent);
     virtual ~ProcessTableView() override;
 
     pid_t selected_pid() const;
@@ -17,4 +17,7 @@ public:
     void refresh();
 
     Function<void(pid_t)> on_process_selected;
+
+private:
+    ProcessTableView(GraphWidget&, GWidget* parent);
 };

+ 11 - 11
Applications/SystemMonitor/main.cpp

@@ -53,7 +53,7 @@ int main(int argc, char** argv)
     keeper->set_background_color(Color::WarmGray);
     keeper->layout()->set_margins({ 4, 4, 4, 4 });
 
-    auto* tabwidget = new GTabWidget(keeper);
+    auto tabwidget = GTabWidget::construct(keeper);
 
     auto process_container_splitter = GSplitter::construct(Orientation::Vertical, nullptr);
     tabwidget->add_widget("Processes", process_container_splitter);
@@ -71,7 +71,7 @@ int main(int argc, char** argv)
     cpu_graph_group_box->layout()->set_margins({ 6, 16, 6, 6 });
     cpu_graph_group_box->set_size_policy(SizePolicy::Fill, SizePolicy::Fixed);
     cpu_graph_group_box->set_preferred_size(0, 120);
-    auto* cpu_graph = new GraphWidget(cpu_graph_group_box);
+    auto cpu_graph = GraphWidget::construct(cpu_graph_group_box);
     cpu_graph->set_max(100);
     cpu_graph->set_text_color(Color::Green);
     cpu_graph->set_graph_color(Color::from_rgb(0x00bb00));
@@ -84,7 +84,7 @@ int main(int argc, char** argv)
     memory_graph_group_box->layout()->set_margins({ 6, 16, 6, 6 });
     memory_graph_group_box->set_size_policy(SizePolicy::Fill, SizePolicy::Fixed);
     memory_graph_group_box->set_preferred_size(0, 120);
-    auto* memory_graph = new GraphWidget(memory_graph_group_box);
+    auto memory_graph = GraphWidget::construct(memory_graph_group_box);
     memory_graph->set_text_color(Color::Cyan);
     memory_graph->set_graph_color(Color::from_rgb(0x00bbbb));
     memory_graph->text_formatter = [](int value, int max) {
@@ -99,7 +99,7 @@ int main(int argc, char** argv)
 
     tabwidget->add_widget("Devices", build_devices_tab());
 
-    auto* network_stats_widget = new NetworkStatisticsWidget(nullptr);
+    auto network_stats_widget = NetworkStatisticsWidget::construct(nullptr);
     tabwidget->add_widget("Network", network_stats_widget);
 
     process_table_container->set_layout(make<GBoxLayout>(Orientation::Vertical));
@@ -108,8 +108,8 @@ int main(int argc, char** argv)
 
     auto toolbar = GToolBar::construct(process_table_container);
     toolbar->set_has_frame(false);
-    auto* process_table_view = new ProcessTableView(*cpu_graph, process_table_container);
-    auto* memory_stats_widget = new MemoryStatsWidget(*memory_graph, graphs_container);
+    auto process_table_view = ProcessTableView::construct(*cpu_graph, process_table_container);
+    auto memory_stats_widget = MemoryStatsWidget::construct(*memory_graph, graphs_container);
 
     auto refresh_timer = CTimer::construct(1000, [&] {
         process_table_view->refresh();
@@ -138,7 +138,7 @@ int main(int argc, char** argv)
     toolbar->add_action(stop_action);
     toolbar->add_action(continue_action);
 
-    auto* window = new GWindow;
+    auto window = GWindow::construct();
     window->set_title("System Monitor");
     window->set_rect(20, 200, 680, 400);
     window->set_main_widget(keeper);
@@ -192,15 +192,15 @@ int main(int argc, char** argv)
 
     app.set_menubar(move(menubar));
 
-    auto* process_tab_widget = new GTabWidget(process_container_splitter);
+    auto process_tab_widget = GTabWidget::construct(process_container_splitter);
 
-    auto* open_files_widget = new ProcessFileDescriptorMapWidget(nullptr);
+    auto open_files_widget = ProcessFileDescriptorMapWidget::construct(nullptr);
     process_tab_widget->add_widget("Open files", open_files_widget);
 
-    auto* memory_map_widget = new ProcessMemoryMapWidget(nullptr);
+    auto memory_map_widget = ProcessMemoryMapWidget::construct(nullptr);
     process_tab_widget->add_widget("Memory map", memory_map_widget);
 
-    auto* stacks_widget = new ProcessStacksWidget(nullptr);
+    auto stacks_widget = ProcessStacksWidget::construct(nullptr);
     process_tab_widget->add_widget("Stacks", stacks_widget);
 
     process_table_view->on_process_selected = [&](pid_t pid) {