浏览代码

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 年之前
父节点
当前提交
e0b60d56a5
共有 1 个文件被更改,包括 3 次插入1 次删除
  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()