Skip to content

feat: striped lister rows (#225) and repaired translated catalogs - #227

Merged
midwan merged 3 commits into
masterfrom
feat/striped-lister-rows
Oct 21, 2026
Merged

midwan merged 3 commits into
masterfrom
feat/striped-lister-rows

Conversation

@midwan

@midwan midwan commented Oct 21, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Name mode listers can now draw every second row in another background colour, and the translated catalogs show the right text again. Since 2015 a few hundred entries per language had held another string's translation or English.

Issue

Fixes #225

Changes

Striped rows

  • Environment > Lister Display has a new "Striped Rows" check box. Environment > Lister Colours has a new "Alternate Rows" item for the colour. Only the background pen of that item is used, so file and directory text keeps its colour.
  • Only unselected file and directory rows are striped. Selected entries, devices, assigns and the space below the last entry keep their colours. Row parity comes from the list position, so the stripes stay with their entries when the list scrolls.
  • The setting is stored in env_flags bit 7 and stripe_col[2], which reuses the old env_pad_16 bytes, so the CFG_ENVR layout does not change. Environments older than CONFIG_VERSION_18 load with striping off.
  • The default stripe colour is a light grey custom colour (0xBBBBBB). On a screen with no free pen, white is used. A lister holds the stripe pen only while striping is on.
  • lister_display_dir() passed swapped window line numbers for rows scrolled in at the top or bottom. Stripes made this visible: after scrolling down one line, the last two rows had the same colour. The edit cursor and the keyboard selector arrow compare against the same numbers, so they are fixed as well.
  • ARexx dopus set pens and dopus query pens accept tooltips and stripes. Saved themes leave both out: a theme stores pen numbers only, and applying it would turn the default grey stripes white.

Catalogs

  • The .ct files were made in 2015 from the 1997 binary catalogs, but the string IDs were counted wrongly after every gap in the numbering. Entries after a gap got the text of IDs 1, 2, 3 and so on, for example "_Ok" for "Set source _archive bit". They are now rebuilt by string ID from the original catalogs on Aminet: Opus 5.65 for every language, and the 5.8x update for Spanish.
  • Later fixes made by hand in the .ct files are kept. A translation is left out, so Opus shows English, when its % codes, | button count or length no longer match the current string.
  • The French catalogs now use message names instead of MSG_UNKNOWN_<id>. The duplicate français directory (same name in another Unicode form) is removed.
  • configopus.cd gave the background picture strings IDs 23039 onward, which the clock codes also use. ftp.cd put "Disable Stayin' Alive Pings" in the middle of the numbering, which moved 114 FTP strings by one ID. Both files now give the IDs that string_data.h and ftp.strings use. ftp.cd also had multi-line strings without continuations and a comment after an ID, and FlexCat rejected the file.
  • catalogs/Makefile builds the ViewFont, Lister Format and Path Format catalogs where a translation exists and skips them where none does.
  • "Striped Rows" and "Alternate Rows" are translated into all eleven catalog languages. Strings added after the original catalogs are still untranslated.

Affected platforms

  • AmigaOS 3 (os3)
  • AmigaOS 3 / 68000 (os3-68000)
  • AmigaOS 4 (os4)
  • MorphOS (mos)
  • AROS i386 (i386-aros)
  • AROS x86_64 (x86_64-aros)
  • AROS aarch64 (aarch64-aros)

Verification

  • OS3 and AROS x86_64 builds of dopus5.library, the program and configopus.module give the same set of warnings as master.
  • Amiberry, A4000-testing config (OS 3.2, 32-bit RTG), SYS:C in a name mode lister:
    • An older environment loaded with striping off.
    • Ticking Striped Rows and clicking Use striped the rows. Sampled pixels on every row alternate between 0xBBBBBB and the normal background.
    • Scrolling one and several lines up and down kept each entry's colour. The scroll line bug was found and fixed here.
    • Selected rows kept the selected colours.
    • The setting survived Save and a restart, and unticking it gave plain rows again.
  • dopus set/query pens with tooltips and stripes was built but not run in the emulator.
  • All 199 .ct files compile with FlexCat against their .cd files with no errors. Each compiled catalog was parsed back: all 16466 strings sit at the intended ID with the intended text.
  • The Python source tests in source/*/tests pass. Two assertions that pinned CONFIG_VERSION_17 as the current version were removed.

Checklist

  • CI is green (or expected failures are explained).
  • ChangeLog updated with a [dopus5 next] entry.
  • documents/DOpus5.guide updated and @$VER bumped if user-visible
    behaviour changed. DOpusM2_ARexx.guide is updated as well.
  • Relevant *_REVISION in source/Include/dopus/version.h bumped if
    a versioned binary changed. Deferred to the release, as in the other [dopus5 next] entries.
  • No new compiler warnings introduced on any platform.
  • No drive-by reformatting of unrelated code.

The .ct files were generated in 2015 from the 1997 binary catalogs
with the string IDs counted wrongly after every gap in the numbering,
so a few hundred entries per language held another string's text or
English. They are rebuilt by string ID from the original catalogs on
Aminet (Opus 5.65 for every language, the 5.8x update for Spanish).
Later fixes in the .ct files are kept. Translations whose % codes,
'|' button count or length no longer fit the current string are left
out.

- French uses names instead of MSG_UNKNOWN_<id>, and the second copy
  of the French directory (other Unicode form) is gone.
- catalogs/Makefile builds the ViewFont, Lister Format and Path Format
  catalogs that have a translation and skips missing ones.
- ftp.cd: "Disable Stayin' Alive Pings" keeps its ID (1346) instead of
  moving 114 strings by one; multi-line strings use continuations and
  the comment after MSG_SEND_NOOP moved to its own line, so FlexCat
  accepts the file.
Name mode listers can draw every second row with another background
colour. Environment > Lister Display has a Striped Rows check box
(env_flags bit 7) and Lister Colours an Alternate Rows item
(ENVCOL_STRIPE, stripe_col[2] in the old env_pad_16 bytes,
CONFIG_VERSION_18). Only its background pen is used, on unselected
file and directory rows at odd list positions, so the stripes stay with
their entries when the list scrolls. The default is a light grey custom
colour with white as the no-free-pen fallback; the pen is held only
while striping is on. Older environments load with striping off.

- lister_display_dir() passed swapped window line numbers for lines
  scrolled in at the top or bottom; the stripes, the edit cursor and
  the keyboard selector arrow use those numbers.
- ARexx 'dopus set/query pens' take 'tooltips' and 'stripes', and saved
  themes store both.
- configopus.cd numbered the background picture strings from 23039,
  the IDs of the clock codes; they start at 5056 again, as in
  string_data.h.
- Two source-text tests no longer pin the current environment version.
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 21, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-21T10:07:49.362950Z 8d5a680 Manual request
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: d1e58a9534

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread source/Modules/themes/themes_data.c Resolved
A theme replays 'dopus set pens' with pen numbers only, and setting a
pen clears that element's custom colour, so applying a theme turned
the default light grey stripes white.
@midwan

midwan commented Oct 21, 2026

Copy link
Copy Markdown
Collaborator Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Breezy!

Reviewed commit: 8d5a680723

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@midwan
midwan merged commit c241424 into master Oct 21, 2026
18 checks passed
@midwan
midwan deleted the feat/striped-lister-rows branch October 21, 2026 10:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Lister stripes

1 participant