Skip to content

Releases: Xekeen/ISMS

ISMS v0.2.0

Choose a tag to compare

@github-actions github-actions released this 07 Aug 11:27

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
    and V204 (coordinates written short or unpadded), V205 (sixty seconds in
    a minute) and V302 (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. :412 and 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 //STOPLINES header 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

Choose a tag to compare

@github-actions github-actions released this 07 Aug 11:28

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 .geo had 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 to setState, which React runs while rendering rather than during the
    event — by which point the event's currentTarget is 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 .ico now carries
    every size from 16 to 256 instead of one, which is what made the installed
    shortcut look chewed. design/icon.py is 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.

ISMS v0.1.2

Choose a tag to compare

@github-actions github-actions released this 07 Aug 11:28

Installers for ISMS v0.1.2.