ladybird/DevTools/ProfileViewer/main.cpp
Ohad Rau 3809da4abb ProfileViewer: Make initial invert checkbox match initial tree view
The "Invert tree" checkbox was accidentally defaulted to display true when the actual tree wasn't being inverted, causing the checkbox to say the opposite of the tree state initially. This change just brings the visual indicator in line with what the code is actually doing.
2019-12-17 07:25:50 +01:00

66 lines
1.9 KiB
C++

#include "Profile.h"
#include "ProfileTimelineWidget.h"
#include <LibGUI/GAction.h>
#include <LibGUI/GApplication.h>
#include <LibGUI/GBoxLayout.h>
#include <LibGUI/GMenu.h>
#include <LibGUI/GMenuBar.h>
#include <LibGUI/GTreeView.h>
#include <LibGUI/GWindow.h>
#include <stdio.h>
int main(int argc, char** argv)
{
if (argc != 2) {
printf("usage: %s <profile-file>\n", argv[0]);
return 0;
}
const char* path = argv[1];
auto profile = Profile::load_from_file(path);
if (!profile) {
fprintf(stderr, "Unable to load profile '%s'\n", path);
return 1;
}
GApplication app(argc, argv);
auto window = GWindow::construct();
window->set_title("ProfileViewer");
window->set_rect(100, 100, 800, 600);
auto main_widget = GWidget::construct();
window->set_main_widget(main_widget);
main_widget->set_fill_with_background_color(true);
main_widget->set_layout(make<GBoxLayout>(Orientation::Vertical));
auto timeline_widget = ProfileTimelineWidget::construct(*profile, main_widget);
auto tree_view = GTreeView::construct(main_widget);
tree_view->set_headers_visible(true);
tree_view->set_size_columns_to_fit_content(true);
tree_view->set_model(profile->model());
auto menubar = make<GMenuBar>();
auto app_menu = GMenu::construct("ProfileViewer");
app_menu->add_action(GCommonActions::make_quit_action([&](auto&) { app.quit(); }));
menubar->add_menu(move(app_menu));
auto view_menu = GMenu::construct("View");
auto invert_action = GAction::create("Invert tree", { Mod_Ctrl, Key_I }, [&](auto& action) {
action.set_checked(!action.is_checked());
profile->set_inverted(action.is_checked());
});
invert_action->set_checkable(true);
invert_action->set_checked(false);
view_menu->add_action(invert_action);
menubar->add_menu(move(view_menu));
app.set_menubar(move(menubar));
window->show();
return app.exec();
}