ProcessTableView.cpp 1012 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. #include "ProcessTableView.h"
  2. #include "ProcessTableModel.h"
  3. #include <LibGUI/GSortingProxyTableModel.h>
  4. #include <stdio.h>
  5. ProcessTableView::ProcessTableView(GWidget* parent)
  6. : GTableView(parent)
  7. {
  8. auto process_model = make<ProcessTableModel>();
  9. m_model = process_model.ptr();
  10. set_model(make<GSortingProxyTableModel>(move(process_model)));
  11. GTableView::model()->set_key_column_and_sort_order(ProcessTableModel::Column::CPU, GSortOrder::Descending);
  12. start_timer(1000);
  13. model().update();
  14. }
  15. ProcessTableView::~ProcessTableView()
  16. {
  17. }
  18. void ProcessTableView::timer_event(GTimerEvent&)
  19. {
  20. model().update();
  21. }
  22. void ProcessTableView::model_notification(const GModelNotification& notification)
  23. {
  24. if (notification.type() == GModelNotification::ModelUpdated) {
  25. if (on_status_message)
  26. on_status_message(String::format("%d processes", model().row_count()));
  27. return;
  28. }
  29. }
  30. pid_t ProcessTableView::selected_pid() const
  31. {
  32. return model().selected_pid();
  33. }