cortex-lab / cortex-lab/phy

Customize the table columns independently in the cluster and similarity views

Open
#902 0 comments 1 reaction 1 assignee View on GitHub

@rossant is already working on this.

Since Oct 7, 2019.

area: gui priority: low type: enhancement
Dominant language
Python
Stars
430
Forks
187
Avg merge
2h 31m
Merged PRs (30d)
2

Description

Problem

Cluster View and Similarity View currently derive their columns from one shared
Supervisor.columns list. A plugin can replace that shared list, but users
cannot arrange the tables independently in the GUI. This makes it difficult to
keep the metrics most relevant to the current curation task visible without
changing both views together.

This issue covers presentation of existing columns. It does not change how
metrics are computed or which fields are exported.

Phase 1: movable, persistent layouts

  • Allow users to drag metric headers left and right in Cluster View, Similarity
    View, and Merge View.
  • Keep each view's column order and widths independent.
  • Persist layouts across table refreshes and application restarts.
  • Store layouts by semantic column name rather than numeric section index, so
    plugin-provided, newly added, and missing columns are handled safely.
  • Keep id pinned as the first column.
  • Keep similarity available in Similarity View.
  • Provide a reset-to-default layout action for each view.
  • Treat ordering as visual state only: sorting, filtering, selection, metric
    availability, and export behavior must continue to use the logical model.

When restoring a saved layout, ignore names that are no longer available and
append newly available columns in their default order.

Phase 2: optional visibility controls

  • Add per-view show/hide controls for optional columns.
  • Keep required identity/ranking columns visible.
  • Define whether a hidden column may remain the active sort and how that state
    is communicated.
  • Keep hidden metrics available to filtering and export unless explicitly
    configured otherwise outside this issue.

Acceptance criteria for Phase 1

  • Reordering one view does not reorder another view.
  • A dragged header does not accidentally change the active sort.
  • Sort indicators continue to identify the correct logical column.
  • Order and widths survive model resets, Similarity refreshes, Merge View
    reopening, and application restart.
  • Saved layouts recover gracefully when plugins or datasets add or remove
    columns.
  • Reset restores the current default order and widths.
  • Focused Qt regression tests cover independent state, persistence, schema
    reconciliation, and sorting after a drag.

This expands the earlier request from #868 for customizable Cluster View
columns into a native, per-view workflow.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.