Explorar o código

LibGUI: Make FilteringProxyModel::data() support multi-column data

While the rows are filtered, we can't just return data from column 0
every time, since that breaks underlying multi-column models.
Instead, simply forward the incoming index.
Andreas Kling %!s(int64=3) %!d(string=hai) anos
pai
achega
e0b60d56a5
Modificáronse 1 ficheiros con 3 adicións e 1 borrados
  1. 3 1
      Userland/Libraries/LibGUI/FilteringProxyModel.cpp

+ 3 - 1
Userland/Libraries/LibGUI/FilteringProxyModel.cpp

@@ -41,7 +41,9 @@ Variant FilteringProxyModel::data(ModelIndex const& index, ModelRole role) const
     if ((size_t)index.row() > m_matching_indices.size() || index.row() < 0)
         return {};
 
-    return m_matching_indices[index.row()].data(role);
+    // FIXME: Support hierarchical models (with a non-empty index.parent()).
+    auto underlying_index = m_model->index(m_matching_indices[index.row()].row(), index.column(), {});
+    return underlying_index.data(role);
 }
 
 void FilteringProxyModel::invalidate()