LMMS / LMMS/lmms

Song editor: save/load full toolbar state in project files

Open
#6,930 0 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
C++
Stars
10.4k
Forks
1.3k
Avg merge
2d 13h
Merged PRs (30d)
7

Description

### Enhancement Summary

The following toolbar items' states should be saved in project files and restored on load:

- Selected tool (pencil, knife, box select)
- **Auto-scroll on/off**
- Zoom amount
- Snap size
- Relative snapping on/off

#### Justification

Personally, I'd very much like to disable auto scroll by default, and don't currently care that tool selection, zoom, and snap settings aren't saved in project files. However, previous discussion on playhead stop behavior (among other things) shows us that:

1. Thanks to workflow differences, **every** configuration is likely to have some proponents
2. If this is true, **any** change to a default will worsen some user's experience
3. These users have no reason to make themselves known until after the change is proposed or implemented

Thankfully, default templates mean that saving state in project files makes it user configurable without cluttering our settings menu. So, rather than playing whack-a-mole by adding state save/load whenever disagreement appears surrounding some default setting, I propose that we save the full state of the song editor toolbar in projects. This should also allow a more objective discussion of which defaults should potentially be changed, as no one will need to feel that their personal workflow is being threatened.

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.

Research direction

Start by tracing the Song editor toolbar and the project-file save/load paths. Use the listed toolbar states as the scope, and verify that each state is restored after reopening a project, including selected tool, auto-scroll, zoom, snap size, and relative snapping.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
desktop
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.