Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • Files Files
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 381
    • Issues 381
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 55
    • Merge requests 55
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • GNOMEGNOME
  • FilesFiles
  • Merge requests
  • !717

The new life of the new icon view

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged António Fernandes requested to merge wip/antoniof/flow-box-preparation into master Oct 25, 2021
  • Overview 33
  • Commits 40
  • Pipelines 31
  • Changes 49

Summary

This is a blocker for the GTK 4 switch and a step towards GtkGridView adopting. #319 (closed)

I've refactored the seminal view-model-controller code design into something as close as possible to the GTK 4 list model-list widget paradigm, before completing its re-implementation of canvas view features.

It also removes the canvas view as a whole, as well as EelCanvas.

Commits sequence

The 36 commits of this monolithic MR follow this logical sequence:

  1. Emphasize GListModel;
  2. Refactor widget construction;
  3. Tweak icon visuals to make them closer to the canvas view;
  4. Update event handling (as this part of the code has been spared in !699 (merged) to avoid merge conflicts);
  5. Implement missing feature to reach feature parity with canvas view (except DND and clipboard);
  6. Remove canvas view and cleanup leftovers.

Drag-and-drop and clipboard would need to be reimplemented in GTK 4 anyway, so that's why they are skipped for now.

Known regressions

  • Drag and drop doesn't work:
    • to do after GTK 4 switch, which brings an all-new DND API.
  • Cut items are not marked as such:
    • to do after GTK 4 switch, which brings an all-new clipboard API;
  • Performance is bad for directories with many files:
    • GtkGridView is going to solve this, but is only available in GTK 4, so we must switch first;
  • After loading the directory, the grid view doesn't get keyboard focus:
    • it may be a GTK 3/GtkFlowBox bug; I've debugged it for a couple of hours to no avail, let's check again in GTK 4. -- Indeed, a GtkFlowBox-only thing. Solved after porting to GtkGridView.
  • If the view doesn't fill all available height, the blank space at the bottom cannot be used to start a rubberband selection. -- It's still a bug in GtkGridView gtk#3462 (closed)
Edited Feb 03, 2022 by António Fernandes
Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: wip/antoniof/flow-box-preparation