cosmic-files/i18n
leyoda 1cf17dcde8 yoda: phase 3 — drag-drop toolbar editor in Settings
Migrates the config model from the phase-2 bag-of-bools (ToolbarItems)
to an ordered Vec<ToolbarAction> so the user can pick BOTH the set of
buttons AND their order in the toolbar.

Config (config.rs):
- new ToolbarAction enum with 11 variants (LocationUp, Reload,
  NewFolder, NewFile, Rename, Delete, Cut, Copy, Paste,
  ToggleShowHidden, OpenTerminal) + to_u8/from_u8 for DnD payload
- Config.toolbar: Vec<ToolbarAction>, default = default_toolbar()
  (NewFolder, Rename, Delete, Cut, Copy, Paste — same 6 as phase 2)

Rendering (view()):
- iterate self.config.toolbar in order and emit a tooltip'd icon button
  per entry via the new toolbar_action_ui(action) helper shared with
  the Settings page. Paste stays disabled when clipboard empty.
- No hardcoded groups or auto-dividers anymore — order is 100% user.

Settings page (toolbar_settings_section):
- two stacked lists:
  * 'Toolbar': currently-enabled actions in their Vec order. Each row
    is wrapped in dnd_source (drags a ToolbarActionPayload carrying
    the enum discriminant) + dnd_destination (accepts drops from other
    rows, fires Message::ToolbarReorder { src, target } to move src
    before target in the Vec). A list-drag-handle icon + a minus button
    (ToolbarRemove) per row.
  * 'Available': actions not yet enabled, each with a plus button
    (ToolbarAdd) that pushes to the end of the Vec.
- 'Reset to defaults' button at the bottom (ToolbarReset).

DnD infra (app.rs top):
- TOOLBAR_MIME constant: 'application/x-cosmic-files-toolbar-action'
- ToolbarActionPayload(u8) with AsMimeTypes + AllowedMimeTypes +
  TryFrom<(Vec<u8>, String)> impls — single-byte wire format matching
  the enum discriminant.

Messages:
- ToolbarAdd(ToolbarAction) — append to toolbar vec if absent
- ToolbarRemove(ToolbarAction)
- ToolbarReorder { src, target } — remove src, reinsert before target
- ToolbarReset — restore default_toolbar()

i18n (en + fr):
- new keys: toolbar-available, toolbar-empty-hint, toolbar-reset

