mirror of
https://github.com/RGBCube/serenity
synced 2025-06-01 10:08:10 +00:00
SystemMonitor: Add args parsing for opening a specific tab
This allows SystemMonitor to parse -t or -open-tab argument to open a specific tab. (ex. network, interrupts etc.)
This commit is contained in:
parent
d0adaf4465
commit
124518a14a
1 changed files with 40 additions and 10 deletions
|
@ -35,6 +35,7 @@
|
|||
#include "ProcessUnveiledPathsWidget.h"
|
||||
#include "ThreadStackWidget.h"
|
||||
#include <AK/NumberFormat.h>
|
||||
#include <LibCore/ArgsParser.h>
|
||||
#include <LibCore/Timer.h>
|
||||
#include <LibGUI/Action.h>
|
||||
#include <LibGUI/ActionGroup.h>
|
||||
|
@ -153,6 +154,12 @@ int main(int argc, char** argv)
|
|||
|
||||
unveil(nullptr, nullptr);
|
||||
|
||||
const char* args_tab = "processes";
|
||||
Core::ArgsParser parser;
|
||||
parser.add_option(args_tab, "Tab, one of 'processes', 'graphs', 'fs', 'pci', 'devices', 'network', 'processors' or 'interrupts'", "open-tab", 't', "tab");
|
||||
parser.parse(argc, argv);
|
||||
StringView args_tab_view = args_tab;
|
||||
|
||||
auto app_icon = GUI::Icon::default_icon("app-system-monitor");
|
||||
|
||||
auto window = GUI::Window::construct();
|
||||
|
@ -166,23 +173,29 @@ int main(int argc, char** argv)
|
|||
|
||||
auto& tabwidget = keeper.add<GUI::TabWidget>();
|
||||
|
||||
auto& process_container_splitter = tabwidget.add_tab<GUI::VerticalSplitter>("Processes");
|
||||
process_container_splitter.layout()->set_margins({ 4, 4, 4, 4 });
|
||||
auto process_container_splitter = GUI::VerticalSplitter::construct();
|
||||
tabwidget.add_widget("Processes", process_container_splitter);
|
||||
process_container_splitter->layout()->set_margins({ 4, 4, 4, 4 });
|
||||
|
||||
auto& process_table_container = process_container_splitter.add<GUI::Widget>();
|
||||
auto& process_table_container = process_container_splitter->add<GUI::Widget>();
|
||||
|
||||
tabwidget.add_widget("Graphs", build_graphs_tab());
|
||||
auto graphs_widget = build_graphs_tab();
|
||||
tabwidget.add_widget("Graphs", graphs_widget);
|
||||
|
||||
tabwidget.add_widget("File systems", build_file_systems_tab());
|
||||
auto file_systems_widget = build_file_systems_tab();
|
||||
tabwidget.add_widget("File systems", file_systems_widget);
|
||||
|
||||
tabwidget.add_widget("PCI devices", build_pci_devices_tab());
|
||||
auto pci_devices_widget = build_pci_devices_tab();
|
||||
tabwidget.add_widget("PCI devices", pci_devices_widget);
|
||||
|
||||
tabwidget.add_widget("Devices", build_devices_tab());
|
||||
auto devices_widget = build_devices_tab();
|
||||
tabwidget.add_widget("Devices", devices_widget);
|
||||
|
||||
auto network_stats_widget = NetworkStatisticsWidget::construct();
|
||||
tabwidget.add_widget("Network", network_stats_widget);
|
||||
|
||||
tabwidget.add_widget("Processors", build_processors_tab());
|
||||
auto processors_widget = build_processors_tab();
|
||||
tabwidget.add_widget("Processors", processors_widget);
|
||||
|
||||
auto interrupts_widget = InterruptsWidget::construct();
|
||||
tabwidget.add_widget("Interrupts", interrupts_widget);
|
||||
|
@ -308,10 +321,10 @@ int main(int argc, char** argv)
|
|||
|
||||
app->set_menubar(move(menubar));
|
||||
|
||||
auto& process_tab_unused_widget = process_container_splitter.add<UnavailableProcessWidget>("No process selected");
|
||||
auto& process_tab_unused_widget = process_container_splitter->add<UnavailableProcessWidget>("No process selected");
|
||||
process_tab_unused_widget.set_visible(true);
|
||||
|
||||
auto& process_tab_widget = process_container_splitter.add<GUI::TabWidget>();
|
||||
auto& process_tab_widget = process_container_splitter->add<GUI::TabWidget>();
|
||||
process_tab_widget.set_tab_position(GUI::TabWidget::TabPosition::Bottom);
|
||||
process_tab_widget.set_visible(false);
|
||||
|
||||
|
@ -342,6 +355,23 @@ int main(int argc, char** argv)
|
|||
|
||||
window->set_icon(app_icon.bitmap_for_size(16));
|
||||
|
||||
if (args_tab_view == "processes")
|
||||
tabwidget.set_active_widget(process_container_splitter);
|
||||
else if (args_tab_view == "graphs")
|
||||
tabwidget.set_active_widget(graphs_widget);
|
||||
else if (args_tab_view == "fs")
|
||||
tabwidget.set_active_widget(file_systems_widget);
|
||||
else if (args_tab_view == "pci")
|
||||
tabwidget.set_active_widget(pci_devices_widget);
|
||||
else if (args_tab_view == "devices")
|
||||
tabwidget.set_active_widget(devices_widget);
|
||||
else if (args_tab_view == "network")
|
||||
tabwidget.set_active_widget(network_stats_widget);
|
||||
else if (args_tab_view == "processors")
|
||||
tabwidget.set_active_widget(processors_widget);
|
||||
else if (args_tab_view == "interrupts")
|
||||
tabwidget.set_active_widget(interrupts_widget);
|
||||
|
||||
return app->exec();
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue