ProcessTableView.cpp 917 B

12345678910111213141516171819202122232425262728293031323334
  1. #include "ProcessTableView.h"
  2. #include "ProcessModel.h"
  3. #include <LibGUI/GSortingProxyModel.h>
  4. #include <stdio.h>
  5. ProcessTableView::ProcessTableView(GraphWidget& graph, GWidget* parent)
  6. : GTableView(parent)
  7. {
  8. set_size_columns_to_fit_content(true);
  9. set_model(GSortingProxyModel::create(ProcessModel::create(graph)));
  10. model()->set_key_column_and_sort_order(ProcessModel::Column::CPU, GSortOrder::Descending);
  11. refresh();
  12. on_selection = [this](auto&) {
  13. if (on_process_selected)
  14. on_process_selected(selected_pid());
  15. };
  16. }
  17. ProcessTableView::~ProcessTableView()
  18. {
  19. }
  20. void ProcessTableView::refresh()
  21. {
  22. model()->update();
  23. }
  24. pid_t ProcessTableView::selected_pid() const
  25. {
  26. if (!model()->selected_index().is_valid())
  27. return -1;
  28. return model()->data(model()->index(model()->selected_index().row(), ProcessModel::Column::PID), GModel::Role::Sort).as_int();
  29. }