Преглед изворни кода

ProcessManager: Make the toolbar actions work again.

We can't grab at the ProcessTableModel directly anymore since we have a
sorting proxy model in the middle now.
Andreas Kling пре 6 година
родитељ
комит
0b32ab12f1

+ 0 - 7
Applications/ProcessManager/ProcessTableModel.cpp

@@ -199,10 +199,3 @@ void ProcessTableModel::update()
 
     did_update();
 }
-
-pid_t ProcessTableModel::selected_pid() const
-{
-    if (!selected_index().is_valid())
-        return -1;
-    return m_pids[selected_index().row()];
-}

+ 0 - 2
Applications/ProcessManager/ProcessTableModel.h

@@ -31,8 +31,6 @@ public:
     virtual GVariant data(const GModelIndex&, Role = Role::Display) const override;
     virtual void update() override;
 
-    pid_t selected_pid() const;
-
 private:
     struct ProcessState {
         pid_t pid;

+ 8 - 8
Applications/ProcessManager/ProcessTableView.cpp

@@ -6,12 +6,10 @@
 ProcessTableView::ProcessTableView(GWidget* parent)
     : GTableView(parent)
 {
-    auto process_model = make<ProcessTableModel>();
-    m_model = process_model.ptr();
-    set_model(make<GSortingProxyTableModel>(move(process_model)));
-    GTableView::model()->set_key_column_and_sort_order(ProcessTableModel::Column::CPU, GSortOrder::Descending);
+    set_model(make<GSortingProxyTableModel>(make<ProcessTableModel>()));
+    model()->set_key_column_and_sort_order(ProcessTableModel::Column::CPU, GSortOrder::Descending);
     start_timer(1000);
-    model().update();
+    model()->update();
 }
 
 ProcessTableView::~ProcessTableView()
@@ -20,19 +18,21 @@ ProcessTableView::~ProcessTableView()
 
 void ProcessTableView::timer_event(GTimerEvent&)
 {
-    model().update();
+    model()->update();
 }
 
 void ProcessTableView::model_notification(const GModelNotification& notification)
 {
     if (notification.type() == GModelNotification::ModelUpdated) {
         if (on_status_message)
-            on_status_message(String::format("%d processes", model().row_count()));
+            on_status_message(String::format("%d processes", model()->row_count()));
         return;
     }
 }
 
 pid_t ProcessTableView::selected_pid() const
 {
-    return model().selected_pid();
+    if (!model()->selected_index().is_valid())
+        return -1;
+    return model()->data({ model()->selected_index().row(), ProcessTableModel::Column::PID }, GTableModel::Role::Sort).as_int();
 }

+ 0 - 5
Applications/ProcessManager/ProcessTableView.h

@@ -20,10 +20,5 @@ protected:
 
 private:
     virtual void timer_event(GTimerEvent&) override;
-
-    ProcessTableModel& model() { return *m_model; }
-    const ProcessTableModel& model() const { return *m_model; }
-
-    ProcessTableModel* m_model { nullptr };
 };