Pen editor: change a pen's settings and save them to the archive

Open
#67 2 comments 0 reactions 1 assignee View on GitHub

@mrcsin is already working on this.

Since Sep 10, 2026.

Assessment

This issue has not been assessed yet.

Description

enhancement

Why

Pen name, colour, units, line style, scale and group membership are commissioning data, edited by hand in the database. The operator cannot change any of it, and a change is invisible until the next start: the catalogue is read once (App.axaml.cs:121-124) and Pen is immutable.

Wanted

  • An editor reachable from the sidebar, opening on the pen whose row was used. Dialog or inline panel is open; the sidebar work (#68, #69) settles the entry point.
  • Editable fields, matching the stored row (Semiteq/SemiBase#9): display name, colour, units, line style, scale min and max with empty meaning autoscale, enabled, group membership.
  • Group management: create a group, rename it, put a pen in several.
  • Saving writes to the archive database over a second connection under the semiplot_writer role (Semiteq/SemiBase#8). Reading and the live subscription stay on semiplot_reader. The writer connection opens for the save and closes after it.
  • The change reaches the running viewer without a restart. This is the part with real cost: colour and line style are assigned in constructors (Chart/TrendChartViewModel.cs:367, Chart/TrendPenState.cs:13), Pen is an immutable record, and the pen pipeline has no update path.
  • A failed write is surfaced, not swallowed. A 42501 from a missing grant and a dropped connection both need a readable message; the message panel (#80) is where it goes.

Notes

  • SemiStep's grid-style editor is the nearest precedent for the shape: a draft object per section, range checks gating the save button, an atomic temp-file replace (SemiStep/SemiStep.UI/StyleEditor/GridStyleEditorWindow.axaml, SemiStep.Core/Configuration/Loaders/GridStyleWriter.cs:74-89). SemiStep applies its changes on restart. This editor should not.
  • Open: several operator stations editing one archive. Last write wins is the cheap answer and probably the right one, but it should be decided rather than assumed.
  • Depends on #65 and on both SemiBase issues.
Dominant language
C#
Stars
0
Forks
0
Avg merge
18m
Merged PRs (30d)
42

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.

More from Semiteq/SemiPlot

All issues in Semiteq/SemiPlot

Similar issues

More C# issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.