Ver código fonte

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 3 anos atrás
pai
commit
e0b60d56a5
1 arquivos alterados com 3 adições e 1 exclusões
  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)
     if ((size_t)index.row() > m_matching_indices.size() || index.row() < 0)
         return {};
         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()
 void FilteringProxyModel::invalidate()