mirror of
https://github.com/praktimarc/kst4contest.git
synced 2026-10-25 15:45:58 +01:00
Fix Compose UI regressions in KST4Contest 1.50 (#147)
* test: make stylesheet tests platform-independent * fix: address Compose UI regressions * fix: complete Compose UI workflow corrections * feat: improve manual QTF heading control
This commit is contained in:
1 parent
4642d658a3
commit
a4e10300e7
114 files changed
+8065
-1128
No files matched your search
@@ -103,7 +103,11 @@ Each status cell has a tooltip containing the legend and the state derived for t
|
||||
|
||||

|
||||
|
||||
**Sorting**: Click column headers. QRB sorting is numerical (corrected in v1.22).
|
||||
On its first build, the user list is sorted alphabetically by complete callsign, ignoring letter case. New stations are inserted at the corresponding position. A sort subsequently selected through a column header is retained across new stations, data updates and filter changes. QRB is sorted numerically.
|
||||
|
||||
Station selection is shared by the user list, PM, Public and QSO-of-the-other tables, priority display, AP timeline and map. A selection made in another view scrolls the user list to the chat member's current position and highlights the row. If a filter hides that station, it is temporarily added to the user list; the stored filters and exactly filtered map view remain unchanged. Callsign and chat category jointly identify the station.
|
||||
|
||||
A callsign shown in bold marks a station which actually joined the chat during the current session. The emphasis remains visible for ten minutes. The initial user list and a complete resynchronisation after a reconnect do not create these markers. The Day design uses a contrasting dark text colour, and the Evening design uses an appropriately light colour.
|
||||
|
||||
A callsign displayed in green and bold indicates a directional opportunity derived from a directed message. The marker applies to the sender of that message and remains visible for no more than five minutes. Derivation and limitations: [Directional Opportunities from Directed Messages](en-Features#directional-opportunities-from-directed-messages).
|
||||
|
||||
@@ -180,8 +184,12 @@ This avoids having to move the divider merely to read an individual long message
|
||||
|
||||
The filter bar is located above the chat-member table. Filters can be combined; a station remains visible only if it satisfies every active condition.
|
||||
|
||||
Subtly bordered surfaces group **QRB**, **QTF** including direction buttons, **Hide**, **Show** and **Reachability** by function. **Find** and **Reset filters** remain separate controls. The grouping changes presentation only; filter state, reset behaviour and map coupling remain shared.
|
||||
|
||||

|
||||
|
||||
> **Note:** This screenshot still shows the previous filter-bar layout. It will be replaced after the new compact, wrapping layout has completed its visual check.
|
||||
|
||||
### Station Filters
|
||||
|
||||
| Control | Effect |
|
||||
@@ -198,6 +206,8 @@ The filter bar is located above the chat-member table. Filters can be combined;
|
||||
| **Tropo >=0dB** | Shows stations with a calculated non-negative SSB margin |
|
||||
| **AS next 5m** | Shows stations with a current AirScout window or one expected within the next five minutes |
|
||||
|
||||
By default, a valid direct entry in the QTF group or a compass-button click also updates the current local antenna heading. This explicit transfer works whether **Show only QTF** is on or off. Resetting or merely disabling the filter does not change the antenna heading. The profile-specific option **Use QTF filter direction as antenna heading** under **Station → Manual antenna heading** can disable this behaviour. PSTRotator 1 takes temporary priority without changing that saved choice.
|
||||
|
||||
For **New bands**, KST4Contest evaluates current QRGs, band information in the name field and active callsign variants together. Manual NOT-QRV marks take precedence.
|
||||
|
||||
The **Tropo >=0dB** filter removes only stations for which a completed calculation returned a negative margin. Stations with pending or failed calculations remain visible. Otherwise, a missing API result would incorrectly be treated as proof that the path is unsuitable.
|
||||
@@ -254,21 +264,31 @@ In plain terms: the filters determine the table contents, but no longer enforce
|
||||
|
||||
The lower-right panel combines the messages associated with the selected station. This includes public messages, private messages to the local station and, where visible in the chat, private messages addressed to other stations.
|
||||
|
||||
The selected filter controls which of these messages are displayed. Under **Settings → GUI**, the default filter can be set to:
|
||||
The selected filter is a separate dimension which controls the message type shown for the selected station. Under **Settings → GUI**, its initial value can be set to:
|
||||
|
||||
- all messages,
|
||||
- private messages to the local station,
|
||||
- private messages to other stations, or
|
||||
- public messages.
|
||||
- **pm to me**: private messages between the selected and local station, plus public messages from the selected station whose structured leading address names the local login callsign,
|
||||
- **pm to other**: private messages sent by the selected station to other participants,
|
||||
- **Public msgs**: public messages sent by the selected station to `ALL`,
|
||||
- **nothing**: all messages involving the selected station in its chat category, without an additional message-type or receiver restriction.
|
||||
|
||||
A local callsign mentioned only somewhere in ordinary message text does not make a public line a **pm to me** message. A public line qualifies only when the ON4KST message begins with its explicit parenthesised address.
|
||||
|
||||
This setting changes the Further Info display only. Messages are neither discarded nor removed from the other message tables, and the filter can be changed at any time for the currently selected station.
|
||||
|
||||
The lower part of the panel contains per-band **Not QRV** marks for the selected station. Individual controls are shown for the bands enabled in the local station settings. **tag not qrv all** sets or removes the mark for every supported band, including bands which are not currently visible.
|
||||
A horizontal divider inside Further Info divides the available height between the message table and station actions. Moving it immediately makes the table taller or shorter. NOT-QRV and Sked use their own vertical scroll region in the lower area, while **Look up and show** remains pinned below it. The divider position is stored with the active root or operator profile's layout and is clamped to a usable value in a smaller window. Empty tables retain their column structure and show **No entries**.
|
||||
|
||||
The station header combines the callsign, chat category, QTF, QRB, last activity and detected bands in a compact flow. It does not repeat the locator; the locator remains available in the other station views. In a narrow panel, the metadata wraps onto additional lines without clipping. **Show messages** sits directly in front of the four message filters and flows with them.
|
||||
|
||||
The **NOT QRV** and **Sked alert** areas sit next to each other while the actual right-panel width is sufficient. Moving the splitter further to the right stacks the two bordered groups. Controls can also wrap inside their group, without introducing a horizontal scroll area.
|
||||
|
||||
The lower part of the panel contains per-band **Not QRV** marks for the selected station. Compact toggle buttons are shown for the bands enabled in the local station settings. **all** sets or removes the mark for every supported band, including bands which are not currently visible.
|
||||
|
||||
The change immediately affects the **NOT QRV @** column, band opportunities and the corresponding filters. It is stored in the internal database and restored after a restart.
|
||||
|
||||

|
||||
|
||||
> **Screenshot note:** This image still shows the previous checkbox controls. It will be replaced after manual acceptance of the compact toggle buttons.
|
||||
|
||||
The current **Priority score** of the selected station is displayed in the same section.
|
||||
|
||||
**Sked fail** marks an unsuccessful attempt and strongly reduces the score of the normalised base callsign. **Reset fail** removes the mark. It applies to all active suffix and category variants of the station and remains active for the current program session.
|
||||
@@ -286,6 +306,8 @@ The controls underneath are used to create a sked:
|
||||
|
||||

|
||||
|
||||
> **Screenshot note:** This image still shows the previous separate layout. It will be replaced after manual acceptance of the responsive **NOT QRV** and **Sked alert** groups.
|
||||
|
||||
The proposed band is derived from recent QRG and name information for the station. It can be changed explicitly before creating the sked. The mode selection only affects the Win-Test handover; the internal sked and reminder PMs work independently.
|
||||
|
||||
**Create sked** always creates the appointment inside KST4Contest first. If the Win-Test network listener is active, KST4Contest then attempts an additional handover to Win-Test. If no QRG matching the selected band can be found or Win-Test cannot be reached, the internal sked, its priority contribution and any scheduled reminders remain intact.
|
||||
@@ -296,7 +318,13 @@ The complete derivation and limitations are described under [Skeds and Sked Remi
|
||||
|
||||
## Priority List
|
||||
|
||||
The compact priority bar is located on the right-hand side between the user list and the Further Info section. It displays the two currently highest-ranked candidates directly in the main window:
|
||||
The compact bar is located on the right-hand side between the user list and the Further Info section. The **New joined** group appears on the left when needed, while the independent **Priority** group remains on the right.
|
||||
|
||||
**New joined** shows actual chat joins for ten minutes, newest first. Up to five stations are displayed directly when space permits; additional entries, or entries moved out at a narrow width, remain available in the compact **more** dropdown. The initial user list, a complete resynchronisation, profile-only updates and the local callsign do not create entries. A station is removed immediately when it leaves. A later real rejoin starts a new ten-minute period. Complete callsign and chat category remain separate identities.
|
||||
|
||||
Clicking an entry uses the shared station selection, updates Further Info and scrolls the user list to the station when necessary.
|
||||
|
||||
The **Priority** group displays the two currently highest-ranked candidates directly in the main window:
|
||||
|
||||
```text
|
||||
Priority: 1 CALLSIGN SCORE 2 CALLSIGN SCORE more
|
||||
@@ -308,6 +336,8 @@ The **more** button opens a separate window containing up to 15 candidates. The
|
||||
|
||||

|
||||
|
||||
> **Note:** This screenshot still shows the previous Further Info geometry. It will be replaced after the new scrollable, height-constrained station panel has completed its visual check.
|
||||
|
||||
Stations with a score of `0` are not included in the priority list. They remain visible in the user list so that the reason for their exclusion can be examined and, for example, an incorrect NOT-QRV mark can be changed.
|
||||
|
||||
The score is calculated for the normalised base callsign. Several active variants such as `9A0BB-2` and `9A0BB-70` may therefore display the same value in the user list. They nevertheless remain separate message targets.
|
||||
@@ -318,6 +348,14 @@ Calculation and limitations: [Priority Score and Priority List](en-Features#prio
|
||||
|
||||
---
|
||||
|
||||
## AP Timeline
|
||||
|
||||
The AP timeline shows opportunities in the upcoming window relative to now. Its subtle minute axis runs from `0 min` on the left to `+30 min` on the right. Ticks normally use five-minute intervals; a narrow view increases the interval so the labels remain readable.
|
||||
|
||||
The four candidate lanes directly reflect the existing priority selection: **In beam 1**, **In beam 2**, **Priority 1** and **Priority 2**. **Skeds** have a separate lane. The existing colour coding, antenna emphasis and click-to-select behaviour remain in effect.
|
||||
|
||||
---
|
||||
|
||||
## Station Map
|
||||
|
||||
The station map can be opened in two ways:
|
||||
@@ -329,8 +367,12 @@ The map uses the stations which remain visible after applying the current user-l
|
||||
|
||||

|
||||
|
||||
> **Screenshot note:** This image still shows the previous marker label and neither the new context menu nor the Worked-square overlay. It will be replaced after manual map acceptance.
|
||||
|
||||
### Selecting a Station
|
||||
|
||||
A marker displays only its callsign as visible text. Locator, detected bands, `B+` state and the most recently known QRGs remain available in its tooltip.
|
||||
|
||||
A single station marker can be selected directly. KST4Contest then:
|
||||
|
||||
1. selects the corresponding chat member,
|
||||
@@ -340,12 +382,18 @@ A single station marker can be selected directly. KST4Contest then:
|
||||
|
||||
Chat logins with the same normalised base callsign and position may share one marker. They nevertheless remain separate message targets inside KST4Contest.
|
||||
|
||||
When **Group nearby stations** is selected, markers which are too close together at lower zoom levels are displayed as a cluster containing the number of stations. Clicking the cluster zooms into that area. A concrete station is selected only after an individual marker becomes visible and is clicked. Clearing the checkbox displays every positionable station as an individual marker at every zoom level.
|
||||
When **Grouping** is selected, markers which are too close together at lower zoom levels are displayed as a cluster containing the number of stations. Clicking the cluster zooms into that area. A concrete station is selected only after an individual marker becomes visible and is clicked. Clearing the checkbox displays every positionable station as an individual marker at every zoom level. Its tooltip explains the compact switch's full purpose.
|
||||
|
||||
The change takes effect immediately without changing the current zoom, viewport or station selection. It is saved automatically and restored at the next programme start. If no value has been stored yet, **Group nearby stations** remains selected so existing installations retain the previous behaviour.
|
||||
The change takes effect immediately without changing the current zoom, viewport or station selection. It is saved automatically and restored at the next programme start. If no value has been stored yet, **Grouping** remains selected so existing installations retain the previous behaviour.
|
||||
|
||||
This switch controls only the spatial clusters on screen. Active chat variants of the same normalised base callsign may still share one geographical marker and remain separate message targets regardless of this setting.
|
||||
|
||||
Right-clicking a marker or a row in the user list opens the same station context menu. It contains **Message snippets**, **Create sked…**, band-specific **Tag NOT QRV** and **Mark as worked** actions, and **Calculate reachability**. When a marker represents several complete callsigns or chat categories, the concrete target must be chosen first. No action is applied arbitrarily to the first entry.
|
||||
|
||||
The snippet action only extends the send field and does not send by itself. The sked editor keeps the target captured when it opened; a later selection change does not alter that draft. **Mark as worked** uses the same additive Worked and database path as a received logger `contactinfo` and never removes an existing mark.
|
||||
|
||||
**Calculate reachability** explicitly starts the existing path calculation for the chosen band. When invoked from the user list, KST4Contest opens the map and displays the loading state, result or error for that exact target.
|
||||
|
||||
For a selected station, the header additionally shows:
|
||||
|
||||
- the complete callsign,
|
||||
@@ -357,6 +405,10 @@ For a selected station, the header additionally shows:
|
||||
|
||||
Long header content is shortened. The complete text remains available in its tooltip.
|
||||
|
||||
**Reset filters** invokes the same action as the button in the user list. It clears all enabled station filters, callsign search and direction filters. The display-only **Grid color** option remains unchanged, as do sorting, station selection, zoom and viewport. **Always on top** affects only the map window, is applied immediately and is saved automatically for the operator profile. It is disabled when no value has been stored.
|
||||
|
||||
While **Grid color** is enabled, the map marks persistently known, already worked four-character Maidenhead squares with a black outline and a 30 percent black fill overlay. The overlay uses the same persistent Worked-grid state as **Only new grids**, so a square remains visible even when it currently contains no chat station. Neither outline nor fill overlay is drawn while **Grid color** is disabled.
|
||||
|
||||
### Clearing the Selection with Reset View
|
||||
|
||||
**Reset view** clears the selected station without changing the map position or zoom level.
|
||||
@@ -433,6 +485,8 @@ The lower part of the main window contains three global message tabs. Their cont
|
||||
| **DXCluster messages** | DX cluster messages received through ON4KST |
|
||||
| **QSO of the other** | Directed messages between two other stations |
|
||||
|
||||
Clicking a row under **Public messages** or **QSO of the other** selects its sender as the current station and scrolls the user list to the matching callsign and chat category. The global tab contents remain unchanged.
|
||||
|
||||

|
||||
|
||||
In **QSO of the other**, sender and receiver are displayed separately. **Last QRG TX** and **Last QRG RX** contain the frequencies most recently known for the two stations. They do not necessarily represent the frequency discussed in the displayed conversation.
|
||||
@@ -498,6 +552,8 @@ Functions which communicate with the server are available only after the ON4KST
|
||||
|
||||
KST4Contest automatically stores programme-window sizes and positions, relevant dividers and manually changed table-column widths in the configuration file after a short delay. Any pending layout update is written when the programme exits. **Save Settings** is not required for these changes, but still stores the complete current state, including the layout.
|
||||
|
||||
This includes the horizontal divider between the message table and the station actions in Further Info. Its value belongs to the active root or operator profile; when restoring it, KST4Contest clamps the value to the height available in the current window.
|
||||
|
||||
The main window is additionally checked against the visible area of the primary screen during startup. If the stored size is too large, KST4Contest reduces and moves the window so that it remains accessible. The complete process is described under [Screen-Aware Main Window Sizing](en-Features#screen-aware-main-window-sizing-from-v141).
|
||||
|
||||
The other programme windows do not currently use this additional size restriction. If, for example, the separate monitor window appears too large after moving to a smaller screen, correcting it manually is sufficient; the new size is saved automatically.
|
||||
|
||||
Reference in new issue
Block a user