Browse Source

LibGUI: Remove confusing GModelNotification concept

This was a bad idea and it didn't stick. Instead we should just use the
simple "on_foo" hook functions like we do for everything else. :^)
Andreas Kling 5 năm trước cách đây
mục cha
commit
f7dce05c82

+ 9 - 11
Applications/FileManager/DirectoryView.cpp

@@ -58,17 +58,15 @@ DirectoryView::DirectoryView(GWidget* parent)
 
     m_item_view->set_model_column(GDirectoryModel::Column::Name);
 
-    m_item_view->on_model_notification = [this](const GModelNotification& notification) {
-        if (notification.type() == GModelNotification::Type::ModelUpdated) {
-            set_status_message(String::format("%d item%s (%u byte%s)",
-                model().row_count(),
-                model().row_count() != 1 ? "s" : "",
-                model().bytes_in_files(),
-                model().bytes_in_files() != 1 ? "s" : ""));
-
-            if (on_path_change)
-                on_path_change(model().path());
-        }
+    m_table_view->model()->on_model_update = [this](auto&) {
+        set_status_message(String::format("%d item%s (%u byte%s)",
+            model().row_count(),
+            model().row_count() != 1 ? "s" : "",
+            model().bytes_in_files(),
+            model().bytes_in_files() != 1 ? "s" : ""));
+
+        if (on_path_change)
+            on_path_change(model().path());
     };
 
     m_model->on_thumbnail_progress = [this](int done, int total) {

+ 0 - 8
Applications/SystemMonitor/ProcessTableView.cpp

@@ -26,14 +26,6 @@ void ProcessTableView::refresh()
     model()->update();
 }
 
-void ProcessTableView::model_notification(const GModelNotification& notification)
-{
-    if (notification.type() == GModelNotification::ModelUpdated) {
-        // Do something?
-        return;
-    }
-}
-
 pid_t ProcessTableView::selected_pid() const
 {
     if (!model()->selected_index().is_valid())

+ 0 - 3
Applications/SystemMonitor/ProcessTableView.h

@@ -17,7 +17,4 @@ public:
     void refresh();
 
     Function<void(pid_t)> on_process_selected;
-
-private:
-    virtual void model_notification(const GModelNotification&) override;
 };

+ 0 - 7
Libraries/LibGUI/GAbstractView.cpp

@@ -28,17 +28,10 @@ void GAbstractView::set_model(RefPtr<GModel>&& model)
     did_update_model();
 }
 
-void GAbstractView::model_notification(const GModelNotification& notification)
-{
-    if (on_model_notification)
-        on_model_notification(notification);
-}
-
 void GAbstractView::did_update_model()
 {
     if (!model() || model()->selected_index() != m_edit_index)
         stop_editing();
-    model_notification(GModelNotification(GModelNotification::ModelUpdated));
 }
 
 void GAbstractView::did_update_selection()

+ 0 - 2
Libraries/LibGUI/GAbstractView.h

@@ -34,12 +34,10 @@ public:
     Function<void(const GModelIndex&)> on_activation;
     Function<void(const GModelIndex&)> on_selection;
     Function<void(const GModelIndex&, const GContextMenuEvent&)> on_context_menu_request;
-    Function<void(const GModelNotification&)> on_model_notification;
 
     Function<OwnPtr<GModelEditingDelegate>(const GModelIndex&)> aid_create_editing_delegate;
 
 protected:
-    virtual void model_notification(const GModelNotification&);
     virtual void did_scroll() override;
     void activate(const GModelIndex&);
     void update_edit_widget_position();

+ 0 - 21
Libraries/LibGUI/GModel.h

@@ -18,27 +18,6 @@ enum class GSortOrder {
     Descending
 };
 
-class GModelNotification {
-public:
-    enum Type {
-        Invalid = 0,
-        ModelUpdated,
-    };
-
-    explicit GModelNotification(Type type, const GModelIndex& index = GModelIndex())
-        : m_type(type)
-        , m_index(index)
-    {
-    }
-
-    Type type() const { return m_type; }
-    GModelIndex index() const { return m_index; }
-
-private:
-    Type m_type { Invalid };
-    GModelIndex m_index;
-};
-
 class GModel : public RefCounted<GModel> {
 public:
     struct ColumnMetadata {