Migration: existing installs with a phase-2 ToolbarItems struct in
their config will error at load time (different shape); cosmic_config
falls back to Self::default() which gives the phase-2 minimal-6 set —
a safe reset rather than a broken partial read.
2026-04-24 08:13:30 +02:00
..
af i18n: translation updates from weblate 2025-10-11 12:07:48 +02:00
ar i18n: translation updates from weblate 2026-04-12 18:49:45 +02:00
be i18n(be): update translations from Weblate 2025-10-06 06:02:02 +00:00
bg i18n: translation updates from weblate 2025-11-11 16:51:26 +01:00
bn i18n: translation updates from weblate 2025-12-16 16:58:39 +01:00
ca i18n: translation updates from weblate 2025-10-02 20:44:04 +02:00
cs i18n: translation updates from weblate 2026-04-12 18:49:45 +02:00
da i18n: translation updates from weblate 2025-10-02 20:44:04 +02:00
de i18n: translation updates from weblate 2026-04-12 18:49:45 +02:00
el i18n: translation updates from weblate 2026-03-09 01:10:07 +01:00
en yoda: phase 3 — drag-drop toolbar editor in Settings 2026-04-24 08:13:30 +02:00
en-GB i18n: translation updates from weblate 2025-10-01 21:48:02 +02:00
eo i18n: translation updates from weblate 2025-10-01 21:48:02 +02:00
es Generate translated desktop and metainfo files with xdgen 2026-02-12 14:46:38 -07:00
es-419 i18n: translation updates from weblate 2026-04-12 18:49:45 +02:00
es-MX i18n: translation updates from weblate 2025-10-01 21:48:02 +02:00
et i18n: translation updates from weblate 2025-10-20 17:04:56 +00:00
eu i18n: translation updates from weblate 2026-04-12 18:49:45 +02:00
fa i18n: translation updates from weblate 2025-10-20 17:04:56 +00:00
fi i18n: translation updates from weblate 2026-04-12 18:49:45 +02:00
fr yoda: phase 3 — drag-drop toolbar editor in Settings 2026-04-24 08:13:30 +02:00
fy Translated using Weblate (Frisian) 2025-09-26 11:47:27 -04:00
ga i18n: translation updates from weblate 2026-04-12 18:49:45 +02:00
gd i18n: translation updates from weblate 2025-10-01 21:48:02 +02:00
gu i18n: translation updates from weblate 2025-10-29 14:02:22 +01:00
he i18n: translation updates from weblate 2025-12-02 18:00:29 +01:00
hi i18n: translation updates from weblate 2025-10-31 14:02:57 +01:00
hr i18n: translation updates from weblate 2025-10-01 21:48:02 +02:00
hu i18n: translation updates from weblate 2026-04-12 18:49:45 +02:00
id i18n: translation updates from weblate 2026-04-12 18:49:45 +02:00
ie i18n: translation updates from weblate 2025-10-01 21:48:02 +02:00
is i18n: translation updates from weblate 2025-10-20 17:04:56 +00:00
it Generate translated desktop and metainfo files with xdgen 2026-02-12 14:46:38 -07:00
ja i18n: translation updates from weblate 2025-10-11 12:07:48 +02:00
jv i18n: translation updates from weblate 2025-10-01 21:48:02 +02:00
ka i18n: translation updates from weblate 2025-12-16 16:58:39 +01:00
kab i18n: translation updates from weblate 2026-04-12 18:49:45 +02:00
kk i18n: translation updates from weblate 2026-04-12 18:49:45 +02:00
kmr i18n: translation updates from weblate 2025-12-02 18:00:29 +01:00
kn i18n: translation updates from weblate 2025-10-02 20:44:04 +02:00
ko i18n: translation updates from weblate 2026-04-12 18:49:45 +02:00
li Added translation using Weblate (Limburgish) 2025-09-24 20:17:39 +00:00
lt i18n: translation updates from weblate 2026-04-12 18:49:45 +02:00
ml i18n: translation updates from weblate 2026-02-09 20:28:37 +01:00
ms i18n: translation updates from weblate 2026-01-30 20:06:33 +00:00
nb-NO i18n: translation updates from weblate 2025-10-02 20:44:04 +02:00
nl i18n: translation updates from weblate 2026-03-09 01:10:07 +01:00
nn i18n: translation updates from weblate 2025-10-09 16:07:28 +02:00
oc i18n: translation updates from weblate 2026-02-09 20:28:37 +01:00
pa i18n: translation updates from weblate 2026-04-12 18:49:45 +02:00
pl i18n: translation updates from weblate 2026-04-12 18:49:45 +02:00
pt Generate translated desktop and metainfo files with xdgen 2026-02-12 14:46:38 -07:00
pt-BR i18n: translation updates from weblate 2026-04-12 18:49:45 +02:00
ro i18n: translation updates from weblate 2025-10-02 20:44:04 +02:00
ru i18n: translation updates from weblate 2026-04-12 18:49:45 +02:00
sk Generate translated desktop and metainfo files with xdgen 2026-02-12 14:46:38 -07:00
sl i18n: translation updates from weblate 2026-03-09 01:10:07 +01:00
sr i18n: translation updates from weblate 2025-10-01 21:48:02 +02:00
sr-Cyrl i18n: translation updates from weblate 2025-10-20 17:04:56 +00:00
sr-Latn i18n: translation updates from weblate 2025-10-20 17:04:56 +00:00
sv feat: set placeholder for permission dropdowns 2026-04-02 13:43:03 -06:00
ta i18n: translation updates from weblate 2025-10-01 21:48:02 +02:00
th i18n: translation updates from weblate 2025-10-02 20:44:04 +02:00
ti i18n: translation updates from weblate 2026-01-21 21:41:10 +01:00
tr i18n: translation updates from weblate 2026-03-09 01:10:07 +01:00
uk i18n: translation updates from weblate 2026-04-12 18:49:45 +02:00
uz i18n: translation updates from weblate 2026-01-30 20:06:33 +00:00
vi i18n: translation updates from weblate 2025-10-01 21:48:02 +02:00
yue-Hant i18n: translation updates from weblate 2026-02-17 09:10:20 +01:00
zh-CN i18n: translation updates from weblate 2026-04-12 18:49:45 +02:00
zh-TW i18n: translation updates from weblate 2026-04-12 18:49:45 +02:00