Repository navigation
Windows: redraw, focus, MSI file count, Hill formula (#255 #256 #254 #247 #257) - #281
Merged
Merged
Conversation
…#255) - A property panel is created hidden; a shown child of the frame sat at its (0,0), over the viewer, until wxAUI placed it. - updatePanes() moves a pane's window off the frame before Update(), which shows it before it lays the frame out. - On MSW the frame's children are held (BuilderRedrawHold) while a calculation opens and while a property panel is opened, folded or switched, so the right-hand column is drawn once, complete. - A Builder started for a tool request (-pipe, no -context) is shown when the ecce_invoke with its calculation has been handled, not first with the empty default. It is registered as a top shell only then: the dispatcher shows every top shell before it calls invokeMCB(). A 5 s timer shows it should the message not come. - MoPanel fills its table and graph when it is first shown (initialize() now overrides PropertyPanel's); Create only clears the grids as before. - tests/windows: framelog.ps1 samples in C# (10-20 a second; PowerShell took up to 0.5 s a sample), reads titles without waiting for a busy window, and -Dump saves every state seen as a PNG. redraw_win.py drives the Organizer selection, the Viewer opened from the Organizer and its property switches, and the Organizer's prompts through the test hooks; movewin.ps1 moves a window out of the photographed area. NerdEgg (Windows 10), Viewer opened from the Organizer on an ECCE-QM water run: before, 21 screen states, the empty Builder first and three panels drawn at the top-left over the molecule; after, the window fades in with its final layout and the molecule follows (6 states). Switching to Mulliken Charges and MOs no longer draws the new panel at the corner. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…256) startDisabler() disabled every top-level window, the Organizer included. On MSW disabling the active window hands the activation to the window behind it, so Reset to Rerun, New Calculation and every other prompt shown under the disabler came up behind another program until Windows gave the focus back. The disabler now skips the Organizer (wxWindowDisabler(this)); a modal dialog still disables it while it runs, and other ECCE windows are disabled as before. This covers every startDisabler() site at once (Delete, Rename, the Run Mgmt resets, Mark, Import, New), so the pause around the New Calculation name prompt (9a5ebca) is removed. Test command "rmtask URL LABEL" runs a Run Mgmt item as the menu does and answers its prompt Cancel after 1.5 s (tests/windows/redraw_win.py). On NerdEgg the Organizer stayed the foreground window through Reset to Rerun and New Calculation; the dialog reads "...rerun from the start." and "Continue?" on separate lines. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Selecting a calculation replaced the summary pane control by control and rebuilt the File, Go, Run Mgmt and Tools menus with nothing held back; on MSW each step was painted (an empty pane, half of the fields, a tool button as a grey square, a menu bar down to "File Edit"). - onSelectionChange() runs under a wxWindowUpdateLocker on the frame and one on the menu bar, which is not one of the frame's children and is redrawn by wxMSW for every menu item added or removed. - The Run Mgmt and Tools menus are enabled or disabled only when that changes. - The rows of the old and new selection that stayed erased for ~0.3 s came from startDisabler() disabling the Organizer itself (the tree lost its focus while the summary loaded); fixed with #256. - Test command "click URL" selects a row as a click does. NerdEgg, four selections (tests/windows/redraw_win.py): before, the summary pane went blank and was rebuilt in view; after, the new row is highlighted and the complete summary follows, menu bar unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…#247) Calculations saved before 9a5ebca stored the formula with H first (H8C3O3) while the Calculation Editor computes it (C3H8O3). The Organizer's summary and its table view now show the stored formula in Hill order (C, H, then alphabetical; alphabetical without carbon), TFormula::hillOrder(); a value that is not a formula is shown as stored. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Measured on a Windows 10 PC with Defender on, the beta.1 MSI (12 143 files, 12 193 components) installed in 66 s, 48 s of it copying files (~4 ms a file) and 6 s registering components, and uninstalled in 104 s. A plain unzip of the same files took 28 s: the file count sets the time. - bundle-tools.ps1 keeps only perl's core library (perl-core-only.pl, by Module::CoreList; Strawberry keeps newer dual-life core modules such as Socket in vendor\lib, so those stay) and drops .packlist files: 12 150 -> 7 312 files in the tree, a plain copy 24-26 s -> 13 s. - make-msi.ps1 makes one component per directory (642 instead of 12 193); the major upgrade is scheduled afterInstallValidate, so the old product is removed first and a directory's file list may change. Checked on the pruned tree: perl -c of every script in scripts\, the local job tests (launch_local.py complete and cancel) and an ECCE-QM water run through the Organizer and Launcher. The MSI itself was not built here (no WiX on the test PC); the CI MSI job builds and tests it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ohlincha
pushed a commit
that referenced
this pull request
Oct 11, 2026
make-msi.ps1 used the prerelease number alone as the 4th version field, so 9.0.0-beta.1 became 9.0.0.1 and showed in Apps & Features as older than the 9.0.0-alpha.10 it replaced (9.0.0.10), seen on NerdEgg with the CI MSI of PR #281. beta.N is now 100+N and rc.N 200+N; alphas and the release (1000) keep their numbers. Upgrades are unaffected: Windows Installer ignores the 4th field. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014SPrko1Jrd4xN5RX5R5BUB
ohlincha
pushed a commit
that referenced
this pull request
Oct 11, 2026
On a fresh profile the Launcher fills Run Directory with ~/ecce-runs for this computer, but only in the text box: the machine preferences that Launch reads kept an empty run directory, so every first launch ended with "Unable to 'cd' to run directory" (launch_rundir empty), for ECCE-QM, MOPAC and ORCA alike, until the user edited the field. The default is now also set in the preferences. Found in the NerdEgg pass of the PR #281 MSI (fresh USERPROFILE); the patched launcher.exe ran ECCE-QM water to Complete with no edit. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014SPrko1Jrd4xN5RX5R5BUB
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes from NerdEgg testing; opened to run the full CI matrix (incl. the MSI) before merging. Linux GUI tests run separately on radium.
🤖 Generated with Claude Code