Releases: Xekeen/ISMS
Releases · Xekeen/ISMS
Release list
ISMS v0.2.0
The small things that were costing a gesture each, every session — and then
the ones that were costing twenty.
Added
- Coordinate fields take the notation a publication prints —
432826.9N,
41°00'25.6"N, degrees and decimal minutes, either decimal separator. Paste
the pair into either box and both are filled. - A holding generator, under Tools: the fix, the published inbound
course and either a radius or the holding speed and level, and it draws the
racetrack onto the draft. - The validator repairs what it can. A Fix on a finding rewrites that
row; Fix all on a rule's heading rewrites every one across the sector, as
a single undo step and nothing on disk until Save. Four rules qualify:V203
andV204(coordinates written short or unpadded),V205(sixty seconds in
a minute) andV302(the colour names Aurora renamed). A repair never moves a
point, and where it cannot be exact it is not offered. - Findings are marked in the inspector's margin, on the line number, in the
severity's colour. Unlike the panel's list, the marks are not capped. - Replace across the sector, with Ctrl+H, in the same panel as Find.
Every line that would be rewritten is listed with what it would become, all
occurrences on a line go, and the whole replacement is one Ctrl+Z. - Comment and uncomment lines, with Ctrl+/. The marker goes in at the
shallowest indent of the block, so a run comes back out as it went in. - Duplicate lines with Ctrl+D, and move them with Alt+↑/↓. The copy is what
stays selected, since the copy is what gets retyped. - Several carets in the inspector, with Ctrl+Alt+↑/↓: typing, deleting
and pasting go to every caret at once. Escape puts them away without
touching the text; only a second Escape reverts. - Back and forward through where you have been, with Alt+← and
Alt+→ — navigation history, deliberately not the undo stack. - The ruler measures a path, not just a leg. Every Shift+click after the
anchor adds a leg, each with its own distance and bearing, and the total is
stated at the far end. - Find text in the sector, with Ctrl+F — colour tokens, coordinates,
callsigns, comments, none of which the tree filter or the group search could
reach. Matching is over the buffers, so unsaved lines are found, and the count
is honest past the cap: it lists the first four hundred and counts the rest. - Go to a line, with Ctrl+G, in the same panel: a query starting with a
colon is a line number.:412and Enter. - The ruler. Hold Shift and the render frames itself in white and clicks
measure instead of selecting. Distance in nautical miles and metres, bearing
true and magnetic from the sector's own declared variation, great-circle
rather than plane trigonometry. It snaps to drawn vertices as the pen does; a
second Shift+click fixes the far end, and Escape clears it. - The sectors you had open before, on the front page and in File ▸ Open. One
that has gone from disk stays listed and says so; the × takes it off the list
without touching anything on disk. - The render opens where you left it — the camera, saved per sector with the
layers and panel sizes it already remembered. - The window opens where you left it too — size, position and maximised, for
the main window and for detached panes. - A keyboard reference, from F1 or the Help menu, built from the same
table the menus print their accelerators from. - ISMS says when there is a new version. A few seconds after startup it
checks once, quietly, and offers it as a button in the status bar. Nothing
downloads until that button is clicked. A check that finds nothing, or cannot
reach GitHub, says nothing. Out of reach with unsaved edits, since installing
restarts the app. - And when it comes back up, it says what changed. The first launch of a new
version opens What's new, read out of this file at build time. Once only,
and not on a first-ever install or a development build. - ISMS says what it is not, before it is trusted with a sector. Not an IVAO
product, not endorsed or supported by them, no warranty of any kind. A window
on startup with a box to tick, which comes back every launch until it is
ticked; Help ▸ About ISMS opens it again afterwards. Also in the
README and the
user guide.
Fixed
- A control that offers a choice shows which one is taken. The draft
export's target picker, and the button pairs on the draft bar and in the
export dialog, all drew every option as the chosen one. - Coordinate rows from the draft start a path of their own, with
<br>on
the first point of each run: pasted into a procedure they were joined to the
one above and the one below. A check box turns it off. - An edit that touches many lines takes about as long as one that touches
one. Any edit revalidates the whole sector, and that was running once per
rewritten line rather than once per operation. Fixing all 158 deprecated
colour names in the Spanish sector went from about twenty seconds to two, and
undoing it to a third of a second. - Stop bars are drawn where they are, one bar at a time. Consecutive
[GEO]
rows are only joined into a polyline while each starts where the last ended,
so a run of stop bars under one//STOPLINESheader is no longer a zigzag
across the field. A group also breaks when the colour changes mid-run. - The front page can be clicked. The render's canvas covers the whole pane
and sat over the page, taking every click meant for Open and the recent list. - Labels on the render are as legible as the rest of the window. They are no
longer drawn through a WebGL glyph atlas, which forfeits hinting and subpixel
antialiasing and left 13px strokes blurred; they are text over the canvas,
positioned to the whole pixel. Clicking one is more accurate too — selection
now resolves against the rectangle the label was really drawn in.
ISMS v0.1.3
Drawing against what is already there, and a manual for the whole of it.
Added
- Trace on the render. Hold Ctrl and the canvas frames itself in red and the
pointer becomes a pencil, its point on the pixel a click would take: every
click places a point of a draft, snapping to a point already drawn or to the
nearest vertex of whatever is under the cursor, so a traced apron edge meets
the taxiway it runs into exactly. Ctrl+drag still pans, Ctrl+Z takes back
the last point, Escape ends the run and the next click starts another.
Releasing Ctrl changes nothing: the draft is a drawing, not a mode, and
letting go of the key can never cost work. A white ring shows the point a
click would take before it is taken, and Close outline — or Enter —
closes a shape back onto its own first corner exactly, which snapping cannot
do once that corner is off screen.
Export… writes it out as[GEO]segments, as a[FILLCOLOR]polygon
with its header and colour, or as bare coordinate rows — with the row count
and a preview of the shape before anything is copied. The draft is never an
edit: nothing reaches a file until the rows are pasted by hand. - A window that throws now says so, with the message, the stack and a button to
reload — instead of going blank and leaving no option but killing the app and
no trace of what happened. Nothing on disk is at risk either way; unsaved
edits in that window are not recoverable. - The coordinate under the pointer is read out in the top right of the render,
in canonical DMS and in decimal degrees, and Ctrl+C over the render copies
it as the pair of tokens a row is written with —N040.27.47.100;W003.33.14.040;
— ready to paste. Enough to trace an apron or a taxiway line by hand against
what is already drawn. The reading is only ever as precise as the pixel the
cursor is on, so zoom in before trusting one. A selection in the editor or in
a dialog still owns Ctrl+C. - The line the caret is on is marked on the render, in magenta: the segment
that line draws and the points at its ends. Clicking a line — or walking a
procedure with the arrow keys — shows the drawing leg by leg, which until now
could only be read the other way round, from the map to the source. A
detached render window follows the editor's caret too. - Clicking a file's name in the project tree opens the whole of it in the
inspector. The canvas can only ever reach a file that draws something, and
only the group that was clicked; a.def, a colour scheme or the header
comments of a.geohad no way in at all. Also in the file's right-click
menu, as Open the whole file. - Update from inside the app: Tools ▸ Check for updates… asks GitHub for
the latest release, verifies its signature, installs it and restarts. Never
checks on startup, and refuses while there are unsaved edits. It cannot work
until the repository is public, since a private repository's release assets
need authentication. - A user guide, in
docs/user-guide.md: the whole app from the point of view of
someone editing a sector, including the first pass end to end that the README
never had, and screenshots of it working on a real sector — the window, the
ground of Madrid, the pen mid-trace, the export, the findings for one rule,
the release dialog, a pasted AIP table and a waypoint's references. The README described the features one at a time and did it in the
middle of the build instructions; it is now the front page, and the manual is
a document that travels with the tag and is reviewed with the code, which a
wiki page could not be. - This changelog, and the release notes on GitHub now come from it.
Fixed
- Typing a second character into the draft export's
[GEO]colour field no
longer brings the window down. The field read its value inside the function
handed tosetState, which React runs while rendering rather than during the
event — by which point the event'scurrentTargetis empty. - Typing
#no longer behaves as though Ctrl were held. AltGr reports itself
as Ctrl+Alt, so on a Spanish keyboard every@,#,[,],{,}and
\was reaching the window's shortcuts and arming the render's pen behind
whatever dialog was open. - Ctrl+Z and Ctrl+Y inside a text field are the field's own undo again, not the
file's. Ctrl+S still saves from anywhere, including the editor.
Changed
- The icon is drawn rather than stretched. It is the same mark — a traced
polyline with its vertices — redrawn at full size, and the.iconow carries
every size from 16 to 256 instead of one, which is what made the installed
shortcut look chewed.design/icon.pyis where it comes from, so the next
change to it starts from a drawing. - Nothing open no longer means an empty black rectangle with the words "no
geometry" in it. The render area shows what the app is and the one thing there
is to do: open an.isc. - One row height across the window. The tree, the groups inside a file and the
findings were 17 and 18 pixels in different panels — not a difference anyone
can name, but enough to make two panels side by side look misaligned. The
editor keeps its own, which is a monospace metric its gutter depends on. - One bar at the top of the window instead of two. The system title bar is gone
and the app draws its own: the icon, the menus, the open sector's name, and
minimise, maximise and close where Windows puts them. The strip between the
menus and the buttons drags the window, and a double-click on it maximises.
A detached pane keeps the system frame, because it has no menu bar to hang
any of that from. - The status bar reads left to right: what this is, what it is doing, and then —
at the far end — what the render is showing and what is still unwritten. The
version comes from the build rather than from a number typed into the source,
which had been saying 0.1.0 since 0.1.0. - The window's glyphs are drawn instead of typed.
⌕,⤓,▸and the rest were
whatever font Windows found for them, at whatever weight; they are now a
single 16px set that inherits the colour of the control it sits in. - The scrollbars are the app's own — thin, dark, and the accent colour while
dragged — instead of the system's light grey. - The interface blue is the blue the icon is drawn in. It was the editor blue
this project started from, and the window and its icon looked like two
different products. - The colour fields of the draft export no longer open the platform's colour
picker; they show a swatch beside the field instead. A sectorfile colour is
usually a[DEFINE]name, which no picker can produce, and handing the window
to a native dialog from the one place holding unsaved work was not worth it. - Clicking the render's background no longer empties the inspector. Missing a
1px line is easy and it was throwing away whatever was being read. The
inspector is emptied by its own ✕, or replaced by selecting something
else; anything typed and not applied is committed first either way. - Lines on the render are easier to click. A 1px stroke used to demand a 1px
aim; the cursor now catches anything within a few pixels, so a click near a
line hits it. Lines are not drawn any thicker, and a fix or a label under the
cursor still wins over a line beside it. - The README says why Windows warns about the installer, and what to click.